xref: /f-stack/dpdk/app/test/autotest.py (revision 2d9fd380)
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