测试 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。 (KUNIT_PARAM_DESC_SIZE 的大小)可以选择将字符串写入 desc 中来描述参数。
-
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()
,不同之处在于它在 init 阶段编译套件列表。
此宏还会在它进行的数组和套件声明中添加 _probe 后缀; 以便 modpost 抑制有关引用以此方式命名的符号的 init 数据的警告。
另外,不要使用 __initdata 标记套件或测试用例结构,因为它们将在 init 阶段之后与 debugfs 一起使用。
注意
这些 init 测试在启动后无法运行,因此不会为这些测试生成“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, fmt, ...)
将 test 标记为跳过
参数
test
测试上下文对象。
fmt
一种
printk()
风格的格式字符串。...
可变参数
描述
将测试标记为跳过。 fmt 作为测试状态注释给出输出,通常是测试被跳过的原因。
在调用 kunit_mark_skipped()
后,测试执行继续。
-
kunit_skip¶
kunit_skip (test, fmt, ...)
将 test 标记为跳过
参数
test
测试上下文对象。
fmt
一种
printk()
风格的格式字符串。...
可变参数
描述
跳过测试。 fmt 作为测试状态注释给出输出,通常是测试被跳过的原因。
在调用 kunit_skip()
后,测试执行停止。
-
kunit_info¶
kunit_info (test, fmt, ...)
打印与 test 关联的 INFO 级别消息。
参数
test
测试上下文对象。
fmt
一种
printk()
风格的格式字符串。...
可变参数
描述
打印与正在运行的测试套件关联的信息级别消息。 接受可变数量的格式参数,就像 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
计算结果为指定大小的任意表达式。
right
计算结果为指定大小的任意表达式。
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
计算结果为指定大小的任意表达式。
right
计算结果为指定大小的任意表达式。
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
计算结果为指定大小的任意表达式。
right
计算结果为指定大小的任意表达式。
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
计算结果为指定大小的任意表达式。
right
计算结果为指定大小的任意表达式。
size
比较的字节数。
描述
设置一个断言,即 left 和 right 的计算结果不相等。 这在语义上等同于 KUNIT_ASSERT_TRUE(test, memcmp((left), (right), (size)))。 参阅 KUNIT_ASSERT_TRUE()
获取更多信息。
虽然此断言适用于任何内存块,但不建议用于比较更结构化的数据,例如结构体。 建议将此断言用于比较例如数据数组。
-
KUNIT_ASSERT_NULL¶
KUNIT_ASSERT_NULL (test, ptr)
断言指针 ptr 为 null。
参数
test
测试上下文对象。
ptr
一个任意指针。
描述
设置一个断言,即 ptr 的计算结果为 null。 这与 KUNIT_EXPECT_NULL()
相同,只是当不满足断言时,它会导致断言失败(请参阅 KUNIT_ASSERT_TRUE()
)。
-
KUNIT_ASSERT_NOT_NULL¶
KUNIT_ASSERT_NOT_NULL (test, ptr)
断言指针 ptr 不为 null。
参数
test
测试上下文对象。
ptr
一个任意指针。
描述
设置一个断言,即 ptr 的计算结果不为 null。 这与 KUNIT_EXPECT_NOT_NULL()
相同,只是当不满足断言时,它会导致断言失败(请参阅 KUNIT_ASSERT_TRUE()
)。
-
KUNIT_ASSERT_NOT_ERR_OR_NULL¶
KUNIT_ASSERT_NOT_ERR_OR_NULL (test, ptr)
断言 ptr 不为 null 且不为 err。
参数
test
测试上下文对象。
ptr
一个任意指针。
描述
设置一个断言,即 ptr 的计算结果不为 null 且不是存储在指针中的 errno。 这与 KUNIT_EXPECT_NOT_ERR_OR_NULL()
相同,只是当不满足断言时,它会导致断言失败(请参阅 KUNIT_ASSERT_TRUE()
)。
-
KUNIT_ARRAY_PARAM¶
KUNIT_ARRAY_PARAM (name, array, get_desc)
从数组定义测试参数生成器。
参数
name
测试参数生成器函数的前缀。
array
测试参数数组。
get_desc
将参数转换为描述的函数; 如果使用默认值,则为 NULL
描述
定义使用 array 生成参数的函数 name_gen_params。
-
KUNIT_ARRAY_PARAM_DESC¶
KUNIT_ARRAY_PARAM_DESC (name, array, desc_member)
从数组定义测试参数生成器。
参数
name
测试参数生成器函数的前缀。
array
测试参数数组。
desc_member
要用作描述的数组元素的结构体成员
描述
定义使用 array 生成参数的函数 name_gen_params。