临时启用和禁用cmocka中的功能包装的正确方法?

satur9nine

我正在使用cmocka库来测试一些嵌入式C代码。根据文档,我使用__wrap_前缀模拟函数,以便隔离单元测试。但是,一旦执行此操作,所有对该函数的调用将永远转到包装的函数中。在某些情况下如何重新启用实际功能,以便可以对其进行测试或允许其他功能使用它?在我看来,唯一的方法是使用全局字段作为开关来调用真实函数,如下所示:

int __wrap_my_function(void) {
    if (g_disable_wrap_my_function) {
        return __real_my_function();
    }

    // ... do mock stuff
}

那是正确的方法吗?

satur9nine

我最终按照我在问题中的建议去做。我使用了一个全局变量,该变量在包装函数中检出以在运行时显示并禁用模拟。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章