diff options
author | Ivan Orlov <ivan.orlov0322@gmail.com> | 2024-05-16 22:17:31 +0100 |
---|---|---|
committer | Shuah Khan <skhan@linuxfoundation.org> | 2024-05-30 12:53:47 -0600 |
commit | 2c7afc2a880cd4899f9dd6bfa62f10f84773148b (patch) | |
tree | 78c90ba817d7d386ea759d91007107bded7bf845 /include/kunit | |
parent | 1613e604df0cd359cf2a7fbd9be7a0bcfacfabd0 (diff) |
kunit: Cover 'assert.c' with tests
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@gmail.com>
Reviewed-by: Rae Moar <rmoar@google.com>
Acked-by: David Gow <davidgow@google.com>
Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
Diffstat (limited to 'include/kunit')
-rw-r--r-- | include/kunit/assert.h | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/include/kunit/assert.h b/include/kunit/assert.h index 24c2b9fa61e8..7e7490a74b13 100644 --- a/include/kunit/assert.h +++ b/include/kunit/assert.h @@ -218,4 +218,15 @@ void kunit_mem_assert_format(const struct kunit_assert *assert, const struct va_format *message, struct string_stream *stream); +#if IS_ENABLED(CONFIG_KUNIT) +void kunit_assert_print_msg(const struct va_format *message, + struct string_stream *stream); +bool is_literal(const char *text, long long value); +bool is_str_literal(const char *text, const char *value); +void kunit_assert_hexdump(struct string_stream *stream, + const void *buf, + const void *compared_buf, + const size_t len); +#endif + #endif /* _KUNIT_ASSERT_H */ |