1*2d9fd380Sjfb8856606#!/usr/bin/env python3 24418919fSjohnjiang# SPDX-License-Identifier: BSD-3-Clause 34418919fSjohnjiang# Copyright(c) 2010-2014 Intel Corporation 44418919fSjohnjiang 54418919fSjohnjiang# Script that uses either test app or qemu controlled by python-pexpect 64418919fSjohnjiangimport autotest_data 74418919fSjohnjiangimport autotest_runner 84418919fSjohnjiangimport sys 94418919fSjohnjiang 104418919fSjohnjiang 114418919fSjohnjiangdef usage(): 124418919fSjohnjiang print("Usage: autotest.py [test app|test iso image] ", 13*2d9fd380Sjfb8856606 "[target] [allow|-block]") 144418919fSjohnjiang 154418919fSjohnjiangif len(sys.argv) < 3: 164418919fSjohnjiang usage() 174418919fSjohnjiang sys.exit(1) 184418919fSjohnjiang 194418919fSjohnjiangtarget = sys.argv[2] 204418919fSjohnjiang 21*2d9fd380Sjfb8856606test_allowlist = None 22*2d9fd380Sjfb8856606test_blocklist = None 234418919fSjohnjiang 24*2d9fd380Sjfb8856606# get blocklist/allowlist 254418919fSjohnjiangif len(sys.argv) > 3: 264418919fSjohnjiang testlist = sys.argv[3].split(',') 274418919fSjohnjiang testlist = [test.lower() for test in testlist] 284418919fSjohnjiang if testlist[0].startswith('-'): 294418919fSjohnjiang testlist[0] = testlist[0].lstrip('-') 30*2d9fd380Sjfb8856606 test_blocklist = testlist 314418919fSjohnjiang else: 32*2d9fd380Sjfb8856606 test_allowlist = testlist 334418919fSjohnjiang 344418919fSjohnjiangcmdline = "%s -c f" % (sys.argv[1]) 354418919fSjohnjiang 364418919fSjohnjiangprint(cmdline) 374418919fSjohnjiang 384418919fSjohnjiang# how many workers to run tests with. FreeBSD doesn't support multiple primary 394418919fSjohnjiang# processes, so make it 1, otherwise make it 4. ignored for non-parallel tests 404418919fSjohnjiangn_processes = 1 if "bsd" in target else 4 414418919fSjohnjiang 42*2d9fd380Sjfb8856606runner = autotest_runner.AutotestRunner(cmdline, target, test_blocklist, 43*2d9fd380Sjfb8856606 test_allowlist, n_processes) 444418919fSjohnjiang 454418919fSjohnjiangrunner.parallel_tests = autotest_data.parallel_test_list[:] 464418919fSjohnjiangrunner.non_parallel_tests = autotest_data.non_parallel_test_list[:] 474418919fSjohnjiang 484418919fSjohnjiangnum_fails = runner.run_all_tests() 494418919fSjohnjiang 504418919fSjohnjiangsys.exit(num_fails) 51