support python 3 only
[dpdk.git] / app / test / autotest.py
1 #!/usr/bin/env python3
2 # SPDX-License-Identifier: BSD-3-Clause
3 # Copyright(c) 2010-2014 Intel Corporation
4
5 # Script that uses either test app or qemu controlled by python-pexpect
6 import autotest_data
7 import autotest_runner
8 import sys
9
10
11 def usage():
12     print("Usage: autotest.py [test app|test iso image] ",
13           "[target] [whitelist|-blacklist]")
14
15 if len(sys.argv) < 3:
16     usage()
17     sys.exit(1)
18
19 target = sys.argv[2]
20
21 test_whitelist = None
22 test_blacklist = None
23
24 # get blacklist/whitelist
25 if len(sys.argv) > 3:
26     testlist = sys.argv[3].split(',')
27     testlist = [test.lower() for test in testlist]
28     if testlist[0].startswith('-'):
29         testlist[0] = testlist[0].lstrip('-')
30         test_blacklist = testlist
31     else:
32         test_whitelist = testlist
33
34 cmdline = "%s -c f" % (sys.argv[1])
35
36 print(cmdline)
37
38 # how many workers to run tests with. FreeBSD doesn't support multiple primary
39 # processes, so make it 1, otherwise make it 4. ignored for non-parallel tests
40 n_processes = 1 if "bsd" in target else 4
41
42 runner = autotest_runner.AutotestRunner(cmdline, target, test_blacklist,
43                                         test_whitelist, n_processes)
44
45 runner.parallel_tests = autotest_data.parallel_test_list[:]
46 runner.non_parallel_tests = autotest_data.non_parallel_test_list[:]
47
48 num_fails = runner.run_all_tests()
49
50 sys.exit(num_fails)