测试 API¶
此文件记录了所有标准测试 API。
-
enum kunit_status¶
测试或测试套件的结果类型
常量
KUNIT_SUCCESS
表示测试套件既没有失败也没有被跳过
KUNIT_FAILURE
表示测试失败。
KUNIT_SKIPPED
表示测试已被跳过。
-
struct kunit_case¶
表示一个单独的测试用例。
定义:
struct kunit_case {
void (*run_case)(struct kunit *test);
const char *name;
const void* (*generate_params)(const void *prev, char *desc);
struct kunit_attributes attr;
};
成员
run_case
表示实际测试用例的函数。
name
测试用例的名称。
generate_params
参数化测试的生成器函数。
attr
与测试关联的属性
描述
测试用例是一个具有签名 void (*)(struct kunit *)
的函数,它对被测代码进行期望和断言(参见 KUNIT_EXPECT_TRUE()
和 KUNIT_ASSERT_TRUE()
)。 每个测试用例都与一个 struct kunit_suite
相关联,并且将在套件的 init 函数之后运行,然后是套件的 exit 函数。
测试用例应该是静态的,并且应该仅使用 KUNIT_CASE()
宏创建; 此外,每个测试用例数组都应该以一个空的测试用例终止。
void add_test_basic(struct kunit *test)
{
KUNIT_EXPECT_EQ(test, 1, add(1, 0));
KUNIT_EXPECT_EQ(test, 2, add(1, 1));
KUNIT_EXPECT_EQ(test, 0, add(-1, 1));
KUNIT_EXPECT_EQ(test, INT_MAX, add(0, INT_MAX));
KUNIT_EXPECT_EQ(test, -1, add(INT_MAX, INT_MIN));
}
static struct kunit_case example_test_cases[] = {
KUNIT_CASE(add_test_basic),
{}
};
示例
-
KUNIT_CASE¶
KUNIT_CASE (test_name)
用于创建
struct kunit_case
的辅助函数
参数
test_name
对测试用例函数的引用。
描述
接受表示测试用例的函数的符号,并从中创建一个 struct kunit_case
对象。 有关如何使用它的示例,请参见 struct kunit_case
的文档。
-
KUNIT_CASE_ATTR¶
KUNIT_CASE_ATTR (test_name, attributes)
用于创建具有属性的
struct kunit_case
的辅助函数
参数
test_name
对测试用例函数的引用。
attributes
对包含测试属性的 struct kunit_attributes 对象的引用
-
KUNIT_CASE_SLOW¶
KUNIT_CASE_SLOW (test_name)
用于创建具有 slow 属性的
struct kunit_case
的辅助函数
参数
test_name
对测试用例函数的引用。
-
KUNIT_CASE_PARAM¶
KUNIT_CASE_PARAM (test_name, gen_params)
用于创建参数化的
struct kunit_case
的辅助函数
参数
test_name
对测试用例函数的引用。
gen_params
对参数生成器函数的引用。
描述
生成器函数
const void* gen_params(const void *prev, char *desc)
用于延迟生成一系列任意类型的值,这些值适合 void*。 参数 prev 是先前返回的值,该值应用于派生下一个值;在初始生成器调用时,prev 设置为 NULL。 当没有更多值可用时,生成器必须返回 NULL。 可选择将字符串写入 desc(大小为 KUNIT_PARAM_DESC_SIZE)以描述参数。
-
KUNIT_CASE_PARAM_ATTR¶
KUNIT_CASE_PARAM_ATTR (test_name, gen_params, attributes)
用于创建具有属性的参数化
struct kunit_case
的辅助函数
参数
test_name
对测试用例函数的引用。
gen_params
对参数生成器函数的引用。
attributes
对包含测试属性的 struct kunit_attributes 对象的引用
-
struct kunit_suite¶
描述了相关的
struct kunit_case
的集合
定义:
struct kunit_suite {
const char name[256];
int (*suite_init)(struct kunit_suite *suite);
void (*suite_exit)(struct kunit_suite *suite);
int (*init)(struct kunit *test);
void (*exit)(struct kunit *test);
struct kunit_case *test_cases;
struct kunit_attributes attr;
};
成员
name
测试的名称。 纯粹是信息性的。
suite_init
在测试用例之前每个测试套件调用一次。
suite_exit
在所有测试用例之后每个测试套件调用一次。
init
在每个测试用例之前调用。
exit
在每个测试用例之后调用。
test_cases
以 null 结尾的测试用例数组。
attr
与测试套件关联的属性
描述
kunit_suite 是相关 struct kunit_case
的集合,例如,在每个测试用例之前调用 init,在每个测试用例之后调用 exit,类似于其他单元测试框架(如 JUnit 或 Googletest)中的 测试装置 或 测试类 的概念。
请注意,即使 init 或 suite_init 失败,exit 和 suite_exit 也会运行:请确保它们可以处理可能导致的任何不一致状态。
每个 struct kunit_case
都必须与一个 kunit_suite 关联,KUnit 才能运行它。
-
struct kunit¶
表示测试的正在运行的实例。
描述
用于存储有关测试正在运行的当前上下文的信息。 此数据的大部分是私有的,应仅通过公共函数间接访问; 一个例外是 priv,测试编写者可以使用它来存储任意数据。
-
kunit_test_suites¶
kunit_test_suites (__suites...)
用于向 KUnit 注册一个或多个
struct kunit_suite
。
参数
__suites...
静态分配的
struct kunit_suite
列表。
描述
向测试框架注册 suites。 这是通过将 struct kunit_suite
* 的数组放置在 .kunit_test_suites ELF 部分中来完成的。
当内置时,KUnit 测试全部通过引导时的执行器运行,当构建为模块时,它们在模块加载时运行。
-
kunit_test_init_section_suites¶
kunit_test_init_section_suites (__suites...)
用于注册一个或多个包含 init 函数或 init 数据的
struct kunit_suite
。
参数
__suites...
静态分配的
struct kunit_suite
列表。
描述
此函数与 kunit_test_suites()
类似,区别在于它在初始化阶段编译套件列表。
此宏还会将 _probe 后缀添加到它创建的数组和套件声明中;以便 modpost 抑制关于引用以这种方式命名的符号的初始化数据的警告。
此外,请勿使用 __initdata 标记套件或测试用例结构,因为它们将在初始化阶段之后与 debugfs 一起使用。
注意
这些初始化测试在启动后无法运行,因此不会为这些测试生成“run” debugfs 文件。
-
void *kunit_kmalloc_array(struct kunit *test, size_t n, size_t size, gfp_t gfp)¶
类似于
kmalloc_array()
,不同之处在于此分配由测试管理。
参数
struct kunit *test
测试上下文对象。
size_t n
元素数量。
size_t size
所需内存的字节大小。
gfp_t gfp
传递给底层
kmalloc()
的标志。
描述
与 kmalloc_array(...) 类似,不同之处在于此分配由测试用例管理,并且在测试用例结束后自动清理。有关详细信息,请参阅 kunit_add_action()
。
请注意,无论传入的 gfp 如何,一些内部上下文数据也会使用 GFP_KERNEL 分配。
参数
struct kunit *test
测试上下文对象。
size_t size
所需内存的字节大小。
gfp_t gfp
传递给底层
kmalloc()
的标志。
描述
有关详细信息,请参阅 kmalloc()
和 kunit_kmalloc_array()
。
请注意,无论传入的 gfp 如何,一些内部上下文数据也会使用 GFP_KERNEL 分配。
参数
struct kunit *test
资源所属的测试用例。
const void *ptr
要释放的内存分配。
-
void *kunit_kzalloc(struct kunit *test, size_t size, gfp_t gfp)¶
与
kunit_kmalloc()
类似,但会将分配清零。
参数
struct kunit *test
测试上下文对象。
size_t size
所需内存的字节大小。
gfp_t gfp
传递给底层
kmalloc()
的标志。
描述
有关详细信息,请参阅 kzalloc()
和 kunit_kmalloc_array()
。
-
void *kunit_kcalloc(struct kunit *test, size_t n, size_t size, gfp_t gfp)¶
与
kunit_kmalloc_array()
类似,但会将分配清零。
参数
struct kunit *test
测试上下文对象。
size_t n
元素数量。
size_t size
所需内存的字节大小。
gfp_t gfp
传递给底层
kmalloc()
的标志。
描述
有关详细信息,请参阅 kcalloc()
和 kunit_kmalloc_array()
。
参数
struct kunit *test
测试上下文对象。
const void *x
指向内存的指针
描述
仅当 x 不在 .rodata 部分时,才调用 kunit_kfree()
。有关详细信息,请参阅 kunit_kstrdup_const()
。
参数
struct kunit *test
测试上下文对象。
const char *str
要复制的以 NULL 结尾的字符串。
gfp_t gfp
传递给底层
kmalloc()
的标志。
描述
有关详细信息,请参阅 kstrdup()
和 kunit_kmalloc_array()
。
-
const char *kunit_kstrdup_const(struct kunit *test, const char *str, gfp_t gfp)¶
有条件地将字符串复制到测试管理的分配中。
参数
struct kunit *test
测试上下文对象。
const char *str
要复制的以 NULL 结尾的字符串。
gfp_t gfp
传递给底层
kmalloc()
的标志。
描述
仅当 str 不在 rodata 段时才调用 kunit_kstrdup()
。必须使用 kunit_kfree_const()
释放,而不是 kunit_kfree()
。有关详细信息,请参阅 kstrdup_const()
和 kunit_kmalloc_array()
。
-
unsigned long kunit_vm_mmap(struct kunit *test, struct file *file, unsigned long addr, unsigned long len, unsigned long prot, unsigned long flag, unsigned long offset)¶
分配 KUnit 跟踪的 vm_mmap() 区域
参数
struct kunit *test
测试上下文对象。
struct file *file
要映射的
struct file
指针(如果有)unsigned long addr
期望的地址(如果有)
unsigned long len
要分配的字节数
unsigned long prot
mmap PROT_* 位
unsigned long flag
mmap 标志
unsigned long offset
从 file 开始映射的偏移量。
描述
有关详细信息,请参阅 vm_mmap()。
-
kunit_mark_skipped¶
kunit_mark_skipped (test_or_suite, fmt, ...)
将 test_or_suite 标记为跳过
参数
test_or_suite
测试上下文对象。
fmt
一个
printk()
风格的格式字符串。...
可变参数
描述
将测试标记为跳过。fmt 作为测试状态注释给出输出,通常是测试被跳过的原因。
在调用 kunit_mark_skipped()
后,测试执行继续。
-
kunit_skip¶
kunit_skip (test_or_suite, fmt, ...)
将 test_or_suite 标记为跳过
参数
test_or_suite
测试上下文对象。
fmt
一个
printk()
风格的格式字符串。...
可变参数
描述
跳过测试。fmt 作为测试状态注释给出输出,通常是测试被跳过的原因。
在调用 kunit_skip()
后,测试执行停止。
-
kunit_info¶
kunit_info (test, fmt, ...)
打印与 test 关联的 INFO 级别消息。
参数
test
测试上下文对象。
fmt
一个
printk()
风格的格式字符串。...
可变参数
描述
打印与正在运行的测试套件关联的 info 级别消息。接受可变数量的格式参数,就像 printk()
一样。
-
kunit_warn¶
kunit_warn (test, fmt, ...)
打印与 test 关联的 WARN 级别消息。
-
kunit_err¶
kunit_err (test, fmt, ...)
打印与 test 关联的 ERROR 级别消息。
-
KUNIT_SUCCEED¶
KUNIT_SUCCEED (test)
一个空操作期望。仅为了代码清晰而存在。
参数
test
测试上下文对象。
描述
与 KUNIT_FAIL()
相反,它是一个不会失败的期望。换句话说,它不执行任何操作,仅为了代码清晰而存在。有关详细信息,请参阅 KUNIT_EXPECT_TRUE()
。
-
KUNIT_FAIL¶
KUNIT_FAIL (test, fmt, ...)
在评估时始终导致测试失败。
参数
test
测试上下文对象。
fmt
在断言时要打印的信息消息。
...
字符串格式参数。
描述
与 KUNIT_SUCCEED()
相反,它是一个始终失败的期望。换句话说,它始终导致期望失败,因此在评估时始终导致测试用例失败。有关详细信息,请参阅 KUNIT_EXPECT_TRUE()
。
-
KUNIT_EXPECT_TRUE¶
KUNIT_EXPECT_TRUE (test, condition)
当表达式不为 true 时,导致测试失败。
参数
test
测试上下文对象。
condition
一个任意的布尔表达式。当此表达式的计算结果不为 true 时,测试将失败。
描述
此形式的期望和其他形式的期望 KUNIT_EXPECT_* 将在不满足指定条件时导致测试用例失败;但是,它不会阻止测试用例继续运行;这也被称为期望失败。
-
KUNIT_EXPECT_FALSE¶
KUNIT_EXPECT_FALSE (test, condition)
当表达式不为 false 时,导致测试失败。
参数
test
测试上下文对象。
condition
一个任意的布尔表达式。当此表达式的计算结果不为 false 时,测试将失败。
描述
设置 condition 的计算结果为 false 的期望。有关详细信息,请参阅 KUNIT_EXPECT_TRUE()
。
-
KUNIT_EXPECT_EQ¶
KUNIT_EXPECT_EQ (test, left, right)
设置 left 和 right 相等的期望。
参数
test
测试上下文对象。
left
一个任意的表达式,其计算结果为原始 C 类型。
right
一个任意的表达式,其计算结果为原始 C 类型。
描述
设置 left 和 right 计算结果的值相等的期望。这在语义上等效于 KUNIT_EXPECT_TRUE(test, (left) == (right))。有关详细信息,请参阅 KUNIT_EXPECT_TRUE()
。
-
KUNIT_EXPECT_PTR_EQ¶
KUNIT_EXPECT_PTR_EQ (test, left, right)
期望指针 left 和 right 相等。
参数
test
测试上下文对象。
left
一个任意的表达式,其计算结果为一个指针。
right
一个任意的表达式,其计算结果为一个指针。
描述
设置 left 和 right 计算结果的值相等的期望。这在语义上等效于 KUNIT_EXPECT_TRUE(test, (left) == (right))。有关详细信息,请参阅 KUNIT_EXPECT_TRUE()
。
-
KUNIT_EXPECT_NE¶
KUNIT_EXPECT_NE (test, left, right)
期望 left 和 right 不相等。
参数
test
测试上下文对象。
left
一个任意的表达式,其计算结果为原始 C 类型。
right
一个任意的表达式,其计算结果为原始 C 类型。
描述
设置 left 和 right 计算结果的值不相等的期望。这在语义上等效于 KUNIT_EXPECT_TRUE(test, (left) != (right))。有关详细信息,请参阅 KUNIT_EXPECT_TRUE()
。
-
KUNIT_EXPECT_PTR_NE¶
KUNIT_EXPECT_PTR_NE (test, left, right)
期望指针 left 和 right 不相等。
参数
test
测试上下文对象。
left
一个任意的表达式,其计算结果为一个指针。
right
一个任意的表达式,其计算结果为一个指针。
描述
设置 left 和 right 计算结果的值不相等的期望。这在语义上等效于 KUNIT_EXPECT_TRUE(test, (left) != (right))。有关详细信息,请参阅 KUNIT_EXPECT_TRUE()
。
-
KUNIT_EXPECT_LT¶
KUNIT_EXPECT_LT (test, left, right)
期望 left 小于 right。
参数
test
测试上下文对象。
left
一个任意的表达式,其计算结果为原始 C 类型。
right
一个任意的表达式,其计算结果为原始 C 类型。
描述
设置 left 计算结果的值小于 right 计算结果的值的期望。这在语义上等效于 KUNIT_EXPECT_TRUE(test, (left) < (right))。有关详细信息,请参阅 KUNIT_EXPECT_TRUE()
。
-
KUNIT_EXPECT_LE¶
KUNIT_EXPECT_LE (test, left, right)
期望 left 小于或等于 right。
参数
test
测试上下文对象。
left
一个任意的表达式,其计算结果为原始 C 类型。
right
一个任意的表达式,其计算结果为原始 C 类型。
描述
设置 left 计算结果的值小于或等于 right 计算结果的值的期望。在语义上,这等效于 KUNIT_EXPECT_TRUE(test, (left) <= (right))。有关详细信息,请参阅 KUNIT_EXPECT_TRUE()
。
-
KUNIT_EXPECT_GT¶
KUNIT_EXPECT_GT (test, left, right)
期望 left 大于 right。
参数
test
测试上下文对象。
left
一个任意的表达式,其计算结果为原始 C 类型。
right
一个任意的表达式,其计算结果为原始 C 类型。
描述
设置一个期望,即 left 的求值结果大于 right 的求值结果。这在语义上等同于 KUNIT_EXPECT_TRUE(test, (left) > (right))。有关更多信息,请参阅 KUNIT_EXPECT_TRUE()
。
-
KUNIT_EXPECT_GE¶
KUNIT_EXPECT_GE (test, left, right)
期望 left 大于或等于 right。
参数
test
测试上下文对象。
left
一个任意的表达式,其计算结果为原始 C 类型。
right
一个任意的表达式,其计算结果为原始 C 类型。
描述
设置一个期望,即 left 的求值结果大于或等于 right 的求值结果。这在语义上等同于 KUNIT_EXPECT_TRUE(test, (left) >= (right))。有关更多信息,请参阅 KUNIT_EXPECT_TRUE()
。
-
KUNIT_EXPECT_STREQ¶
KUNIT_EXPECT_STREQ (test, left, right)
期望字符串 left 和 right 相等。
参数
test
测试上下文对象。
left
一个任意的表达式,求值结果为一个以 null 结尾的字符串。
right
一个任意的表达式,求值结果为一个以 null 结尾的字符串。
描述
设置一个期望,即 left 和 right 的求值结果相等。这在语义上等同于 KUNIT_EXPECT_TRUE(test, !strcmp((left), (right)))。有关更多信息,请参阅 KUNIT_EXPECT_TRUE()
。
-
KUNIT_EXPECT_STRNEQ¶
KUNIT_EXPECT_STRNEQ (test, left, right)
期望字符串 left 和 right 不相等。
参数
test
测试上下文对象。
left
一个任意的表达式,求值结果为一个以 null 结尾的字符串。
right
一个任意的表达式,求值结果为一个以 null 结尾的字符串。
描述
设置一个期望,即 left 和 right 的求值结果不相等。这在语义上等同于 KUNIT_EXPECT_TRUE(test, strcmp((left), (right)))。有关更多信息,请参阅 KUNIT_EXPECT_TRUE()
。
-
KUNIT_EXPECT_MEMEQ¶
KUNIT_EXPECT_MEMEQ (test, left, right, size)
期望 left 和 right 的前 size 个字节相等。
参数
test
测试上下文对象。
left
一个任意的表达式,求值结果为指定的 size。
right
一个任意的表达式,求值结果为指定的 size。
size
比较的字节数。
描述
设置一个期望,即 left 和 right 的求值结果相等。这在语义上等同于 KUNIT_EXPECT_TRUE(test, !memcmp((left), (right), (size)))。有关更多信息,请参阅 KUNIT_EXPECT_TRUE()
。
虽然此期望适用于任何内存块,但不建议用于比较更结构化的数据,如结构体。建议此期望用于比较数据数组等。
-
KUNIT_EXPECT_MEMNEQ¶
KUNIT_EXPECT_MEMNEQ (test, left, right, size)
期望 left 和 right 的前 size 个字节不相等。
参数
test
测试上下文对象。
left
一个任意的表达式,求值结果为指定的 size。
right
一个任意的表达式,求值结果为指定的 size。
size
比较的字节数。
描述
设置一个期望,即 left 和 right 的求值结果不相等。这在语义上等同于 KUNIT_EXPECT_TRUE(test, memcmp((left), (right), (size)))。有关更多信息,请参阅 KUNIT_EXPECT_TRUE()
。
虽然此期望适用于任何内存块,但不建议用于比较更结构化的数据,如结构体。建议此期望用于比较数据数组等。
-
KUNIT_EXPECT_NULL¶
KUNIT_EXPECT_NULL (test, ptr)
期望 ptr 为 null。
参数
test
测试上下文对象。
ptr
一个任意指针。
描述
设置一个期望,即 ptr 的求值结果为 null。这在语义上等同于 KUNIT_EXPECT_PTR_EQ(test, ptr, NULL)。有关更多信息,请参阅 KUNIT_EXPECT_TRUE()
。
-
KUNIT_EXPECT_NOT_NULL¶
KUNIT_EXPECT_NOT_NULL (test, ptr)
期望 ptr 不为 null。
参数
test
测试上下文对象。
ptr
一个任意指针。
描述
设置一个期望,即 ptr 的求值结果不为 null。这在语义上等同于 KUNIT_EXPECT_PTR_NE(test, ptr, NULL)。有关更多信息,请参阅 KUNIT_EXPECT_TRUE()
。
-
KUNIT_EXPECT_NOT_ERR_OR_NULL¶
KUNIT_EXPECT_NOT_ERR_OR_NULL (test, ptr)
期望 ptr 不为 null 且不为 err。
参数
test
测试上下文对象。
ptr
一个任意指针。
描述
设置一个期望,即 ptr 的求值结果不为 null 且不为存储在指针中的 errno。这在语义上等同于 KUNIT_EXPECT_TRUE(test, !IS_ERR_OR_NULL(ptr))。有关更多信息,请参阅 KUNIT_EXPECT_TRUE()
。
-
KUNIT_FAIL_AND_ABORT¶
KUNIT_FAIL_AND_ABORT (test, fmt, ...)
始终导致测试失败并在求值时中止。
参数
test
测试上下文对象。
fmt
在断言时要打印的信息消息。
...
字符串格式参数。
描述
与 KUNIT_SUCCEED()
相反,它是一个始终失败的断言。换句话说,它总是导致断言失败,因此总是导致测试用例在求值时失败并中止。有关更多信息,请参阅 KUNIT_ASSERT_TRUE()
。
-
KUNIT_ASSERT_TRUE¶
KUNIT_ASSERT_TRUE (test, condition)
设置一个断言,即 condition 为 true。
参数
test
测试上下文对象。
condition
一个任意的布尔表达式。当此表达式求值结果不为 true 时,测试将失败并中止。
描述
这种形式的断言 KUNIT_ASSERT_* 将导致测试用例在不满足指定条件时失败*并立即中止*。与期望失败不同,它将阻止测试用例继续运行;这也被称为*断言失败*。
-
KUNIT_ASSERT_FALSE¶
KUNIT_ASSERT_FALSE (test, condition)
设置一个断言,即 condition 为 false。
参数
test
测试上下文对象。
condition
一个任意的布尔表达式。
描述
设置一个断言,即 condition 的求值结果为 false。这与 KUNIT_EXPECT_FALSE()
相同,只是当断言不满足时,它会导致断言失败(请参阅 KUNIT_ASSERT_TRUE()
)。
-
KUNIT_ASSERT_EQ¶
KUNIT_ASSERT_EQ (test, left, right)
设置一个断言,即 left 和 right 相等。
参数
test
测试上下文对象。
left
一个任意的表达式,其计算结果为原始 C 类型。
right
一个任意的表达式,其计算结果为原始 C 类型。
描述
设置一个断言,即 left 和 right 的求值结果相等。这与 KUNIT_EXPECT_EQ()
相同,只是当断言不满足时,它会导致断言失败(请参阅 KUNIT_ASSERT_TRUE()
)。
-
KUNIT_ASSERT_PTR_EQ¶
KUNIT_ASSERT_PTR_EQ (test, left, right)
断言指针 left 和 right 相等。
参数
test
测试上下文对象。
left
一个任意的表达式,其计算结果为一个指针。
right
一个任意的表达式,其计算结果为一个指针。
描述
设置一个断言,即 left 和 right 的求值结果相等。这与 KUNIT_EXPECT_EQ()
相同,只是当断言不满足时,它会导致断言失败(请参阅 KUNIT_ASSERT_TRUE()
)。
-
KUNIT_ASSERT_NE¶
KUNIT_ASSERT_NE (test, left, right)
一个断言,即 left 和 right 不相等。
参数
test
测试上下文对象。
left
一个任意的表达式,其计算结果为原始 C 类型。
right
一个任意的表达式,其计算结果为原始 C 类型。
描述
设置一个断言,判断 left 和 right 计算出的值不相等。这与 KUNIT_EXPECT_NE()
相同,但当断言不满足时,会导致断言失败(请参阅 KUNIT_ASSERT_TRUE()
)。
-
KUNIT_ASSERT_PTR_NE¶
KUNIT_ASSERT_PTR_NE (test, left, right)
断言指针 left 和 right 不相等。
KUNIT_ASSERT_PTR_EQ()
- 断言指针 left 和 right 相等。
参数
test
测试上下文对象。
left
一个任意的表达式,其计算结果为一个指针。
right
一个任意的表达式,其计算结果为一个指针。
描述
设置一个断言,判断 left 和 right 计算出的值不相等。这与 KUNIT_EXPECT_NE()
相同,但当断言不满足时,会导致断言失败(请参阅 KUNIT_ASSERT_TRUE()
)。
-
KUNIT_ASSERT_LT¶
KUNIT_ASSERT_LT (test, left, right)
断言 left 小于 right。
参数
test
测试上下文对象。
left
一个任意的表达式,其计算结果为原始 C 类型。
right
一个任意的表达式,其计算结果为原始 C 类型。
描述
设置一个断言,判断 left 计算出的值小于 right 计算出的值。这与 KUNIT_EXPECT_LT()
相同,但当断言不满足时,会导致断言失败(请参阅 KUNIT_ASSERT_TRUE()
)。
-
KUNIT_ASSERT_LE¶
KUNIT_ASSERT_LE (test, left, right)
断言 left 小于或等于 right。
参数
test
测试上下文对象。
left
一个任意的表达式,其计算结果为原始 C 类型。
right
一个任意的表达式,其计算结果为原始 C 类型。
描述
设置一个断言,判断 left 计算出的值小于或等于 right 计算出的值。这与 KUNIT_EXPECT_LE()
相同,但当断言不满足时,会导致断言失败(请参阅 KUNIT_ASSERT_TRUE()
)。
-
KUNIT_ASSERT_GT¶
KUNIT_ASSERT_GT (test, left, right)
断言 left 大于 right。
参数
test
测试上下文对象。
left
一个任意的表达式,其计算结果为原始 C 类型。
right
一个任意的表达式,其计算结果为原始 C 类型。
描述
设置一个断言,判断 left 计算出的值大于 right 计算出的值。这与 KUNIT_EXPECT_GT()
相同,但当断言不满足时,会导致断言失败(请参阅 KUNIT_ASSERT_TRUE()
)。
-
KUNIT_ASSERT_GE¶
KUNIT_ASSERT_GE (test, left, right)
断言 left 大于或等于 right。
参数
test
测试上下文对象。
left
一个任意的表达式,其计算结果为原始 C 类型。
right
一个任意的表达式,其计算结果为原始 C 类型。
描述
设置一个断言,判断 left 计算出的值大于或等于 right 计算出的值。这与 KUNIT_EXPECT_GE()
相同,但当断言不满足时,会导致断言失败(请参阅 KUNIT_ASSERT_TRUE()
)。
-
KUNIT_ASSERT_STREQ¶
KUNIT_ASSERT_STREQ (test, left, right)
断言字符串 left 和 right 相等。
参数
test
测试上下文对象。
left
一个任意的表达式,求值结果为一个以 null 结尾的字符串。
right
一个任意的表达式,求值结果为一个以 null 结尾的字符串。
描述
设置一个断言,判断 left 和 right 计算出的值相等。这与 KUNIT_EXPECT_STREQ()
相同,但当断言不满足时,会导致断言失败(请参阅 KUNIT_ASSERT_TRUE()
)。
-
KUNIT_ASSERT_STRNEQ¶
KUNIT_ASSERT_STRNEQ (test, left, right)
断言字符串 left 和 right 不相等。
参数
test
测试上下文对象。
left
一个任意的表达式,求值结果为一个以 null 结尾的字符串。
right
一个任意的表达式,求值结果为一个以 null 结尾的字符串。
描述
设置一个断言,判断 left 和 right 计算出的值不相等。这在语义上等同于 KUNIT_ASSERT_TRUE(test, strcmp((left), (right))). 有关更多信息,请参阅 KUNIT_ASSERT_TRUE()
。
-
KUNIT_ASSERT_MEMEQ¶
KUNIT_ASSERT_MEMEQ (test, left, right, size)
断言 left 和 right 的前 size 个字节相等。
参数
test
测试上下文对象。
left
一个任意的表达式,求值结果为指定的 size。
right
一个任意的表达式,求值结果为指定的 size。
size
比较的字节数。
描述
设置一个断言,判断 left 和 right 计算出的值相等。这在语义上等同于 KUNIT_ASSERT_TRUE(test, !memcmp((left), (right), (size))). 有关更多信息,请参阅 KUNIT_ASSERT_TRUE()
。
尽管此断言适用于任何内存块,但不建议用于比较更结构化的数据,例如结构体。建议此断言用于比较数据数组等。
-
KUNIT_ASSERT_MEMNEQ¶
KUNIT_ASSERT_MEMNEQ (test, left, right, size)
断言 left 和 right 的前 size 个字节不相等。
参数
test
测试上下文对象。
left
一个任意的表达式,求值结果为指定的 size。
right
一个任意的表达式,求值结果为指定的 size。
size
比较的字节数。
描述
设置一个断言,判断 left 和 right 计算出的值不相等。这在语义上等同于 KUNIT_ASSERT_TRUE(test, memcmp((left), (right), (size))). 有关更多信息,请参阅 KUNIT_ASSERT_TRUE()
。
尽管此断言适用于任何内存块,但不建议用于比较更结构化的数据,例如结构体。建议此断言用于比较数据数组等。
-
KUNIT_ASSERT_NULL¶
KUNIT_ASSERT_NULL (test, ptr)
断言指针 ptr 为空。
参数
test
测试上下文对象。
ptr
一个任意指针。
描述
设置一个断言,判断 ptr 计算出的值为空。这与 KUNIT_EXPECT_NULL()
相同,但当断言不满足时,会导致断言失败(请参阅 KUNIT_ASSERT_TRUE()
)。
-
KUNIT_ASSERT_NOT_NULL¶
KUNIT_ASSERT_NOT_NULL (test, ptr)
断言指针 ptr 不为空。
参数
test
测试上下文对象。
ptr
一个任意指针。
描述
设置一个断言,判断 ptr 计算出的值不为空。这与 KUNIT_EXPECT_NOT_NULL()
相同,但当断言不满足时,会导致断言失败(请参阅 KUNIT_ASSERT_TRUE()
)。
-
KUNIT_ASSERT_NOT_ERR_OR_NULL¶
KUNIT_ASSERT_NOT_ERR_OR_NULL (test, ptr)
断言 ptr 不为空且不为 err。
参数
test
测试上下文对象。
ptr
一个任意指针。
描述
设置一个断言,判断 ptr 计算出的值不为空且不是存储在指针中的 errno。这与 KUNIT_EXPECT_NOT_ERR_OR_NULL()
相同,但当断言不满足时,会导致断言失败(请参阅 KUNIT_ASSERT_TRUE()
)。
-
KUNIT_ARRAY_PARAM¶
KUNIT_ARRAY_PARAM (name, array, get_desc)
从数组定义测试参数生成器。
参数
name
测试参数生成器函数的前缀。
数组
测试参数数组。
get_desc
将参数转换为描述的函数;NULL 使用默认值
描述
定义函数 name_gen_params,它使用 array 生成参数。
-
KUNIT_ARRAY_PARAM_DESC¶
KUNIT_ARRAY_PARAM_DESC (name, array, desc_member)
从数组定义测试参数生成器。
参数
name
测试参数生成器函数的前缀。
数组
测试参数数组。
desc_member
数组元素中用作描述的结构成员
描述
定义函数 name_gen_params,它使用 array 生成参数。