def parse_tests(request: KunitParseRequest) -> KunitResult: parse_start = time.time() test_result = kunit_parser.TestResult(kunit_parser.TestStatus.SUCCESS, [], 'Tests not Parsed.') if request.raw_output: kunit_parser.raw_output(request.input_data) else: test_result = kunit_parser.parse_run_tests(request.input_data) parse_end = time.time() if request.json: json_obj = kunit_json.get_json_result(test_result=test_result, def_config='kunit_defconfig', build_dir=request.build_dir, json_path=request.json) if request.json == 'stdout': print(json_obj) if test_result.status != kunit_parser.TestStatus.SUCCESS: return KunitResult(KunitStatus.TEST_FAILURE, test_result, parse_end - parse_start) return KunitResult(KunitStatus.SUCCESS, test_result, parse_end - parse_start)
def parse_tests(request: KunitParseRequest) -> KunitResult: parse_start = time.time() test_result = kunit_parser.TestResult(kunit_parser.TestStatus.SUCCESS, [], 'Tests not Parsed.') if request.raw_output: kunit_parser.raw_output(request.input_data) else: test_result = kunit_parser.parse_run_tests(request.input_data) parse_end = time.time() if test_result.status != kunit_parser.TestStatus.SUCCESS: return KunitResult(KunitStatus.TEST_FAILURE, test_result, parse_end - parse_start) return KunitResult(KunitStatus.SUCCESS, test_result, parse_end - parse_start)
def run_tests(linux: kunit_kernel.LinuxSourceTree, request: KunitRequest) -> KunitResult: if request.defconfig: create_default_kunitconfig() config_start = time.time() success = linux.build_reconfig(request.build_dir) config_end = time.time() if not success: return KunitResult(KunitStatus.CONFIG_FAILURE, 'could not configure kernel') kunit_parser.print_with_timestamp('Building KUnit Kernel ...') build_start = time.time() success = linux.build_um_kernel(request.jobs, request.build_dir) build_end = time.time() if not success: return KunitResult(KunitStatus.BUILD_FAILURE, 'could not build kernel') kunit_parser.print_with_timestamp('Starting KUnit Kernel ...') test_start = time.time() test_result = kunit_parser.TestResult(kunit_parser.TestStatus.SUCCESS, [], 'Tests not Parsed.') if request.raw_output: kunit_parser.raw_output( linux.run_kernel(timeout=request.timeout, build_dir=request.build_dir)) else: kunit_output = linux.run_kernel(timeout=request.timeout, build_dir=request.build_dir) test_result = kunit_parser.parse_run_tests(kunit_output) 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)) if test_result.status != kunit_parser.TestStatus.SUCCESS: return KunitResult(KunitStatus.TEST_FAILURE, test_result) else: return KunitResult(KunitStatus.SUCCESS, test_result)
def run_tests(linux: kunit_kernel.LinuxSourceTree, request: KunitRequest) -> KunitResult: config_start = time.time() linux.make_external_config(request.external_config) # TODO config_result = linux.build_reconfig() config_end = time.time() if config_result.status != kunit_kernel.ConfigStatus.SUCCESS: return KunitResult(KunitStatus.CONFIG_FAILURE, config_result) print(kunit_parser.timestamp('Building KUnit Kernel ...')) build_start = time.time() build_result = linux.build_um_kernel(request.jobs) build_end = time.time() if build_result.status != kunit_kernel.BuildStatus.SUCCESS: return KunitResult(KunitStatus.BUILD_FAILURE, build_result) print(kunit_parser.timestamp('Starting KUnit Kernel ...')) test_start = time.time() test_result = kunit_parser.TestResult(kunit_parser.TestStatus.SUCCESS, [], 'Tests not Parsed.') if request.raw_output: kunit_parser.raw_output(linux.run_kernel(timeout=request.timeout)) else: test_result = kunit_parser.parse_run_tests( kunit_parser.isolate_kunit_output( linux.run_kernel(timeout=request.timeout))) test_end = time.time() test_result.print_pretty_log() print( kunit_parser.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))) if test_result.status != kunit_parser.TestStatus.SUCCESS: return KunitResult(KunitStatus.TEST_FAILURE, test_result) else: return KunitResult(KunitStatus.SUCCESS, test_result)
def parse_tests(request: KunitParseRequest, input_data: Iterable[str]) -> KunitResult: parse_start = time.time() test_result = kunit_parser.TestResult(kunit_parser.TestStatus.SUCCESS, kunit_parser.Test(), 'Tests not Parsed.') if request.raw_output: # Treat unparsed results as one passing test. test_result.test.status = kunit_parser.TestStatus.SUCCESS test_result.test.counts.passed = 1 output: Iterable[str] = input_data if request.raw_output == 'all': pass elif request.raw_output == 'kunit': output = kunit_parser.extract_tap_lines(output) else: print(f'Unknown --raw_output option "{request.raw_output}"', file=sys.stderr) for line in output: print(line.rstrip()) else: test_result = kunit_parser.parse_run_tests(input_data) parse_end = time.time() if request.json: json_obj = kunit_json.get_json_result(test_result=test_result, def_config='kunit_defconfig', build_dir=request.build_dir, json_path=request.json) if request.json == 'stdout': print(json_obj) if test_result.status != kunit_parser.TestStatus.SUCCESS: return KunitResult(KunitStatus.TEST_FAILURE, test_result, parse_end - parse_start) return KunitResult(KunitStatus.SUCCESS, test_result, parse_end - parse_start)
def run_tests(linux: kunit_kernel.LinuxSourceTree, request: KunitRequest) -> KunitResult: kunit_parser.print_with_timestamp('Starting KUnit Kernel ...') test_start = time.time() test_result = kunit_parser.TestResult(kunit_parser.TestStatus.SUCCESS, [], 'Tests not Parsed.') if request.raw_output: kunit_parser.raw_output( linux.run_kernel(timeout=request.timeout, build_dir=request.build_dir)) else: kunit_output = linux.run_kernel(timeout=request.timeout, build_dir=request.build_dir) test_result = kunit_parser.parse_run_tests(kunit_output) test_end = time.time() kunit_parser.print_with_timestamp( ('Elapsed time: %.3fs running\n') % (test_end - test_start)) if test_result.status != kunit_parser.TestStatus.SUCCESS: return KunitResult(KunitStatus.TEST_FAILURE, test_result) else: return KunitResult(KunitStatus.SUCCESS, test_result)