blob: 339bb66efa34939e67e1fdb199fc665cb8846f6a [file] [log] [blame]
#!/usr/bin/env python2
import argparse
import sys
import os
import nose2
from infra.basetest import BRTest
def main():
parser = argparse.ArgumentParser(description='Run Buildroot tests')
parser.add_argument('testname', nargs='*',
help='list of test cases to execute')
parser.add_argument('--list', '-l', action='store_true',
help='list of available test cases')
parser.add_argument('--all', '-a', action='store_true',
help='execute all test cases')
parser.add_argument('--stdout', '-s', action='store_true',
help='log everything to stdout')
parser.add_argument('--output', '-o',
help='output directory')
parser.add_argument('--download', '-d',
help='download directory')
parser.add_argument('--keep', '-k',
help='keep build directories',
action='store_true')
args = parser.parse_args()
script_path = os.path.realpath(__file__)
test_dir = os.path.dirname(script_path)
if args.stdout:
BRTest.logtofile = False
if args.list:
print "List of tests"
nose2.discover(argv=[script_path,
"-s", test_dir,
"-v",
"--collect-only"],
plugins=["nose2.plugins.collect"])
return 0
if args.download is None:
args.download = os.getenv("BR2_DL_DIR")
if args.download is None:
print "Missing download directory, please use -d/--download"
print ""
parser.print_help()
return 1
BRTest.downloaddir = os.path.abspath(args.download)
if args.output is None:
print "Missing output directory, please use -o/--output"
print ""
parser.print_help()
return 1
if not os.path.exists(args.output):
os.mkdir(args.output)
BRTest.outputdir = os.path.abspath(args.output)
if args.all is False and len(args.testname) == 0:
print "No test selected"
print ""
parser.print_help()
return 1
BRTest.keepbuilds = args.keep
nose2_args = ["-v",
"-s", "support/testing",
"-c", "support/testing/conf/unittest.cfg"]
if len(args.testname) != 0:
nose2_args += args.testname
nose2.discover(argv=nose2_args)
if __name__ == "__main__":
sys.exit(main())