Exemplo n.º 1
0
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)
Exemplo n.º 2
0
 def _json_for(self, log_file):
     with (open(get_absolute_path(log_file))) as file:
         test_result = kunit_parser.parse_run_tests(file)
         json_obj = kunit_json.get_json_result(test_result=test_result,
                                               def_config='kunit_defconfig',
                                               build_dir=None,
                                               json_path='stdout')
     return json.loads(json_obj)
Exemplo n.º 3
0
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)
Exemplo n.º 4
0
def parse_tests(
        request: KunitParseRequest, metadata: kunit_json.Metadata,
        input_data: Iterable[str]) -> Tuple[KunitResult, kunit_parser.Test]:
    parse_start = time.time()

    test_result = kunit_parser.Test()

    if request.raw_output:
        # Treat unparsed results as one passing test.
        test_result.status = kunit_parser.TestStatus.SUCCESS
        test_result.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)
        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_str = kunit_json.get_json_result(test=test_result,
                                              metadata=metadata)
        if request.json == 'stdout':
            print(json_str)
        else:
            with open(request.json, 'w') as f:
                f.write(json_str)
            kunit_parser.print_with_timestamp("Test results stored in %s" %
                                              os.path.abspath(request.json))

    if test_result.status != kunit_parser.TestStatus.SUCCESS:
        return KunitResult(KunitStatus.TEST_FAILURE,
                           parse_end - parse_start), test_result

    return KunitResult(KunitStatus.SUCCESS,
                       parse_end - parse_start), test_result
Exemplo n.º 5
0
 def _json_for(self, log_file):
     with open(test_data_path(log_file)) as file:
         test_result = kunit_parser.parse_run_tests(file)
         json_obj = kunit_json.get_json_result(
             test=test_result, metadata=kunit_json.Metadata())
     return json.loads(json_obj)