summaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
authorThomas Miedema <thomasmiedema@gmail.com>2015-08-27 12:44:15 +0200
committerThomas Miedema <thomasmiedema@gmail.com>2015-09-02 20:29:35 +0200
commitc43c8e2c8a6780737b476ada871387a73c43ee68 (patch)
tree7f3f8d2493a9c4799020e9d2a063d8d537fd1e74 /Makefile
parent32a9eada8dc4f61a2fb801edf1fda822cb56e0dd (diff)
downloadhaskell-c43c8e2c8a6780737b476ada871387a73c43ee68.tar.gz
Testsuite: by default run all tests for a single way
`make test` now runs all tests for a single way only. Use `make slowtest` to get the previous behaviour (i.e. run all tests for all ways). The intention is to use this new `make test` setting for Phabricator, as a reasonable compromise between `make fasttest` (what it previously used) and a fullblown `make slowtest` (which runs all tests for all ways). See Note [validate and testsuite speed] in toplevel Makefile. Differential Revision: https://phabricator.haskell.org/D1178
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile31
1 files changed, 29 insertions, 2 deletions
diff --git a/Makefile b/Makefile
index b1b1742eb3..e6a1bc5b02 100644
--- a/Makefile
+++ b/Makefile
@@ -83,6 +83,7 @@ REALGOALS=$(filter-out \
help \
test \
fulltest \
+ slowtest \
fasttest \
,$(MAKECMDGOALS))
@@ -159,10 +160,36 @@ endif
endif
+# Note [validate and testsuite speed]
+#
+# There are 3 different validate and testsuite speed settings:
+# fast, normal and slow.
+#
+# how how used
+# cd tests config. many many by
+# validate && make speed= tests ways whom
+# =============================================================================
+# --fast fast 2 some 1 Travis (to stay within time limit)
+# --normal test 1 all 1 Phabricator (slow takes too long?)
+# --slow slow 0 all all Nightly (slow is ok)
+#
+# accept 1 all 1
+#
+# `make accept` should run all tests exactly once. There is no point in
+# accepting a test for multiple ways, since it should produce the same output
+# for all ways.
+#
+# To make sure all .stderr and .stdout files in the testsuite are never
+# out-of-date, it is useful if Phabricator, via a normal `./validate` and `make
+# test`, runs each test at least once.
.PHONY: fasttest
fasttest:
$(MAKE) -C testsuite/tests CLEANUP=1 SUMMARY_FILE=../../testsuite_summary.txt fast
-.PHONY: fulltest test
-fulltest test:
+.PHONY: test
+test:
$(MAKE) -C testsuite/tests CLEANUP=1 SUMMARY_FILE=../../testsuite_summary.txt
+
+.PHONY: slowtest fulltest
+slowtest fulltest:
+ $(MAKE) -C testsuite/tests CLEANUP=1 SUMMARY_FILE=../../testsuite_summary.txt slow