FIXTURE_SETUP(9)
π FIXTURE_SETUP(9) β the kernel API manual page, but make it make sense β¨
okay bestie, this is FIXTURE_SETUP from section 9 of the kernel API manual, and honestly she's a little baddie π β she builds the setup function for your fixture, no cap.
β¨ NAME β¨
FIXTURE_SETUP β prepares the setup function for the fixture. the _metadata_ is included so that EXPECT_*, ASSERT_* etc. work correctly π«Ά
like, the metadata is literally part of the deal so your assertions don't fumble the bag. iykyk π
π¦ SYNOPSIS π¦
FIXTURE_SETUP (fixture_name );
that's it. that's the whole vibe check. β
πΈ ARGUMENTS πΈ
fixture_nameβ the fixture name π (yes queen, just the name, that's the whole argument)
π DESCRIPTION π
okay so here's the shape of it, bestie:
FIXTURE_SETUP(fixture_name) { implementation }
she populates the required "setup" function for a fixture β main character energy fr fr π₯
and here's the gorgeous part: an instance of the datatype defined with FIXTURE_DATA will be exposed as self for the implementation π so your implementation gets handed self and can just do its thing, iconic.
the ASSERT_* macros are valid for use in this context β¨ β and they will preempt the execution of any dependent fixture tests π so like, if an assert goes off in here, the dependent tests don't even get to run. it's giving bouncer at the club.
also!! a bare return; statement may be used to return early π¦ β that's your little early-exit moment, use her wisely.
π SEE ALSO π
the whole friend group, assembled π:
- the kernel file
./tools/testing/selftests/kselftest_harness.hexample(9) β that's the example, go look at it, it's giving tutorial TH_LOG(9)SKIP(9)TEST(9)TEST_SIGNAL(9)FIXTURE_DATA(9)FIXTURE(9)FIXTURE_TEARDOWN(9)FIXTURE_TEARDOWN_PARENT(9)FIXTURE_VARIANT(9)FIXTURE_VARIANT_ADD(9)TEST_F(9)TEST_HARNESS_MAIN(9)operators(9)ASSERT_EQ(9)ASSERT_NE(9)ASSERT_LT(9)ASSERT_LE(9)ASSERT_GT(9)ASSERT_GE(9)ASSERT_NULL(9)ASSERT_TRUE(9)ASSERT_FALSE(9)ASSERT_STREQ(9)ASSERT_STRNE(9)EXPECT_EQ(9)EXPECT_NE(9)EXPECT_LT(9)EXPECT_LE(9)EXPECT_GT(9)EXPECT_GE(9)EXPECT_NULL(9)EXPECT_TRUE(9)EXPECT_FALSE(9)EXPECT_STREQ(9)EXPECT_STRNE(9)XFAIL_ADD(9)
π reminder bestie: ASSERT_* inside this setup context will preempt the execution of any dependent fixture tests. that's not a vibe, that's a fact. don't come for me, come for the header.
okay that's the page, mwah π β sourced from ./tools/testing/selftests, dated October 2026, and that's the whole FIXTURE_SETUP(9) situation. slay, periodt, go write your tests π§ββοΈβ¨
π¦ 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