1

有没有人在嵌入式设备中使用check作为单元测试框架,这也需要交叉编译?在嵌入式设备中使用检查测试单元框架?

这是一个好主意,还是应该使用别的东西(例如embunit或类似的东西)?

如果是这样,我应该如何编写Makefile.ams和configure.ac?我没有使用autotools开始,所以所有这些交叉编译的东西肯定没有帮助...

我可以简单地跳过所有的实际配置检查,因为我只在一个或两个环境编译,但我需要编译检查目标?我无法从说明中了解如何将实际框架链接到我的测试代码。

什么是我需要的最小文件?这些例子可以完成所有的配置工作,但我无法弄清楚我可以省掉什么。

回答

1

据我所见,“check”使用fork()系统调用。如果您不在嵌入式目标上使用基于UNIX的操作系统,则会遇到问题。在第2.1章的check manual page中,您可以找到其他单元测试框架的完美概述。大多数框架都依赖于某些操作系统调用或某些标准库函数,这些函数可能不会出现在嵌入式目标上。

我发现宏表达式单元测试框架MAESTRA在嵌入式平台上非常有用。几年前在embedded.com上有一篇有趣的文章:Doing C code unit testing on a shoestring

但是,如果您正在处理大量第三方代码或现有代码库,MAESTRA可能不是最佳选择,因为它强制执行代码检测工作的特殊编码标准。这可能与您公司自己的编码标准相冲突。