Commit 8080c67d authored by Carlos Llamas's avatar Carlos Llamas Committed by Shuah Khan
Browse files

kunit: prevent log overwrite in param_tests

When running parameterized tests, each test case is initialized with
kunit_init_test(). This function takes the test_case->log as a parameter
but it clears it via string_stream_clear() on each iteration.

This results in only the log from the last parameter being preserved in
the test_case->log and the results from the previous parameters are lost
from the debugfs entry.

Fix this by manually setting the param_test.log to the test_case->log
after it has been initialized. This prevents kunit_init_test() from
clearing the log on each iteration.

Link: https://lore.kernel.org/r/20251024190101.2091549-1-cmllamas@google.com


Fixes: 4b59300b ("kunit: Add parent kunit for parameterized test context")
Signed-off-by: default avatarCarlos Llamas <cmllamas@google.com>
Reviewed-by: default avatarDavid Gow <davidgow@google.com>
Signed-off-by: default avatarShuah Khan <skhan@linuxfoundation.org>
parent 2551a1ee
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -745,7 +745,8 @@ int kunit_run_tests(struct kunit_suite *suite)
					.param_index = ++test.param_index,
					.parent = &test,
				};
				kunit_init_test(&param_test, test_case->name, test_case->log);
				kunit_init_test(&param_test, test_case->name, NULL);
				param_test.log = test_case->log;
				kunit_run_case_catch_errors(suite, test_case, &param_test);

				if (param_desc[0] == '\0') {