tests: Allow test selection with prefix wildcards

Test names can now use wildcard in the end (e.g., ap_wpa2_psk*) to match
all test cases with the specified prefix.

Signed-off-by: Jouni Malinen <j@w1.fi>
This commit is contained in:
Jouni Malinen 2019-07-09 16:09:04 +03:00
parent 4eab36595e
commit 88b6c6e244

View file

@ -257,7 +257,17 @@ def main():
if args.tests: if args.tests:
fail = False fail = False
for t in args.tests: for t in args.tests:
if t not in test_names: if t.endswith('*'):
prefix = t.rstrip('*')
found = False
for tn in test_names:
if tn.startswith(prefix):
found = True
break
if not found:
print('Invalid arguments - test "%s" wildcard did not match' % t)
fail = True
elif t not in test_names:
print('Invalid arguments - test "%s" not known' % t) print('Invalid arguments - test "%s" not known' % t)
fail = True fail = True
if fail: if fail:
@ -292,7 +302,11 @@ def main():
for selected in args.tests: for selected in args.tests:
for t in tests: for t in tests:
name = t.__name__.replace('test_', '', 1) name = t.__name__.replace('test_', '', 1)
if name == selected: if selected.endswith('*'):
prefix = selected.rstrip('*')
if name.startswith(prefix):
tests_to_run.append(t)
elif name == selected:
tests_to_run.append(t) tests_to_run.append(t)
else: else:
for t in tests: for t in tests: