On Fri, 17 May 2024 at 05:17, Ivan Orlov <ivan.orlov0322@xxxxxxxxx> wrote: > > 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: Ivan Orlov <ivan.orlov0322@xxxxxxxxx> > --- This looks good to me, and passes all of my tests locally. Note that this does have some checkpatch warnings: WARNING: Using vsprintf specifier '%px' potentially exposes the kernel memory layout, if you don't really need the address please consider using '%p'. #426: FILE: lib/kunit/assert_test.c:250: + snprintf(addr_var_a, TEST_PTR_EXPECTED_BUF_SIZE, "%px", var_a); WARNING: Using vsprintf specifier '%px' potentially exposes the kernel memory layout, if you don't really need the address please consider using '%p'. #427: FILE: lib/kunit/assert_test.c:251: + snprintf(addr_var_b, TEST_PTR_EXPECTED_BUF_SIZE, "%px", var_b); These are necessary, as KUnit _does_ expose the kernel memory layout (on purpose), as it's useful for debugging. This is one of the reasons why KUnit tests taint the kernel: to make it clear that this could be a problem. Acked-by: David Gow <davidgow@xxxxxxxxxx> Cheers, -- David
Attachment:
smime.p7s
Description: S/MIME Cryptographic Signature