kunit_test_i...ction_suites(9)
β¨ NAME β¨
kunit_test_init_section_suites β bestie, this is the macro you use to register one or more &struct kunit_suite that contain init functions or init data π
(also hi, this is the Kernel API Manual, and yes we're doing this together, you're gonna slay this)
πΈ SYNOPSIS πΈ
kunit_test_init_section_suites (__suites... );
π ARGUMENTS π
__suitesβ a statically allocated list ofstruct kunit_suite. static. allocated. at compile time. no cap π«Ά
π¦ DESCRIPTION π¦
Okay so, plot twist: this function does basically the same thing as kunit_test_suites, except it compiles the list of suites during the init phase. that's the whole vibe, that's the difference, that's it β¨
This macro also suffixes the array and suite declarations it makes with _probe β and it does that on purpose, so that modpost suppresses warnings about referencing init data for symbols named in this manner. iykyk, modpost is out here vibe-checking your init data and this is how you keep it chill π
π NOTE π
π¨ these init tests are not able to be run after boot, so there is literally no run debugfs file generated for these tests. if you were looking for it, it's not there, it never was, it's giving "asked for the moon, got the void" π
π Also β and listen to me β do not mark the suite or test case structs with __initdata, because they will be used after the init phase with debugfs. that's not a suggestion, that's a hard no π«β¨
π§ SEE ALSO π§
Kernel file ./include/kunit/test.h, plus the entire extended friend group:
enum kunit_status(9)struct kunit_case(9)KUNIT_CASE(9)KUNIT_CASE_ATTR(9)KUNIT_CASE_SLOW(9)KUNIT_CASE_PARAM(9)KUNIT_CASE_PARAM_ATTR(9)KUNIT_CASE_PARAM_WITH_INIT(9)struct kunit_suite(9)struct kunit(9)kunit_test_suites(9)kunit_kmalloc_array(9)kunit_kmalloc(9)kunit_kfree(9)kunit_kzalloc(9)kunit_kcalloc(9)kunit_kfree_const(9)kunit_kstrdup(9)kunit_kstrdup_const(9)kunit_attach_mm(9)kunit_vm_mmap(9)kunit_mark_skipped(9)kunit_skip(9)kunit_info(9)kunit_warn(9)kunit_err(9)KUNIT_SUCCEED(9)KUNIT_FAIL(9)KUNIT_EXPECT_TRUE(9)KUNIT_EXPECT_FALSE(9)KUNIT_EXPECT_EQ(9)KUNIT_EXPECT_PTR_EQ(9)KUNIT_EXPECT_NE(9)KUNIT_EXPECT_PTR_NE(9)KUNIT_EXPECT_LT(9)KUNIT_EXPECT_LE(9)KUNIT_EXPECT_GT(9)KUNIT_EXPECT_GE(9)KUNIT_EXPECT_STREQ(9)KUNIT_EXPECT_STRNEQ(9)KUNIT_EXPECT_MEMEQ(9)KUNIT_EXPECT_MEMNEQ(9)KUNIT_EXPECT_NULL(9)KUNIT_EXPECT_NOT_NULL(9)KUNIT_EXPECT_NOT_ERR_OR_NULL(9)KUNIT_FAIL_AND_ABORT(9)KUNIT_ASSERT_TRUE(9)KUNIT_ASSERT_FALSE(9)KUNIT_ASSERT_EQ(9)KUNIT_ASSERT_PTR_EQ(9)KUNIT_ASSERT_NE(9)KUNIT_ASSERT_PTR_NE(9)KUNIT_ASSERT_LT(9)KUNIT_ASSERT_LE(9)KUNIT_ASSERT_GT(9)KUNIT_ASSERT_GE(9)KUNIT_ASSERT_STREQ(9)KUNIT_ASSERT_STRNEQ(9)KUNIT_ASSERT_MEMEQ(9)KUNIT_ASSERT_MEMNEQ(9)KUNIT_ASSERT_NULL(9)KUNIT_ASSERT_NOT_NULL(9)KUNIT_ASSERT_NOT_ERR_OR_NULL(9)KUNIT_ARRAY_PARAM(9)KUNIT_ARRAY_PARAM_DESC(9)kunit_register_params_array(9)kunit_warning_suppress(9)KUNIT_SUPPRESSED_WARNING_COUNT(9)KUNIT_EXPECT_SUPPRESSED_WARNING_COUNT(9)KUNIT_ASSERT_SUPPRESSED_WARNING_COUNT(9)
kisses, this page came to you from ./include/kunit and it's dated October 2026 β go write some init-phase tests, bestie, you're gonna eat π
π
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms