2013-07-29 31 views
-1

您是否听说过自动C代码生成器?如何自动调用C源代码中的所有函数

我必须做一种奇怪的API功能研究,其中至少包括每个函数执行的一次尝试。它可能会导致粉碎,分段错误 - 无论如何。我只需要注册每个函数调用。

,所以我就用

ctags -x --c-kinds=f *.c 

我可以使用任何工具来生成代码调用每个人的来源功能的长列表(几百个)?非常感谢。

UPD:谢谢你所有的答案。

+2

这些函数不会有一些参数,你将如何生成它们?看起来你想要自动化测试,但是试图在没有真正创建测试的情况下进行测试。 –

+0

也许你可以编写一些'awk'或Python脚本传送到'ctags'输出? –

回答

1

您也可以考虑自定义GCC编译器,例如与MELT扩展名(例如,将在一些定制编译期间生成测试)。然后,您甚至可以定义自己的#pragma__attribute__以对这些函数进行参数化(启用它们的自动测试,为测试等提供默认参数)。

但是,我不确定这是单元测试的正确方法。有很多单元测试框架(但我对它们不是很熟悉)。

1

也许类似autoconf可以帮助你:as described here。特别检查AC_CHECK_FUNCS。 Autoconf创建小程序来测试注册函数的存在。

+0

谢谢你,好主意,但你确定Autoconf真的试图调用函数,不仅检查小程序是否刚建好? –

相关问题