KUNIT_ASSERT_LE(9)
π 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 βEXPECTlogs and keeps going,ASSERTfails 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
- 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