gpt4 book ai didi

Cmocka:检查作为参数传递的结构

转载 作者:太空宇宙 更新时间:2023-11-04 02:34:30 24 4
gpt4 key购买 nike

假设我声明了一个名为 foo 的 C 结构,它有一个名为 bar 的 int 字段和一个名为 baz 的 char *。

我如何使用 Cmocka expect_check_expected 宏来检查传递的结构是否正确并且两个字段都具有预期值?如果文档中有示例,我错过了。


[更新] 也许我可以用expect_check() ?但是我找不到例子:-(

最佳答案

使用expect_memory(...)check_expected(...):

示例:

我假设您有一个正在测试的函数 fut,它调用一个子函数 subfunc。你的结构看起来像这样:

typedef struct foo_s {
int bar;
int baz;
} foo;

您的试驾功能可能如下所示:

void test(void **state) {
foo myfoo = {
.bar = 42,
.baz = 13,
};
expect_memory(subfunc, param, &myfoo, sizeof(foo));

fut();
}

子函数看起来像这样:

void subfunc(foo *param){
check_expected(param);
}

关于Cmocka:检查作为参数传递的结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39286206/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com