aboutsummaryrefslogtreecommitdiff
path: root/meson_test.py
diff options
context:
space:
mode:
authorJussi Pakkanen <jpakkane@gmail.com>2015-12-09 18:00:06 +0200
committerJussi Pakkanen <jpakkane@gmail.com>2015-12-09 18:00:06 +0200
commit70695bead40f97825357e620394918d1a248bf1a (patch)
treed439f53a5d954307f438aac7c29f9ca051503583 /meson_test.py
parent0585a959d3bc7e71c896d53ed4f9c74ba49f4825 (diff)
downloadmeson-70695bead40f97825357e620394918d1a248bf1a.zip
meson-70695bead40f97825357e620394918d1a248bf1a.tar.gz
meson-70695bead40f97825357e620394918d1a248bf1a.tar.bz2
Added possibility to have multiple test suites so you can run only a subset of tests. Closes #325.
Diffstat (limited to 'meson_test.py')
-rwxr-xr-xmeson_test.py18
1 files changed, 15 insertions, 3 deletions
diff --git a/meson_test.py b/meson_test.py
index a7ba7de..5771fa3 100755
--- a/meson_test.py
+++ b/meson_test.py
@@ -26,6 +26,8 @@ parser.add_argument('--wrapper', default=None, dest='wrapper',
help='wrapper to run tests with (e.g. valgrind)')
parser.add_argument('--wd', default=None, dest='wd',
help='directory to cd into before running')
+parser.add_argument('--suite', default=None, dest='suite',
+ help='Only run tests belonging to this suite.')
parser.add_argument('args', nargs='+')
@@ -144,6 +146,11 @@ def drain_futures(futures):
(result, numlen, tests, name, i, logfile, jsonlogfile) = i
print_stats(numlen, tests, name, result.result(), i, logfile, jsonlogfile)
+def filter_tests(suite, tests):
+ if suite is None:
+ return tests
+ return [x for x in tests if x.suite == suite]
+
def run_tests(options, datafilename):
logfile_base = 'meson-logs/testlog'
if options.wrapper is None:
@@ -173,15 +180,20 @@ def run_tests(options, datafilename):
num_workers = multiprocessing.cpu_count()
executor = conc.ThreadPoolExecutor(max_workers=num_workers)
futures = []
- for i, test in enumerate(tests):
+ filtered_tests = filter_tests(options.suite, tests)
+ for i, test in enumerate(filtered_tests):
+ if test.suite == '':
+ visible_name = test.name
+ else:
+ visible_name = test.suite + ' / ' + test.name
if not test.is_parallel:
drain_futures(futures)
futures = []
res = run_single_test(wrap, test)
- print_stats(numlen, tests, test.name, res, i, logfile, jsonlogfile)
+ print_stats(numlen, tests, visible_name, res, i, logfile, jsonlogfile)
else:
f = executor.submit(run_single_test, wrap, test)
- futures.append((f, numlen, tests, test.name, i, logfile, jsonlogfile))
+ futures.append((f, numlen, tests, visible_name, i, logfile, jsonlogfile))
drain_futures(futures)
print('\nFull log written to %s.' % logfilename)