summaryrefslogtreecommitdiff
path: root/test/Makefile.am
diff options
context:
space:
mode:
authorAndres Noetzli <andres.noetzli@gmail.com>2018-03-21 13:10:24 -0700
committerGitHub <noreply@github.com>2018-03-21 13:10:24 -0700
commitb8db52f9bad5b1053810c93f0067de8423349da3 (patch)
treebd937d795052073645a87032eaf8ecf0be2e11cb /test/Makefile.am
parentbe2702490d684c100ba6abe76ee156078a9aa621 (diff)
Move regression tests to single Makefile.am (#1658)
Until now, regression tests were split across tens of different Makefile.am, which required a lot of code duplication and does not really seem to be in the spirit of automake. If we want to change the LOG_COMPILER/LOG_DRIVER for example, we have to change every single Makefile.am, which is cumbersome (I was able to get something semi-working by exporting those variables but it didn't seem very clean). Additionally, it made the output of the regression tests fairly verbose and split the output across multiple log files. Finally it also limited parallelism when running the regression tests (this fix lowers the time it takes to run regression level 1 from 3m to 1m45s on my machine with 16 threads). This commit moves all the regression tests into test/regress/Makefile.tests and changes test/regress/Makefile.am to deal with this new structure. Finally, it changes how the test summary in test/Makefile.am is produced: instead of relying on the log files for the subdirectories, it greps for the test results in the log files of the individual tests. Not the most elegant solution but we should probably anyway delegate that task to a Python script at some point.
Diffstat (limited to 'test/Makefile.am')
-rw-r--r--test/Makefile.am101
1 files changed, 30 insertions, 71 deletions
diff --git a/test/Makefile.am b/test/Makefile.am
index 65dd601b1..e87427dc6 100644
--- a/test/Makefile.am
+++ b/test/Makefile.am
@@ -29,65 +29,6 @@ test "X$(AM_COLOR_TESTS)" != Xno \
}
subdirs_to_check = \
- regress/regress0 \
- regress/regress0/arith \
- regress/regress0/arith/integers \
- regress/regress0/arrays \
- regress/regress0/aufbv \
- regress/regress0/auflia \
- regress/regress0/bv \
- regress/regress0/bv/core \
- regress/regress0/datatypes \
- regress/regress0/decision \
- regress/regress0/expect \
- regress/regress0/fmf \
- regress/regress0/ho \
- regress/regress0/lemmas \
- regress/regress0/nl \
- regress/regress0/parser \
- regress/regress0/precedence \
- regress/regress0/preprocess \
- regress/regress0/push-pop \
- regress/regress0/push-pop/boolean \
- regress/regress0/quantifiers \
- regress/regress0/rels \
- regress/regress0/rewriterules \
- regress/regress0/sep \
- regress/regress0/sets \
- regress/regress0/strings \
- regress/regress0/sygus \
- regress/regress0/tptp \
- regress/regress0/uf \
- regress/regress0/uflia \
- regress/regress0/uflra \
- regress/regress0/unconstrained \
- regress/regress1 \
- regress/regress1/aufbv \
- regress/regress1/auflia \
- regress/regress1/bv \
- regress/regress1/datatypes \
- regress/regress1/decision \
- regress/regress1/fmf \
- regress/regress1/ho \
- regress/regress1/lemmas \
- regress/regress1/nl \
- regress/regress1/push-pop \
- regress/regress1/rels \
- regress/regress1/rewriterules \
- regress/regress1/sep \
- regress/regress1/sets \
- regress/regress1/strings \
- regress/regress1/sygus \
- regress/regress1/quantifiers \
- regress/regress1/uflia \
- regress/regress2 \
- regress/regress2/arith \
- regress/regress2/nl \
- regress/regress2/quantifiers \
- regress/regress2/strings \
- regress/regress2/sygus \
- regress/regress3 \
- regress/regress4 \
system \
unit
@@ -95,6 +36,7 @@ check-recursive: check-pre
.PHONY: check-pre
check-pre:
@rm -f $(subdirs_to_check:=/test-suite.log)
+ @find regress -name '*.trs' -exec rm {} \;
if HAVE_CXXTESTGEN
HANDLE_UNIT_TEST_SUMMARY = \
@@ -116,18 +58,7 @@ check-local:
if test -s "system/test-suite.log"; then :; else \
echo "$${red}System tests did not run; maybe there were compilation problems ?$$std"; \
fi; \
- for dir in $(subdirs_to_check); do \
- log=$$dir/test-suite.log; \
- if test -s "$$log"; then \
- status="`head -n 5 $$log | tail -1`"; \
- if echo "$$status" | grep -q failed; then \
- echo "$$red$$status"; \
- echo " @abs_builddir@/$$log$$std"; \
- else \
- printf "$$grn%-30s in $$dir$$std\\n" "$$status"; \
- fi; \
- fi; \
- done; \
+ echo $${red}Upgrade to a newer version of Automake to get a more detailed summary; \
echo $${blu}=============================== TESTING SUMMARY =============================$$std
else
# automake 1.12 version
@@ -154,5 +85,33 @@ check-local:
fi; \
fi; \
done; \
+ for dir in `find regress -not -empty -type d`; do \
+ status_info=`grep -d skip ":test-result: " $$dir/*`; \
+ total=`echo "$$status_info" | grep ":test-result: " | wc -l`; \
+ if [ $$total -ne 0 ]; then \
+ status="$${std}$$total TOTAL"; \
+ pass=`echo "$$status_info" | grep " PASS" | wc -l`; \
+ if [ $$pass -ne 0 ]; then \
+ status="$$status $${grn}$$pass PASS"; \
+ fi; \
+ fail=`echo "$$status_info" | grep " FAIL" | wc -l`; \
+ if [ $$fail -ne 0 ]; then \
+ status="$$status $${red}$$fail FAIL"; \
+ fi; \
+ xpass=`echo "$$status_info" | grep " XPASS" | wc -l`; \
+ if [ $$xpass -ne 0 ]; then \
+ status="$$status $${red}$$xpass XPASS"; \
+ fi; \
+ error=`echo "$$status_info" | grep " ERROR" | wc -l`; \
+ if [ $$error -ne 0 ]; then \
+ status="$$status $${red}$$error ERROR"; \
+ fi; \
+ skip=`echo "$$status_info" | grep " SKIP" | wc -l`; \
+ if [ $$skip -ne 0 ]; then \
+ status="$$status $${blu}$$skip SKIP"; \
+ fi; \
+ printf "$$grn%-30s in $$dir\\n" "$$status"; \
+ fi; \
+ done; \
echo $${blu}=============================== TESTING SUMMARY =============================$$std
endif
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback