diff options
Diffstat (limited to 'support/testing/run-tests')
-rwxr-xr-x | support/testing/run-tests | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/support/testing/run-tests b/support/testing/run-tests new file mode 100755 index 0000000000..339bb66efa --- /dev/null +++ b/support/testing/run-tests @@ -0,0 +1,83 @@ +#!/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()) |