| #!/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('-l', '--list', action='store_true', |
| help='list of available test cases') |
| parser.add_argument('-a', '--all', action='store_true', |
| help='execute all test cases') |
| parser.add_argument('-s', '--stdout', action='store_true', |
| help='log everything to stdout') |
| parser.add_argument('-o', '--output', |
| help='output directory') |
| parser.add_argument('-d', '--download', |
| help='download directory') |
| parser.add_argument('-k', '--keep', |
| 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()) |