• Ivan Orlov's avatar
    kunit: Cover 'assert.c' with tests · 2c7afc2a
    Ivan Orlov authored
    There are multiple assertion formatting functions in the `assert.c`
    file, which are not covered with tests yet. Implement the KUnit test
    for these functions.
    
    The test consists of 11 test cases for the following functions:
    
    1) 'is_literal'
    2) 'is_str_literal'
    3) 'kunit_assert_prologue', test case for multiple assert types
    4) 'kunit_assert_print_msg'
    5) 'kunit_unary_assert_format'
    6) 'kunit_ptr_not_err_assert_format'
    7) 'kunit_binary_assert_format'
    8) 'kunit_binary_ptr_assert_format'
    9) 'kunit_binary_str_assert_format'
    10) 'kunit_assert_hexdump'
    11) 'kunit_mem_assert_format'
    
    The test aims at maximizing the branch coverage for the assertion
    formatting functions.
    
    As you can see, it covers some of the static helper functions as
    well, so mark the static functions in `assert.c` as 'VISIBLE_IF_KUNIT'
    and conditionally export them with EXPORT_SYMBOL_IF_KUNIT. Add the
    corresponding definitions to `assert.h`.
    
    Build the assert test when CONFIG_KUNIT_TEST is enabled, similar to
    how it is done for the string stream test.
    Signed-off-by: default avatarIvan Orlov <ivan.orlov0322@gmail.com>
    Reviewed-by: default avatarRae Moar <rmoar@google.com>
    Acked-by: default avatarDavid Gow <davidgow@google.com>
    Signed-off-by: default avatarShuah Khan <skhan@linuxfoundation.org>
    2c7afc2a
assert_test.c 12.5 KB