twx-linux/lib/kunit
Marie Zhussupova 4b59300ba4 kunit: Add parent kunit for parameterized test context
Currently, KUnit parameterized tests lack a mechanism to share
resources across parameter runs because the same `struct kunit`
instance is cleaned up and reused for each run.

This patch introduces parameterized test context, enabling test
users to share resources between parameter runs. It also allows
setting up resources that need to be available for all parameter
runs only once, which is helpful in cases where setup is expensive.

To establish a parameterized test context, this patch adds a
parent pointer field to `struct kunit`. This allows resources added
to the parent `struct kunit` to be shared and accessible across all
parameter runs.

In kunit_run_tests(), the default `struct kunit` created is now
designated to act as the parameterized test context whenever a test
is parameterized.

Subsequently, a new `struct kunit` is made for each parameter run, and
its parent pointer is set to the `struct kunit` that holds the
parameterized test context.

Link: https://lore.kernel.org/r/20250826091341.1427123-2-davidgow@google.com
Reviewed-by: David Gow <davidgow@google.com>
Reviewed-by: Rae Moar <rmoar@google.com>
Signed-off-by: Marie Zhussupova <marievic@google.com>
Signed-off-by: David Gow <davidgow@google.com>
Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
2025-08-26 23:36:03 -06:00
..
.kunitconfig kunit: tool: make --kunitconfig accept dirs, add lib/kunit fragment 2021-04-02 14:14:36 -06:00
assert_test.c kunit: Cover 'assert.c' with tests 2024-05-30 12:53:47 -06:00
assert.c kunit: Cover 'assert.c' with tests 2024-05-30 12:53:47 -06:00
attributes.c kunit: add is_init test attribute 2023-12-18 13:21:15 -07:00
debugfs.c kunit: Introduce autorun option 2025-01-15 09:04:06 -07:00
debugfs.h kunit: add debugfs /sys/kernel/debug/kunit/<suite>/results display 2020-03-26 14:07:18 -06:00
device-impl.h kunit: device: Unregister the kunit_bus on shutdown 2024-02-06 17:07:37 -07:00
device.c kunit: Device wrappers should also manage driver name 2024-08-26 07:03:46 -06:00
executor_test.c kunit: executor: Simplify string allocation handling 2024-07-12 10:11:48 -06:00
executor.c kunit: executor: Remove const from kunit_filter_suites() allocation type 2025-04-29 12:48:27 -06:00
hooks-impl.h kunit: Add printf attribute to fail_current_test_impl 2023-02-08 18:08:14 -07:00
hooks.c kunit: Add "hooks" to call into KUnit when it's built as a module 2023-02-08 14:26:25 -07:00
Kconfig kunit: Make default kunit_test timeout configurable via both a module parameter and a Kconfig option 2025-06-27 15:00:05 -06:00
kunit-example-test.c kunit: add missing MODULE_DESCRIPTION() macros to core modules 2024-06-07 15:59:05 -06:00
kunit-test.c kunit: Adjust kunit_test timeout based on test_{suite,case} speed 2025-06-24 20:47:39 -06:00
Makefile kunit: Always descend into kunit directory during build 2025-08-15 11:39:46 -06:00
platform-test.c platform: Add test managed platform_device/driver APIs 2024-07-29 15:33:12 -07:00
platform.c platform: Add test managed platform_device/driver APIs 2024-07-29 15:33:12 -07:00
resource.c kunit: Add kunit_add_action() to defer a call until test exit 2023-05-25 08:52:55 -06:00
static_stub.c kunit: Fix wrong parameter to kunit_deactivate_static_stub() 2025-05-21 09:51:23 -06:00
string-stream-test.c kunit: string-stream-test: Include <linux/prandom.h> 2024-10-03 18:20:14 +02:00
string-stream.c kunit: string-stream: Allow ERR_PTR to be passed to string_stream_destroy() 2023-12-18 13:21:14 -07:00
string-stream.h kunit: string-stream: Decouple string_stream from kunit 2023-09-18 10:45:40 -06:00
test.c kunit: Add parent kunit for parameterized test context 2025-08-26 23:36:03 -06:00
try-catch-impl.h kunit: Adjust kunit_test timeout based on test_{suite,case} speed 2025-06-24 20:47:39 -06:00
try-catch.c kunit: Adjust kunit_test timeout based on test_{suite,case} speed 2025-06-24 20:47:39 -06:00
user_alloc.c kunit: test: Export kunit_attach_mm() 2025-07-16 14:11:58 +02:00