# -u show context
+
+#drl 3/27/2002 get the test suit to print a warning when splint is built under /usr/
SPLINT = $(top_builddir)/src/splint$(EXEEXT)
+### These are shell-specific
+
### This is horrible! Can't we make top_builddir absolute?
SPLINTNEST = ../$(top_builddir)/src/splint$(EXEEXT)
UNITTESTS = \
help \
abstptr abstract alias alttypes ansireserved argorder \
- args arraydims blocks break cases cast charlit clauses commentchar compdestroy \
- compoundliterals constannot controldepth csyntax czechnames czechoslovaknames deadparam \
+ args arraydims arrayinit arraylit blocks break cases cast charlit clauses commentchar compdestroy \
+ compoundliterals compoundstmt constannot controldepth csyntax czechnames czechoslovaknames deadparam \
decl divzero enum exports external fields flags forbody format freearray \
funcpointer functionmacro glob globals impabstract info init inparam internal iter keep libs \
- linked lintcomments list loopexec \
+ linked lintcomments list loopexec looptesteffect \
macros macrosef merge mergenull modifies modtest moduncon \
mongoincludes mystrncat noeffect null observer oldstyle outglob outparam \
parentype postnotnull preds prefixes printflike rc refcounts release repexpose \
specclauses \
special stack staticarray strings \
stringliteral \
- structassign typequals ud ulstypes union unioninit unreachable unsignedcompare \
+ structassign typequals typeof ud ulstypes union unioninit \
+ unnamedsu unreachable unsignedcompare \
unused ullint utypes void widestrings
UNITEXPECTS = $(addsuffix .expect, $(UNITTESTS))
CLEANOUTPUT = $(GREP) -v "Splint 3." | $(GREP) -v "$(SPLINT)" | $(GREP) -v "^make.*\[[1-9]*\]:" | $(GREP) -v "^gmake.*\[[1-9]*\]:" | $(GREP) -v "^gmake -e" | $(GREP) -v "^make -e" |$(GREP) -v "config.status: creating test/Makefile" | $(GREP) -v "cd .. && " | $(GREP) -v "CONFIG_HEADERS=" | $(GREP) -v "CONFIG_FILES="
+
+#drl temporally take this out.
+#.PHONY: expects
+#expects:
+# @echo "Saving old expects..."; \
+# cat *.expect >expects-`date +"%y-%m-%d-%H"`
+# @for TEST in $(UNITTESTS) $(INTEGTESTS); do \
+# echo "Making $$TEST.expect..."; \
+# $(MAKE) $$TEST 2>&1 | $(CLEANOUTPUT) >$$TEST.expect; \
+# cat $$TEST.expect; \
+# done
+CheckSystemDir = (pwd | grep -q "/usr" && echo "Warning tests which not run correctly when splint is built in /usr or a subdirectory under /usr. Build splint in a different directory or disregard test failures." )
+
#drl 11/29/2001 This is a very ugly hack to get make dist to work
EXTRA_DIST = ./abst_t.lcl ./abst_t.lcs \
./abstptr.lcl ./abstptr.lcs \
./argorder5.c \
./args.c \
./arrayinit.c \
+ ./arraylit.c \
./blocks.c \
./branchstate.c \
./break.c \
./commentchar.c \
./commentcmd.c \
./compdestroy.c \
+ ./compoundliterals.c ./compoundliterals.expect \
+ ./compoundstmt.c ./compoundstmt.expect \
./csyntax.c \
./constannot.c \
./controldepth.c \
./union.c \
./unreachable.c \
./unsignedcompare.c \
+ ./unnamedsu.c \
./unused.c \
./void.c \
./conditions/miroslaw.c \
argorder.expect \
args.expect \
arrayinit.expect \
+ arraylit.expect \
blocks.expect \
branchstate.expect \
break.expect \
ullint.expect \
ulstypes.expect \
union.expect \
+ unnamedsu.expect \
unreachable.expect \
unsignedcompare.expect \
unused.expect \
./moreBufferTests2/Makefile \
./fileio/eof.mts ./fileio/file.mts ./fileio/filerw.mts ./mergestate/tainted.mts ./mergestate/taintednm.mts ./metastate/file.mts ./metastate/nullterminated.mts ./metastate/sockets.mts ./tainted/tainted-bad.mts ./tainted/tainted.mts ./fileio/file.xh ./fileio/filerw.xh ./mergestate/tainted.xh ./mergestate/taintednm.xh ./metastate/file.xh ./tainted/tainted.xh \
db2.old-expect union.pp warnuse.old-expect \
- ./tests2.5/badcomment ./tests2.5/boolbad ./tests2.5/booltest ./tests2.5/uconstants loopexec.expect mergenull.expect shifts.expect \
+ ./tests2.5/badcomment ./tests2.5/boolbad ./tests2.5/booltest ./tests2.5/uconstants loopexec.expect mergenull.expect shifts.expect looptesteffect.expect \
unioninit.expect unioninit.c utypes.c \
utypes.expect widestrings.expect widestrings.c \
functionmacro.expect functionmacro.c info.c info.expect \
- loopexec.c mergenull.c shifts.c \
+ loopexec.c looptesteffect.c mergenull.c shifts.c \
manual.expect ./manual/Makefile \
./manual/annotglobs.c ./manual/bool.c ./manual/bool.h ./manual/clauses.c ./manual/employee.h ./manual/exposure.c ./manual/globals.c ./manual/ignore.c ./manual/implicit.c ./manual/intSet.h ./manual/list.c ./manual/loop.c ./manual/macros.c ./manual/modify.c ./manual/mstring.c ./manual/mstring.h ./manual/mstringnn.c ./manual/multiError.c ./manual/names.c ./manual/noeffect.c ./manual/null.c ./manual/only.c ./manual/order.c ./manual/palindrome.c ./manual/palindrome.h ./manual/refs.c ./manual/returned.c ./manual/rgb.c ./manual/rstring.c ./manual/rstring.h ./manual/sample.c ./manual/setChar.c ./manual/setname.c ./manual/setname.h ./manual/special.c ./manual/stack.c ./manual/sumsquares.c ./manual/switch.c ./manual/testpal.c ./manual/types.c ./manual/unique.c ./manual/usedef.c ./manual/bounds.c \
arraydims.expect arraydims.c \
mostlyclean-generic uninstall uninstall-am uninstall-info-am
-unexport LARCH_PATH
-unexport LCLIMPORTDIR
-
.PHONY: all check
all check: fulltest
.c.diff:
$(MAKE) $* |& $(CLEANOUTPUT) >$*.out && diff $*.expect $*.out
-#drl temporally take this out.
-#.PHONY: expects
-#expects:
-# @echo "Saving old expects..."; \
-# cat *.expect >expects-`date +"%y-%m-%d-%H"`
-# @for TEST in $(UNITTESTS) $(INTEGTESTS); do \
-# echo "Making $$TEST.expect..."; \
-# $(MAKE) $$TEST 2>&1 | $(CLEANOUTPUT) >$$TEST.expect; \
-# cat $$TEST.expect; \
-# done
-
.PHONY: quicktest
quicktest:
+ $(CheckSystemDir)
@for TEST in $(QUICKTESTS); do \
echo "Checking $$TEST..."; \
$(MAKE) $$TEST 2>&1 | $(CLEANOUTPUT) >$$TEST.out && \
-$(SPLINTR) arraydims.c -varuse -expect 2
-$(SPLINTR) arraydims.c -initsize -varuse
+.PHONY: arrayinit
+arrayinit:
+ -$(SPLINTR) arrayinit.c -expect 9
+
+.PHONY: arraylit
+arraylit:
+ -$(SPLINTR) arraylit.c -expect 2
+ -$(SPLINTR) arraylit.c +stringliteralsmaller -expect 4
+
.PHONY: blocks
blocks:
-$(SPLINTR) blocks.c -expect 4
compoundliterals:
${SPLINTRN} compoundliterals.c
+.PHONY: compoundstmt
+compoundstmt:
+ ${SPLINTRN} compoundstmt.c -expect 3
+
.PHONY: constannot
constannot:
${SPLINTRN} constannot.c +boundswrite -exportlocal -expect 2
-$(SPLINTR) loopexec.c -expect 1
-$(SPLINTR) loopexec.c -obviousloopexec -expect 3
+.PHONY: looptesteffect
+looptesteffect:
+ -$(SPLINTR) looptesteffect.c -expect 1
+
.PHONY: macros
macros:
-$(SPLINTR) macros -expect 17
staticarray:
-$(SPLINTR) staticarray.c -expect 3
+###
+### evans 2002-03-16: Default setting of stringliteralnoroomfinalnull changed
+###
+
.PHONY: stringliteral
stringliteral:
- -$(SPLINTR) stringliteral.c +stringliteralnoroomfinalnull -expect 4
- -$(SPLINTR) stringliteral.c -expect 3
+ -$(SPLINTR) stringliteral.c -stringliteralnoroomfinalnull -expect 3
+ -$(SPLINTR) stringliteral.c -expect 4
.PHONY: strings
strings:
structassign:
-$(SPLINTR) structassign.c -expect 4
+.PHONY: typeof
+typeof:
+ -$(SPLINTR) typeof.c -expect 2
+
.PHONY: typequals
typequals:
-$(SPLINTR) typequals.c tq.lcl -expect 5
unioninit:
-$(SPLINTR) unioninit.c -expect 2
+.PHONY: unnamedsu
+unnamedsu:
+ -$(SPLINTR) unnamedsu.c -expect 0
+
.PHONY: unreachable
unreachable:
-$(SPLINTR) unreachable.c -expect 5