Beispiel #1
0
 def test_pound_no_prefix(self):
     pound_log = test_data_path('test_pound_no_prefix.log')
     with open(pound_log) as file:
         result = kunit_parser.parse_run_tests(file.readlines())
         self.assertEqual(kunit_parser.TestStatus.SUCCESS, result.status)
         self.assertEqual('kunit-resource-test',
                          result.test.subtests[0].name)
Beispiel #2
0
	def test_parse_successful_test_log(self):
		all_passed_log = test_data_path('test_is_test_passed-all_passed.log')
		with open(all_passed_log) as file:
			result = kunit_parser.parse_run_tests(file.readlines())
		self.assertEqual(
			kunit_parser.TestStatus.SUCCESS,
			result.status)
Beispiel #3
0
    def test_skipped_test(self):
        skipped_log = test_data_path('test_skip_tests.log')
        with open(skipped_log) as file:
            result = kunit_parser.parse_run_tests(file.readlines())

        # A skipped test does not fail the whole suite.
        self.assertEqual(kunit_parser.TestStatus.SUCCESS, result.status)
Beispiel #4
0
	def test_parse_failed_test_log(self):
		failed_log = test_data_path('test_is_test_passed-failure.log')
		with open(failed_log) as file:
			result = kunit_parser.parse_run_tests(file.readlines())
		self.assertEqual(
			kunit_parser.TestStatus.FAILURE,
			result.status)
Beispiel #5
0
 def test_parse_successful_test_log(self):
     all_passed_log = get_absolute_path(
         'test_data/test_is_test_passed-all_passed.log')
     file = open(all_passed_log)
     result = kunit_parser.parse_run_tests(file.readlines())
     self.assertEqual(kunit_parser.TestStatus.SUCCESS, result.status)
     file.close()
Beispiel #6
0
 def test_ignores_prefix_printk_time(self):
     prefix_log = test_data_path('test_config_printk_time.log')
     with open(prefix_log) as file:
         result = kunit_parser.parse_run_tests(file.readlines())
         self.assertEqual(kunit_parser.TestStatus.SUCCESS, result.status)
         self.assertEqual('kunit-resource-test',
                          result.test.subtests[0].name)
Beispiel #7
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)
Beispiel #8
0
 def test_parse_failed_test_log(self):
     failed_log = get_absolute_path(
         'test_data/test_is_test_passed-failure.log')
     file = open(failed_log)
     result = kunit_parser.parse_run_tests(file.readlines())
     self.assertEqual(kunit_parser.TestStatus.FAILURE, result.status)
     file.close()
Beispiel #9
0
	def test_crashed_test(self):
		crashed_log = test_data_path('test_is_test_passed-crash.log')
		with open(crashed_log) as file:
			result = kunit_parser.parse_run_tests(file.readlines())
		self.assertEqual(
			kunit_parser.TestStatus.TEST_CRASHED,
			result.status)
Beispiel #10
0
 def test_kernel_panic_end(self):
     panic_log = test_data_path('test_kernel_panic_interrupt.log')
     with open(panic_log) as file:
         result = kunit_parser.parse_run_tests(file.readlines())
         self.assertEqual(kunit_parser.TestStatus.TEST_CRASHED,
                          result.status)
         self.assertEqual('kunit-resource-test', result.suites[0].name)
Beispiel #11
0
    def test_skipped_all_tests(self):
        skipped_log = test_data_path('test_skip_all_tests.log')
        file = open(skipped_log)
        result = kunit_parser.parse_run_tests(file.readlines())

        self.assertEqual(kunit_parser.TestStatus.SKIPPED, result.status)
        file.close()
Beispiel #12
0
 def test_crashed_test(self):
     crashed_log = get_absolute_path(
         'test_data/test_is_test_passed-crash.log')
     file = open(crashed_log)
     result = kunit_parser.parse_run_tests(file.readlines())
     self.assertEqual(kunit_parser.TestStatus.TEST_CRASHED, result.status)
     file.close()
Beispiel #13
0
	def test_kselftest_nested(self):
		kselftest_log = test_data_path('test_is_test_passed-kselftest.log')
		with open(kselftest_log) as file:
			result = kunit_parser.parse_run_tests(file.readlines())
			self.assertEqual(
				kunit_parser.TestStatus.SUCCESS,
				result.status)
Beispiel #14
0
 def test_no_tests(self):
     empty_log = test_data_path('test_is_test_passed-no_tests_run.log')
     with open(empty_log) as file:
         result = kunit_parser.parse_run_tests(
             kunit_parser.isolate_kunit_output(file.readlines()))
     self.assertEqual(0, len(result.suites))
     self.assertEqual(kunit_parser.TestStatus.NO_TESTS, result.status)
Beispiel #15
0
 def test_prefix_mixed_kernel_output(self):
     mixed_prefix_log = get_absolute_path(
         'test_data/test_interrupted_tap_output.log')
     with open(mixed_prefix_log) as file:
         result = kunit_parser.parse_run_tests(file.readlines())
         self.assertEqual(kunit_parser.TestStatus.SUCCESS, result.status)
         self.assertEqual('kunit-resource-test', result.suites[0].name)
Beispiel #16
0
	def test_ignores_multiple_prefixes(self):
		prefix_log = test_data_path('test_multiple_prefixes.log')
		with open(prefix_log) as file:
			result = kunit_parser.parse_run_tests(file.readlines())
			self.assertEqual(
				kunit_parser.TestStatus.SUCCESS,
				result.status)
			self.assertEqual('kunit-resource-test', result.suites[0].name)
	def test_prefix_poundsign(self):
		pound_log = get_absolute_path('test_data/test_pound_sign.log')
		with open(pound_log) as file:
			result = kunit_parser.parse_run_tests(file.readlines())
			self.assertEqual(
				kunit_parser.TestStatus.SUCCESS,
				result.status)
			self.assertEqual('kunit-resource-test', result.suites[0].name)
Beispiel #18
0
 def test_no_tests(self):
     empty_log = test_data_path(
         'test_is_test_passed-no_tests_run_with_header.log')
     with open(empty_log) as file:
         result = kunit_parser.parse_run_tests(
             kunit_parser.extract_tap_lines(file.readlines()))
     self.assertEqual(0, len(result.suites))
     self.assertEqual(kunit_parser.TestStatus.NO_TESTS, result.status)
Beispiel #19
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)
Beispiel #20
0
 def test_missing_test_plan(self):
     missing_plan_log = test_data_path('test_is_test_passed-'
                                       'missing_plan.log')
     with open(missing_plan_log) as file:
         result = kunit_parser.parse_run_tests(
             kunit_parser.extract_tap_lines(file.readlines()))
     self.assertEqual(2, result.test.counts.errors)
     self.assertEqual(kunit_parser.TestStatus.SUCCESS, result.status)
Beispiel #21
0
 def test_no_kunit_output(self):
     crash_log = test_data_path('test_insufficient_memory.log')
     print_mock = mock.patch('builtins.print').start()
     with open(crash_log) as file:
         result = kunit_parser.parse_run_tests(
             kunit_parser.extract_tap_lines(file.readlines()))
     print_mock.assert_any_call(StrContains('invalid KTAP input!'))
     print_mock.stop()
     self.assertEqual(0, len(result.subtests))
Beispiel #22
0
 def test_no_tests(self):
     empty_log = get_absolute_path(
         'test_data/test_is_test_passed-no_tests_run.log')
     file = open(empty_log)
     result = kunit_parser.parse_run_tests(
         kunit_parser.isolate_kunit_output(file.readlines()))
     self.assertEqual(0, len(result.suites))
     self.assertEqual(kunit_parser.TestStatus.NO_TESTS, result.status)
     file.close()
Beispiel #23
0
	def test_no_kunit_output(self):
		crash_log = test_data_path('test_insufficient_memory.log')
		print_mock = mock.patch('builtins.print').start()
		with open(crash_log) as file:
			result = kunit_parser.parse_run_tests(
				kunit_parser.extract_tap_lines(file.readlines()))
		print_mock.assert_any_call(StrContains('no tests run!'))
		print_mock.stop()
		file.close()
Beispiel #24
0
 def test_no_kunit_output(self):
     crash_log = get_absolute_path('test_data/test_insufficient_memory.log')
     file = open(crash_log)
     print_mock = mock.patch('builtins.print').start()
     result = kunit_parser.parse_run_tests(
         kunit_parser.isolate_kunit_output(file.readlines()))
     print_mock.assert_any_call(StrContains('no tests run!'))
     print_mock.stop()
     file.close()
Beispiel #25
0
	def test_timed_out_test(self):
		timed_out_log = get_absolute_path(
			'test_data/test_is_test_passed-timed_out.log')
		file = open(timed_out_log)
		result = kunit_parser.parse_run_tests(file.readlines())
		self.assertEqual(
			kunit_parser.TestStatus.TIMED_OUT,
			result.status)
		file.close()
Beispiel #26
0
 def test_no_tests_no_plan(self):
     no_plan_log = test_data_path(
         'test_is_test_passed-no_tests_no_plan.log')
     with open(no_plan_log) as file:
         result = kunit_parser.parse_run_tests(
             kunit_parser.extract_tap_lines(file.readlines()))
     self.assertEqual(0, len(result.subtests[0].subtests[0].subtests))
     self.assertEqual(kunit_parser.TestStatus.NO_TESTS,
                      result.subtests[0].subtests[0].status)
     self.assertEqual(1, result.counts.errors)
Beispiel #27
0
	def test_broken_test(self):
		broken_log = get_absolute_path(
			'test_data/test_is_test_passed-broken_test.log')
		file = open(broken_log)
		result = kunit_parser.parse_run_tests(
			kunit_parser.isolate_kunit_output(file.readlines()))
		self.assertEqual(
			kunit_parser.TestStatus.KERNEL_CRASHED,
			result.status)
		file.close()
Beispiel #28
0
    def test_ignores_hyphen(self):
        hyphen_log = test_data_path('test_strip_hyphen.log')
        file = open(hyphen_log)
        result = kunit_parser.parse_run_tests(file.readlines())

        # A skipped test does not fail the whole suite.
        self.assertEqual(kunit_parser.TestStatus.SUCCESS, result.status)
        self.assertEqual("sysctl_test", result.subtests[0].name)
        self.assertEqual("example", result.subtests[1].name)
        file.close()
Beispiel #29
0
 def test_missing_test_plan(self):
     missing_plan_log = test_data_path('test_is_test_passed-'
                                       'missing_plan.log')
     with open(missing_plan_log) as file:
         result = kunit_parser.parse_run_tests(
             kunit_parser.extract_tap_lines(file.readlines()))
     # A missing test plan is not an error.
     self.assertEqual(0, result.counts.errors)
     # All tests should be accounted for.
     self.assertEqual(10, result.counts.total())
     self.assertEqual(kunit_parser.TestStatus.SUCCESS, result.status)
Beispiel #30
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 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)