KUNIT_ASSERT_LE(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… KUNIT_ASSERT_LE πŸ’…

okay so real quick β€” this page is from the Kernel API Manual (section 9, the kernel one, not the "type this in your shell" one), and it's about a single little macro that will absolutely throw hands if your math is wrong. bestie, let's get into it πŸŽ€


✨ NAME ✨

KUNIT_ASSERT_LE β€” the assertion that @left is less than or equal to @right. that's it. that's the whole vibe. if left is bigger than right, we have a problem πŸ’€


πŸ¦‹ SYNOPSIS πŸ¦‹

KUNIT_ASSERT_LE (test , left , right );

three things go in, chaos comes out if the math doesn't math ✨


🌸 ARGUMENTS 🌸

  • test β€” the test context object. your main character, the one holding everything together 🫢
  • left β€” an arbitrary expression that evaluates to a primitive C type. the contender on the left side of the ring πŸ’ͺ
  • right β€” an arbitrary expression that evaluates to a primitive C type. the one on the right, also a primitive C type, no cap

πŸ”₯ DESCRIPTION πŸ”₯

So what it does: it sets an assertion that the value left evaluates to is less than or equal to the value right evaluates to. literally left <= right, that's the whole thing, iconic behavior honestly πŸ‘‘

And here's the tea β€” this is the same as KUNIT_EXPECT_LE, like, same energy, same check. the ONE difference? When the assertion is not met, KUNIT_ASSERT_LE causes an assertion failure (see KUNIT_ASSERT_TRUE). so it's not just side-eye and a logged complaint, it's a full-on dramatic exit 😭

ngl that's the whole distinction β€” EXPECT logs and keeps going, ASSERT fails the assertion. know the difference, iykyk πŸ’…

🌈 SEE ALSO 🌈

the whole friend group, all of it, in order, no skips 🧚

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_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)


that's the whole page bestie, go write some tests that actually pass πŸ“

signed off with love from ./include/kunit β€” October 2026 β€” KUNIT_ASSERT_LE(9) πŸ’œ

πŸ“¦ where this page comes from