string: Convert helpers selftest to KUnit
authorKees Cook <keescook@chromium.org>
Fri, 1 Mar 2024 20:27:31 +0000 (12:27 -0800)
committerKees Cook <keescook@chromium.org>
Tue, 5 Mar 2024 09:55:28 +0000 (01:55 -0800)
commitfb57550fcbd868391a84411b0a99b2978656cdc1
treefe0398919de6bf04215878174f47db3d0f45fbce
parent29d8568849fe5937e14f5f7763931bb2decf298d
string: Convert helpers selftest to KUnit

Convert test-string_helpers.c to KUnit so it can be easily run with
everything else.

Failure reporting doesn't need to be open-coded in most places, for
example, forcing a failure in the expected output for upper/lower
testing looks like this:

[12:18:43] # test_upper_lower: EXPECTATION FAILED at lib/string_helpers_kunit.c:579
[12:18:43] Expected dst == strings_upper[i].out, but
[12:18:43]     dst == "ABCDEFGH1234567890TEST"
[12:18:43]     strings_upper[i].out == "ABCDEFGH1234567890TeST"
[12:18:43] [FAILED] test_upper_lower

Currently passes without problems:

$ ./tools/testing/kunit/kunit.py run string_helpers
...
[12:23:55] Starting KUnit Kernel (1/1)...
[12:23:55] ============================================================
[12:23:55] =============== string_helpers (3 subtests) ================
[12:23:55] [PASSED] test_get_size
[12:23:55] [PASSED] test_upper_lower
[12:23:55] [PASSED] test_unescape
[12:23:55] ================= [PASSED] string_helpers ==================
[12:23:55] ============================================================
[12:23:55] Testing complete. Ran 3 tests: passed: 3
[12:23:55] Elapsed time: 6.709s total, 0.001s configuring, 6.591s building, 0.066s running

Link: https://lore.kernel.org/r/20240301202732.2688342-2-keescook@chromium.org
Signed-off-by: Kees Cook <keescook@chromium.org>
MAINTAINERS
lib/Kconfig.debug
lib/Makefile
lib/string_helpers_kunit.c [moved from lib/test-string_helpers.c with 72% similarity]