mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-18 11:57:03 +07:00
kunit: show error if kunit results are not present
Currently, if the kernel is configured incorrectly or if it crashes before any kunit tests are run, kunit finishes without error, reporting that 0 test cases were run. To fix this, an error is shown when the tap header is not found, which indicates that kunit was not able to run at all. Signed-off-by: Uriel Guajardo <urielguajardo@google.com> Reviewed-by: Brendan Higgins <brendanhiggins@google.com> Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
This commit is contained in:
parent
3f37d14b8a
commit
e173b8b8c4
@ -265,11 +265,9 @@ def bubble_up_suite_errors(test_suite_list: List[TestSuite]) -> TestStatus:
|
|||||||
return bubble_up_errors(lambda x: x.status, test_suite_list)
|
return bubble_up_errors(lambda x: x.status, test_suite_list)
|
||||||
|
|
||||||
def parse_test_result(lines: List[str]) -> TestResult:
|
def parse_test_result(lines: List[str]) -> TestResult:
|
||||||
if not lines:
|
|
||||||
return TestResult(TestStatus.NO_TESTS, [], lines)
|
|
||||||
consume_non_diagnositic(lines)
|
consume_non_diagnositic(lines)
|
||||||
if not parse_tap_header(lines):
|
if not lines or not parse_tap_header(lines):
|
||||||
return None
|
return TestResult(TestStatus.NO_TESTS, [], lines)
|
||||||
test_suites = []
|
test_suites = []
|
||||||
test_suite = parse_test_suite(lines)
|
test_suite = parse_test_suite(lines)
|
||||||
while test_suite:
|
while test_suite:
|
||||||
@ -282,6 +280,8 @@ def parse_run_tests(kernel_output) -> TestResult:
|
|||||||
failed_tests = 0
|
failed_tests = 0
|
||||||
crashed_tests = 0
|
crashed_tests = 0
|
||||||
test_result = parse_test_result(list(isolate_kunit_output(kernel_output)))
|
test_result = parse_test_result(list(isolate_kunit_output(kernel_output)))
|
||||||
|
if test_result.status == TestStatus.NO_TESTS:
|
||||||
|
print_with_timestamp(red('[ERROR] ') + 'no kunit output detected')
|
||||||
for test_suite in test_result.suites:
|
for test_suite in test_result.suites:
|
||||||
if test_suite.status == TestStatus.SUCCESS:
|
if test_suite.status == TestStatus.SUCCESS:
|
||||||
print_suite_divider(green('[PASSED] ') + test_suite.name)
|
print_suite_divider(green('[PASSED] ') + test_suite.name)
|
||||||
|
@ -170,6 +170,17 @@ class KUnitParserTest(unittest.TestCase):
|
|||||||
result.status)
|
result.status)
|
||||||
file.close()
|
file.close()
|
||||||
|
|
||||||
|
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 kunit output detected"))
|
||||||
|
print_mock.stop()
|
||||||
|
file.close()
|
||||||
|
|
||||||
def test_crashed_test(self):
|
def test_crashed_test(self):
|
||||||
crashed_log = get_absolute_path(
|
crashed_log = get_absolute_path(
|
||||||
'test_data/test_is_test_passed-crash.log')
|
'test_data/test_is_test_passed-crash.log')
|
||||||
|
Loading…
Reference in New Issue
Block a user