測試 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)中的測試夾具測試類的概念。

請注意,即使 initsuite_init 失敗,exitsuite_exit 也會執行:確保它們可以處理可能導致的任何不一致狀態。

每個 struct kunit_case 必須與 kunit_suite 相關聯,KUnit 才能執行它。

struct kunit

表示測試的執行例項。

定義:

struct kunit {
    void *priv;
};

成員

priv

供使用者儲存任意資料。 通常用於傳遞在 init 函式中建立的資料(參見 struct kunit_suite)。

描述

用於儲存有關測試執行的當前上下文的資訊。 大部分資料都是私有的,應該只能透過公共函式間接訪問; 一個例外是 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 分配。

void *kunit_kmalloc(struct kunit *test, size_t size, gfp_t gfp)

類似於 kmalloc(),只是分配是測試託管的

引數

struct kunit *test

測試上下文物件。

size_t size

所需記憶體的位元組大小。

gfp_t gfp

傳遞給底層 kmalloc() 的標誌。

描述

有關更多資訊,請參閱 kmalloc()kunit_kmalloc_array()

請注意,無論傳入的 gfp 如何,一些內部上下文資料也使用 GFP_KERNEL 分配。

void kunit_kfree(struct kunit *test, const void *ptr)

類似於 kfree,只是用於 KUnit 管理的分配。

引數

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

void kunit_kfree_const(struct kunit *test, const void *x)

有條件地釋放測試託管的記憶體

引數

struct kunit *test

測試上下文物件。

const void *x

指向記憶體的指標

描述

僅當 x 不在 .rodata 部分中時才呼叫 kunit_kfree()。 有關更多資訊,請參閱 kunit_kstrdup_const()

char *kunit_kstrdup(struct kunit *test, const char *str, gfp_t gfp)

將字串複製到測試託管的分配中。

引數

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 級別訊息。

引數

test

測試上下文物件。

fmt

一種 printk() 風格的格式字串。

...

可變引數

描述

列印警告級別訊息。

kunit_err

kunit_err (test, fmt, ...)

列印與 test 關聯的 ERROR 級別訊息。

引數

test

測試上下文物件。

fmt

一種 printk() 風格的格式字串。

...

可變引數

描述

列印錯誤級別訊息。

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)

設定一個期望,即 leftright 相等。

引數

test

測試上下文物件。

left

一個計算結果為原始 C 型別的任意表達式。

right

一個計算結果為原始 C 型別的任意表達式。

描述

設定一個期望,即 leftright 的計算結果的值相等。 這在語義上等效於 KUNIT_EXPECT_TRUE(test, (left) == (right))。 有關更多資訊,請參閱 KUNIT_EXPECT_TRUE()

KUNIT_EXPECT_PTR_EQ

KUNIT_EXPECT_PTR_EQ (test, left, right)

期望指標 leftright 相等。

引數

test

測試上下文物件。

left

一個計算結果為指標的任意表達式。

right

一個計算結果為指標的任意表達式。

描述

設定一個期望,即 leftright 的計算結果的值相等。 這在語義上等效於 KUNIT_EXPECT_TRUE(test, (left) == (right))。 有關更多資訊,請參閱 KUNIT_EXPECT_TRUE()

KUNIT_EXPECT_NE

KUNIT_EXPECT_NE (test, left, right)

一個期望,即 leftright 不相等。

引數

test

測試上下文物件。

left

一個計算結果為原始 C 型別的任意表達式。

right

一個計算結果為原始 C 型別的任意表達式。

描述

設定一個期望,即 leftright 的計算結果的值不相等。 這在語義上等效於 KUNIT_EXPECT_TRUE(test, (left) != (right))。 有關更多資訊,請參閱 KUNIT_EXPECT_TRUE()

KUNIT_EXPECT_PTR_NE

KUNIT_EXPECT_PTR_NE (test, left, right)

期望指標 leftright 不相等。

引數

test

測試上下文物件。

left

一個計算結果為指標的任意表達式。

right

一個計算結果為指標的任意表達式。

描述

設定一個期望,即 leftright 的計算結果的值不相等。 這在語義上等效於 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)

期望字串 leftright 相等。

引數

test

測試上下文物件。

left

一個計算結果為以 null 結尾的字串的任意表達式。

right

一個計算結果為以 null 結尾的字串的任意表達式。

描述

設定一個期望,即 leftright 的計算結果相等。這在語義上等同於 KUNIT_EXPECT_TRUE(test, !strcmp((left), (right)))。 參閱 KUNIT_EXPECT_TRUE() 獲取更多資訊。

KUNIT_EXPECT_STRNEQ

KUNIT_EXPECT_STRNEQ (test, left, right)

期望字串 leftright 不相等。

引數

test

測試上下文物件。

left

一個計算結果為以 null 結尾的字串的任意表達式。

right

一個計算結果為以 null 結尾的字串的任意表達式。

描述

設定一個期望,即 leftright 的計算結果不相等。這在語義上等同於 KUNIT_EXPECT_TRUE(test, strcmp((left), (right)))。 參閱 KUNIT_EXPECT_TRUE() 獲取更多資訊。

KUNIT_EXPECT_MEMEQ

KUNIT_EXPECT_MEMEQ (test, left, right, size)

期望 leftright 的前 size 個位元組相等。

引數

test

測試上下文物件。

left

計算結果為指定大小的任意表達式。

right

計算結果為指定大小的任意表達式。

size

比較的位元組數。

描述

設定一個期望,即 leftright 的計算結果相等。這在語義上等同於 KUNIT_EXPECT_TRUE(test, !memcmp((left), (right), (size)))。 參閱 KUNIT_EXPECT_TRUE() 獲取更多資訊。

雖然此期望適用於任何記憶體塊,但不建議用於比較更結構化的資料,例如結構體。 建議將此期望用於比較例如資料陣列。

KUNIT_EXPECT_MEMNEQ

KUNIT_EXPECT_MEMNEQ (test, left, right, size)

期望 leftright 的前 size 個位元組不相等。

引數

test

測試上下文物件。

left

計算結果為指定大小的任意表達式。

right

計算結果為指定大小的任意表達式。

size

比較的位元組數。

描述

設定一個期望,即 leftright 的計算結果不相等。這在語義上等同於 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)

設定一個斷言,即 leftright 相等。

引數

test

測試上下文物件。

left

一個計算結果為原始 C 型別的任意表達式。

right

一個計算結果為原始 C 型別的任意表達式。

描述

設定一個斷言,即 leftright 的計算結果相等。 這與 KUNIT_EXPECT_EQ() 相同,只是當不滿足斷言時,它會導致斷言失敗(請參閱 KUNIT_ASSERT_TRUE())。

KUNIT_ASSERT_PTR_EQ

KUNIT_ASSERT_PTR_EQ (test, left, right)

斷言指標 leftright 相等。

引數

test

測試上下文物件。

left

一個計算結果為指標的任意表達式。

right

一個計算結果為指標的任意表達式。

描述

設定一個斷言,即 leftright 的計算結果相等。 這與 KUNIT_EXPECT_EQ() 相同,只是當不滿足斷言時,它會導致斷言失敗(請參閱 KUNIT_ASSERT_TRUE())。

KUNIT_ASSERT_NE

KUNIT_ASSERT_NE (test, left, right)

一個斷言,即 leftright 不相等。

引數

test

測試上下文物件。

left

一個計算結果為原始 C 型別的任意表達式。

right

一個計算結果為原始 C 型別的任意表達式。

描述

設定一個斷言,即 leftright 的計算結果不相等。 這與 KUNIT_EXPECT_NE() 相同,只是當不滿足斷言時,它會導致斷言失敗(請參閱 KUNIT_ASSERT_TRUE())。

KUNIT_ASSERT_PTR_NE

KUNIT_ASSERT_PTR_NE (test, left, right)

斷言指標 leftright 不相等。 KUNIT_ASSERT_PTR_EQ() - 斷言指標 leftright 相等。

引數

test

測試上下文物件。

left

一個計算結果為指標的任意表達式。

right

一個計算結果為指標的任意表達式。

描述

設定一個斷言,即 leftright 的計算結果不相等。 這與 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)

一個斷言,即字串 leftright 相等。

引數

test

測試上下文物件。

left

一個計算結果為以 null 結尾的字串的任意表達式。

right

一個計算結果為以 null 結尾的字串的任意表達式。

描述

設定一個斷言,即 leftright 的計算結果相等。 這與 KUNIT_EXPECT_STREQ() 相同,只是當不滿足斷言時,它會導致斷言失敗(請參閱 KUNIT_ASSERT_TRUE())。

KUNIT_ASSERT_STRNEQ

KUNIT_ASSERT_STRNEQ (test, left, right)

一個斷言,即字串 leftright 不相等。

引數

test

測試上下文物件。

left

一個計算結果為以 null 結尾的字串的任意表達式。

right

一個計算結果為以 null 結尾的字串的任意表達式。

描述

設定一個斷言,即 leftright 的計算結果不相等。 這在語義上等同於 KUNIT_ASSERT_TRUE(test, strcmp((left), (right)))。 參閱 KUNIT_ASSERT_TRUE() 獲取更多資訊。

KUNIT_ASSERT_MEMEQ

KUNIT_ASSERT_MEMEQ (test, left, right, size)

斷言 leftright 的前 size 個位元組相等。

引數

test

測試上下文物件。

left

計算結果為指定大小的任意表達式。

right

計算結果為指定大小的任意表達式。

size

比較的位元組數。

描述

設定一個斷言,即 leftright 的計算結果相等。 這在語義上等同於 KUNIT_ASSERT_TRUE(test, !memcmp((left), (right), (size)))。 參閱 KUNIT_ASSERT_TRUE() 獲取更多資訊。

雖然此斷言適用於任何記憶體塊,但不建議用於比較更結構化的資料,例如結構體。 建議將此斷言用於比較例如資料陣列。

KUNIT_ASSERT_MEMNEQ

KUNIT_ASSERT_MEMNEQ (test, left, right, size)

斷言 leftright 的前 size 個位元組不相等。

引數

test

測試上下文物件。

left

計算結果為指定大小的任意表達式。

right

計算結果為指定大小的任意表達式。

size

比較的位元組數。

描述

設定一個斷言,即 leftright 的計算結果不相等。 這在語義上等同於 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