mirror of
https://git.kernel.org/pub/scm/network/wireless/iwd.git
synced 2025-02-16 15:20:42 +01:00
test-runner: add option to specify subtests to run
You can now specify a limited list of subtests to run out of a full auto-test using --sub-tests,-S. This option is limited in that it is only meant to be used with a single autotest (since it doesn't make much sense otherwise). The subtest can be specified both with or without the file extension. Example usage: ./test-runner -A testAP -S failure_test,dhcp_test.py This will only run the two subtests and exclude any other *.py tests present in the test directory.
This commit is contained in:
parent
fedfda9fb5
commit
4bf8bf2396
@ -892,6 +892,18 @@ def pre_test(ctx, test):
|
|||||||
else:
|
else:
|
||||||
shutil.copy(f, '/tmp')
|
shutil.copy(f, '/tmp')
|
||||||
|
|
||||||
|
# Prune down any subtests if needed
|
||||||
|
if ctx.args.sub_tests:
|
||||||
|
ctx.args.sub_tests = ctx.args.sub_tests.split(',')
|
||||||
|
pruned = []
|
||||||
|
|
||||||
|
for s in subtests:
|
||||||
|
# Allow test name both with and without the extension
|
||||||
|
if s in ctx.args.sub_tests or os.path.splitext(s)[0] in ctx.args.sub_tests:
|
||||||
|
pruned.append(s)
|
||||||
|
|
||||||
|
subtests = pruned
|
||||||
|
|
||||||
ctx.start_dbus_monitor()
|
ctx.start_dbus_monitor()
|
||||||
ctx.start_radios()
|
ctx.start_radios()
|
||||||
ctx.start_hostapd()
|
ctx.start_hostapd()
|
||||||
@ -996,6 +1008,10 @@ def run_auto_tests(ctx, args):
|
|||||||
try:
|
try:
|
||||||
copied, subtests = pre_test(ctx, test)
|
copied, subtests = pre_test(ctx, test)
|
||||||
|
|
||||||
|
if len(subtests) < 1:
|
||||||
|
dbg("No tests to run")
|
||||||
|
exit()
|
||||||
|
|
||||||
rqueue = multiprocessing.Queue()
|
rqueue = multiprocessing.Queue()
|
||||||
p = multiprocessing.Process(target=start_test, args=(ctx, subtests, rqueue))
|
p = multiprocessing.Process(target=start_test, args=(ctx, subtests, rqueue))
|
||||||
p.start()
|
p.start()
|
||||||
@ -1060,6 +1076,7 @@ def run_tests():
|
|||||||
parser.add_argument('--log-uid')
|
parser.add_argument('--log-uid')
|
||||||
parser.add_argument('--hw')
|
parser.add_argument('--hw')
|
||||||
parser.add_argument('--monitor')
|
parser.add_argument('--monitor')
|
||||||
|
parser.add_argument('--sub_tests')
|
||||||
|
|
||||||
args = parser.parse_args(options)
|
args = parser.parse_args(options)
|
||||||
|
|
||||||
@ -1128,6 +1145,9 @@ class Main:
|
|||||||
help='Use physical adapters for tests (passthrough)')
|
help='Use physical adapters for tests (passthrough)')
|
||||||
self.parser.add_argument('--monitor', '-m', type=str,
|
self.parser.add_argument('--monitor', '-m', type=str,
|
||||||
help='Enables iwmon output to file')
|
help='Enables iwmon output to file')
|
||||||
|
self.parser.add_argument('--sub-tests', '-S', metavar='<subtests>',
|
||||||
|
type=str, nargs=1, help='List of subtests to run',
|
||||||
|
default=None, dest='sub_tests')
|
||||||
|
|
||||||
# Prevent --autotest/--unittest from being used together
|
# Prevent --autotest/--unittest from being used together
|
||||||
auto_unit_group = self.parser.add_mutually_exclusive_group()
|
auto_unit_group = self.parser.add_mutually_exclusive_group()
|
||||||
@ -1153,10 +1173,25 @@ class Main:
|
|||||||
|
|
||||||
self.args = self.parser.parse_args()
|
self.args = self.parser.parse_args()
|
||||||
|
|
||||||
|
if self.args.auto_tests:
|
||||||
|
self.args.auto_tests = self.args.auto_tests[0].split(',')
|
||||||
|
|
||||||
|
if self.args.sub_tests:
|
||||||
|
self.args.sub_tests = self.args.sub_tests[0].split(',')
|
||||||
|
|
||||||
if self.args.log and self.args.unit_tests:
|
if self.args.log and self.args.unit_tests:
|
||||||
dbg("Cannot use --log with --unit-tests")
|
dbg("Cannot use --log with --unit-tests")
|
||||||
quit()
|
quit()
|
||||||
|
|
||||||
|
if self.args.sub_tests:
|
||||||
|
if not self.args.auto_tests:
|
||||||
|
dbg("--sub-tests must be used with --auto-tests")
|
||||||
|
quit()
|
||||||
|
|
||||||
|
if len(self.args.auto_tests) > 1:
|
||||||
|
dbg("--sub-tests must be used with a single auto test")
|
||||||
|
quit()
|
||||||
|
|
||||||
def start(self):
|
def start(self):
|
||||||
usb_adapters = None
|
usb_adapters = None
|
||||||
|
|
||||||
@ -1220,6 +1255,9 @@ class Main:
|
|||||||
if self.args.auto_tests:
|
if self.args.auto_tests:
|
||||||
options += ' --auto_tests %s' % ','.join(self.args.auto_tests)
|
options += ' --auto_tests %s' % ','.join(self.args.auto_tests)
|
||||||
|
|
||||||
|
if self.args.sub_tests:
|
||||||
|
options += ' --sub_tests %s' % ','.join(self.args.sub_tests)
|
||||||
|
|
||||||
if self.args.log:
|
if self.args.log:
|
||||||
if os.environ.get('SUDO_GID', None) is None:
|
if os.environ.get('SUDO_GID', None) is None:
|
||||||
print("--log can only be used as root user")
|
print("--log can only be used as root user")
|
||||||
@ -1242,6 +1280,7 @@ class Main:
|
|||||||
|
|
||||||
denylist = [
|
denylist = [
|
||||||
'auto_tests',
|
'auto_tests',
|
||||||
|
'sub_tests',
|
||||||
'qemu',
|
'qemu',
|
||||||
'kernel'
|
'kernel'
|
||||||
]
|
]
|
||||||
|
Loading…
x
Reference in New Issue
Block a user