KUNIT_ASSERT_STRNEQ(9)
π KUNIT_ASSERT_STRNEQ(9) β from the Kernel API Manual, bestie π«Ά
okay so real talk, this one is a banger of a macro and it does exactly one (1) thing, but it does it flawlessly. no cap.
β¨ NAME β¨
KUNIT_ASSERT_STRNEQ β the assertion that goes "these two strings are not the same, and I'm willing to bet the test run on it." Like, it asserts that @left and @right are not equal. periodt. π
β¨ SYNOPSIS β¨
KUNIT_ASSERT_STRNEQ (test , left , right );
yes she's a macro, yes she's got three args, yes she ate π
β¨ ARGUMENTS β¨
testβ the test context object. your main character. everything gets reported through her πleftβ any arbitrary expression that evaluates to a null terminated string. yes, any expression. go off πrightβ another arbitrary expression that evaluates to a null terminated string. the other half of the vibe check πΈ
β¨ DESCRIPTION β¨
So what she actually does: she sets an assertion that the values left and right evaluate to are not equal. that's it. that's the whole personality π¦
and ngl, she's semantically equivalent to this:
KUNIT_ASSERT_TRUE(test, strcmp((left), (right)))
like, lowkey the exact same energy, just with a cuter face β¨ and if you want more info on how that whole assert mechanism works, go peek at KUNIT_ASSERT_TRUE β she explains the lore π
β¨ SEE ALSO β¨
the whole friend group, fr fr β and the kernel file she lives in is ./include/kunit/test.h π
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_test_init_section_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_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)
okay that's the whole page, mwah π one last lil sign-off note for the receipts: this cutie comes out of the ./include/kunit directory, dated October 2026, and it's filed under the Kernel API Manual β iykyk π§π
π¦ 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