summaryrefslogtreecommitdiff
path: root/testsuite/driver/testlib.py
diff options
context:
space:
mode:
authorThomas Miedema <thomasmiedema@gmail.com>2015-10-28 12:28:59 +0100
committerThomas Miedema <thomasmiedema@gmail.com>2015-10-29 09:23:10 +0100
commit032be43b66db29ca6893bd4219c0d6036201a94e (patch)
tree21ac0e13f7a8fd6a647b8ec3f8fe2eb7757e4291 /testsuite/driver/testlib.py
parent08f5c4e3590609c1a9603bd78b089dbb28cff9f8 (diff)
downloadhaskell-032be43b66db29ca6893bd4219c0d6036201a94e.tar.gz
Testsuite: report and error out on unfound tests
Users are sometimes confused why their test doesn't run. It is usually because of a misspelled testname, for example using 'TEST=1234' instead of 'TEST=T1234'. After this patch it is hopefully more clear what the problem is, showing: ERROR: tests not found: ['1234'] Instead of: 0 total tests, which gave rise to 0 test cases, of which 0 were skipped Reviewed by: austin, bgamari Differential Revision: https://phabricator.haskell.org/D1388
Diffstat (limited to 'testsuite/driver/testlib.py')
-rw-r--r--testsuite/driver/testlib.py12
1 files changed, 10 insertions, 2 deletions
diff --git a/testsuite/driver/testlib.py b/testsuite/driver/testlib.py
index 3ca5d026f5..45e8d3e295 100644
--- a/testsuite/driver/testlib.py
+++ b/testsuite/driver/testlib.py
@@ -591,8 +591,16 @@ def runTest (opts, name, func, args):
# name :: String
# setup :: TestOpts -> IO ()
def test (name, setup, func, args):
- if config.only and name not in config.only:
- return
+ if config.run_only_some_tests:
+ if name not in config.only:
+ return
+ else:
+ # Note [Mutating config.only]
+ # config.only is initiallly the set of tests requested by
+ # the user (via 'make TEST='). We then remove all tests that
+ # we've already seen (in .T files), so that we can later
+ # report on any tests we couldn't find and error out.
+ config.only.remove(name)
global aloneTests
global parallelTests