• Daniel Latypov's avatar
    kunit: tool: make parser stop overwriting status of suites w/ no_tests · dbf0b0d5
    Daniel Latypov authored
    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: default avatarDaniel Latypov <dlatypov@google.com>
    Reviewed-by: default avatarDavid Gow <davidgow@google.com>
    Reviewed-by: default avatarBrendan Higgins <brendanhiggins@google.com>
    Signed-off-by: default avatarShuah Khan <skhan@linuxfoundation.org>
    dbf0b0d5
kunit_parser.py 22.8 KB