KUNIT_ASSERT_MEMNEQ(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… KUNIT_ASSERT_MEMNEQ πŸ’…

okay so this is a page from the Kernel API Manual (that's the manual name, bestie, we're folding it in right here at the top so you're oriented ✨). Buckle up, it's a good one.


🌸 NAME 🌸

KUNIT_ASSERT_MEMNEQ β€” the assert that goes "these two chunks of the first @size bytes of @left and @right are not equal." Like, verified not equal. No cap. πŸ’–


πŸŽ€ SYNOPSIS πŸŽ€

KUNIT_ASSERT_MEMNEQ (test , left , right , size );

✨ ARGUMENTS ✨

  • test β€” the test context object 🫢 (the whole vibe you're asserting inside of)
  • left β€” an arbitrary expression that evaluates to the specified size
  • right β€” an arbitrary expression that evaluates to the specified size
  • size β€” number of bytes compared πŸ”’

πŸ’… DESCRIPTION πŸ’…

So what it does: it sets an assertion that the values left and right evaluate to are not equal. Semantically it's literally equivalent to KUNIT_ASSERT_TRUE(test, memcmp((left), (right), (size))) β€” that's word for word the equivalence, iykyk. Wanna know more? Go see KUNIT_ASSERT_TRUE πŸ‘‘

Now the nuance, bestie, listen 🎧 β€” although this assertion works for any memory block, it is not recommended for comparing more structured data, such as structs πŸ™ˆ. Where it is recommended? Comparing, for example, data arrays. That's its moment. That's its main character energy. ⭐


πŸ¦‹ SEE ALSO πŸ¦‹

Kernel file ./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_STRNEQ(9), KUNIT_ASSERT_MEMEQ(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)

That's the whole squad, no one left out, periodt. 🌈


and that's the page, bestie!! this cutie lives in ./include/kunit, it's the October 2026 edition, and it's filed under KUNIT_ASSERT_MEMNEQ(9) πŸŽ€ go forth and compare your arrays, not your structs πŸ’œ πŸ§šβ€β™€οΈ

πŸ“¦ where this page comes from