/* Boolean assertions */
KUNIT_EXPECT_TRUE(test, true);
KUNIT_EXPECT_FALSE(test, false);
/* Integer assertions */
KUNIT_EXPECT_EQ(test, 1, 1); /* check == */
KUNIT_EXPECT_GE(test, 1, 1); /* check >= */ //大于等于
KUNIT_EXPECT_LE(test, 1, 1); /* check <= */ //小于等于
KUNIT_EXPECT_NE(test, 1, 0); /* check != */ //不等于
KUNIT_EXPECT_GT(test, 1, 0); /* check > */ //大于
KUNIT_EXPECT_LT(test, 0, 1); /* check < */ //小于
/* Pointer assertions */
KUNIT_EXPECT_NOT_ERR_OR_NULL(test, test); //指针判断
KUNIT_EXPECT_PTR_EQ(test, NULL, NULL); //指针相等
KUNIT_EXPECT_PTR_NE(test, test, NULL); //指针不相等
KUNIT_EXPECT_NULL(test, NULL); //判断空
KUNIT_EXPECT_NOT_NULL(test, test); //判断不为空
/* String assertions */
KUNIT_EXPECT_STREQ(test, "hi", "hi"); //字符串相等
KUNIT_EXPECT_STRNEQ(test, "hi", "bye"); //字符串不相等
/* Memory block assertions */
KUNIT_EXPECT_MEMEQ(test, array1, array1, sizeof(array1)); //内存相等
KUNIT_EXPECT_MEMNEQ(test, array1, array2, sizeof(array1)); //内存不相等
/*
* There are also ASSERT variants of all of the above that abort test
* execution if they fail. Useful for memory allocations, etc.
*/
KUNIT_ASSERT_GT(test, sizeof(char), 0); //直接assert
/*
* There are also _MSG variants of all of the above that let you include
* additional text on failure.
*/
KUNIT_EXPECT_GT_MSG(test, sizeof(int), 0, "Your ints are 0-bit?!");
KUNIT_ASSERT_GT_MSG(test, sizeof(int), 0, "Your ints are 0-bit?!");
}
更多不断更新。
另外根据这个这些接口看Linux内核代码在5.x之后kunit修改挺多的。
KUNIT更多函数都可以参考该链接:
https://elixir.bootlin.com/linux/v6.9-rc3/source/lib/kunit/kunit-example-test.c
参考链接:
https://elixir.bootlin.com/linux/v6.9-rc3/source/lib/kunit/kunit-example-test.c
kunit官网: https://kunit.dev/