• Daniel Latypov's avatar
    kunit: tool: make parser preserve whitespace when printing test log · c2bb92bc
    Daniel Latypov authored
    Currently, kunit_parser.py is stripping all leading whitespace to make
    parsing easier. But this means we can't accurately show kernel output
    for failing tests or when the kernel crashes.
    
    Embarassingly, this affects even KUnit's own output, e.g.
    [13:40:46] Expected 2 + 1 == 2, but
    [13:40:46] 2 + 1 == 3 (0x3)
    [13:40:46] not ok 1 example_simple_test
    [13:40:46] [FAILED] example_simple_test
    
    After this change, here's what the output in context would look like
    [13:40:46] =================== example (4 subtests) ===================
    [13:40:46] # example_simple_test: initializing
    [13:40:46] # example_simple_test: EXPECTATION FAILED at lib/kunit/kunit-example-test.c:29
    [13:40:46] Expected 2 + 1 == 2, but
    [13:40:46]     2 + 1 == 3 (0x3)
    [13:40:46] [FAILED] example_simple_test
    [13:40:46] [SKIPPED] example_skip_test
    [13:40:46] [SKIPPED] example_mark_skipped_test
    [13:40:46] [PASSED] example_all_expect_macros_test
    [13:40:46]     # example: initializing suite
    [13:40:46] # example: pass:1 fail:1 skip:2 total:4
    [13:40:46] # Totals: pass:1 fail:1 skip:2 total:4
    [13:40:46] ===================== [FAILED] example =====================
    
    This example shows one minor cosmetic defect this approach has.
    The test counts lines prevent us from dedenting the suite-level output.
    But at the same time, any form of non-KUnit output would do the same
    unless it happened to be indented as well.
    Signed-off-by: default avatarDaniel Latypov <dlatypov@google.com>
    Reviewed-by: default avatarDavid Gow <davidgow@google.com>
    Signed-off-by: default avatarShuah Khan <skhan@linuxfoundation.org>
    c2bb92bc
kunit_parser.py 23.3 KB