kunit: tool: make parser stop overwriting status of suites w/ no_tests
Consider this invocation $ ./tools/testing/kunit/kunit.py parse <<EOF TAP version 14 1..2 ok 1 - suite # Subtest: no_tests_suite # catastrophic error! not ok 1 - no_tests_suite EOF It will have a 0 exit code even though there's a "not ok". Consider this one: $ ./tools/testing/kunit/kunit.py parse <<EOF TAP version 14 1..2 ok 1 - suite not ok 1 - no_tests_suite EOF It will a non-zero exit code. Why? We have this line in the kunit_parser.py > parent_test = parse_test_header(lines, test) where we have special handling when we see "# Subtest" and we ignore the explicit reported "not ok 1" status! Also, NO_TESTS at a suite-level only results in a non-zero status code where then there's only one suite atm. This change is the minimal one to make sure we don't overwrite it. Signed-off-by: Daniel Latypov <dlatypov@google.com> Reviewed-by: David Gow <davidgow@google.com> Reviewed-by: Brendan Higgins <brendanhiggins@google.com> Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
This commit is contained in:
parent
33d4a933e9
commit
dbf0b0d53a
|
@ -775,8 +775,11 @@ def parse_test(lines: LineStream, expected_num: int, log: List[str]) -> Test:
|
|||
|
||||
# Check for there being no tests
|
||||
if parent_test and len(subtests) == 0:
|
||||
test.status = TestStatus.NO_TESTS
|
||||
test.add_error('0 tests run!')
|
||||
# Don't override a bad status if this test had one reported.
|
||||
# Assumption: no subtests means CRASHED is from Test.__init__()
|
||||
if test.status in (TestStatus.TEST_CRASHED, TestStatus.SUCCESS):
|
||||
test.status = TestStatus.NO_TESTS
|
||||
test.add_error('0 tests run!')
|
||||
|
||||
# Add statuses to TestCounts attribute in Test object
|
||||
bubble_up_test_results(test)
|
||||
|
|
|
@ -3,5 +3,5 @@ TAP version 14
|
|||
# Subtest: suite
|
||||
1..1
|
||||
# Subtest: case
|
||||
ok 1 - case # SKIP
|
||||
ok 1 - case
|
||||
ok 1 - suite
|
||||
|
|
Loading…
Reference in New Issue