我的任务是为现有项目编写单元测试(使用cunit和cmocka)(用C语言编写),并遇到以下问题。当我包装在测试文件中定义的函数时,只调用原始函数。另外,a不能更改测试文件的来源。 我读到的所有内容都没有达到第二个条件,但另一方面,我很难相信单元测试框架没有为这类问题做好准备。
那么可以将函数调用包装到在一个文件中定义和调用的函数吗?
我试图通过向cmake文件添加适当的链接器标志来包装它。
答案 0 :(得分:0)
如您所知,是否可以将函数调用包装到在一个文件中定义和调用的函数?
cmocka
利用链接器的--wrap
选项。 documentation of --wrap=symbol
告诉我们答案
你的问题是否:
- 涡卷=符号
使用符号的包装函数。任何未定义的符号引用都将是 解决了__wrap_symbol。对__real_symbol的任何未定义引用都将是 解决了象征。
对包含该文件的目标文件中的symbol
的任何引用
symbol
的定义不是未定义的引用,因此链接器将不
解决对__wrap_symbol
的引用。必须将定义编译成
链接中的一些其他目标文件用于包装要发生的引用。