tests: add support for listing tests to run in a file
This will make it easier for us to run the tests in the python3
whitelist in buildbot.
--- a/tests/run-tests.py Mon Sep 18 15:34:50 2017 -0400
+++ b/tests/run-tests.py Mon Sep 18 17:11:32 2017 -0400
@@ -303,6 +303,8 @@
help="skip tests listed in the specified blacklist file")
parser.add_option("--whitelist", action="append",
help="always run tests listed in the specified whitelist file")
+ parser.add_option("--test-list", action="append",
+ help="read tests to run from the specified file")
parser.add_option("--changed", type="string",
help="run tests that are changed in parent rev or working directory")
parser.add_option("-C", "--annotate", action="store_true",
@@ -2279,6 +2281,10 @@
# positional arguments are paths to test files to run, so
# we make sure they're all bytestrings
args = [_bytespath(a) for a in args]
+ if options.test_list is not None:
+ for listfile in options.test_list:
+ with open(listfile, 'rb') as f:
+ args.extend(t for t in f.read().splitlines() if t)
self.options = options
self._checktools()
--- a/tests/test-run-tests.t Mon Sep 18 15:34:50 2017 -0400
+++ b/tests/test-run-tests.t Mon Sep 18 17:11:32 2017 -0400
@@ -981,6 +981,19 @@
python hash seed: * (glob)
[1]
+Ensure that --test-list causes only the tests listed in that file to
+be executed.
+ $ echo test-success.t >> onlytest
+ $ rt --test-list=onlytest
+ .
+ # Ran 1 tests, 0 skipped, 0 failed.
+ $ echo test-bogus.t >> anothertest
+ $ rt --test-list=onlytest --test-list=anothertest
+ s.
+ Skipped test-bogus.t: Doesn't exist
+ # Ran 1 tests, 1 skipped, 0 failed.
+ $ rm onlytest anothertest
+
test for --json
==================