blob: 9bc0324070c5f3e82f8e21b64b9245f7741b44df [file] [log] [blame]
#!/usr/bin/python3
# A thin wrapper on top of the KUnit Kernel
import argparse
import sys
import os
import time
import kunit_config
import kunit_kernel
import kunit_parser
parser = argparse.ArgumentParser(description='Runs KUnit tests.')
parser.add_argument('--raw_output', help='don\'t format output from kernel',
action='store_true')
parser.add_argument('--timeout', help='maximum number of seconds to allow for '
'all tests to run. This does not include time taken to '
'build the tests.', type=int, default=300,
metavar='timeout')
cli_args = parser.parse_args()
linux = kunit_kernel.LinuxSourceTree()
config_start = time.time()
success = linux.build_reconfig()
config_end = time.time()
if not success:
quit()
kunit_parser.print_with_timestamp('Building KUnit Kernel ...')
build_start = time.time()
success = linux.build_um_kernel()
build_end = time.time()
if not success:
quit()
kunit_parser.print_with_timestamp('Starting KUnit Kernel ...')
test_start = time.time()
if cli_args.raw_output:
kunit_parser.raw_output(linux.run_kernel(timeout=cli_args.timeout))
else:
kunit_parser.parse_run_tests(linux.run_kernel(timeout=cli_args.timeout))
test_end = time.time()
kunit_parser.print_with_timestamp((
"Elapsed time: %.3fs total, %.3fs configuring, %.3fs " +
"building, %.3fs running.\n") % (test_end - config_start,
config_end - config_start, build_end - build_start,
test_end - test_start))