对具有大量宏的程序进行单元测试

Chr*_*eng 7 c refactoring unit-testing

最近,我需要将单元测试添加到一个遗留程序中.

但在其中,有很多宏,比如

#ifdef CONFIG_XXX
do xxx
#endif

#ifdef CONFIG_YYY
do yyy
#endif
Run Code Online (Sandbox Code Playgroud)

目前,通用程序路径由单元测试覆盖.所以,我想添加测试来覆盖内部宏部分(不同的程序路径).

似乎我需要每次都用某些宏编译和运行我的程序,如何设计宏的组成来覆盖程序路径并减少编译时间真的不容易.

因此,我计划将所有与硬件相关的代码移动到arch文件夹,现在,宏已从c文件移到makefile,但仍需要每次使用某些宏进行编译才能使UT工作.

有没有人有过这方面的经验?

感谢您的意见.

小智 2

我认为你可以使用 gcc -D 生成许多版本的二进制程序。使用脚本编译并运行它们来执行此操作:)