您是否听说过自动C代码生成器?如何自动调用C源代码中的所有函数
我必须做一种奇怪的API功能研究,其中至少包括每个函数执行的一次尝试。它可能会导致粉碎,分段错误 - 无论如何。我只需要注册每个函数调用。
,所以我就用
ctags -x --c-kinds=f *.c
我可以使用任何工具来生成代码调用每个人的来源功能的长列表(几百个)?非常感谢。
UPD:谢谢你所有的答案。
您是否听说过自动C代码生成器?如何自动调用C源代码中的所有函数
我必须做一种奇怪的API功能研究,其中至少包括每个函数执行的一次尝试。它可能会导致粉碎,分段错误 - 无论如何。我只需要注册每个函数调用。
,所以我就用
ctags -x --c-kinds=f *.c
我可以使用任何工具来生成代码调用每个人的来源功能的长列表(几百个)?非常感谢。
UPD:谢谢你所有的答案。
您也可以考虑自定义GCC编译器,例如与MELT扩展名(例如,将在一些定制编译期间生成测试)。然后,您甚至可以定义自己的#pragma
或__attribute__
以对这些函数进行参数化(启用它们的自动测试,为测试等提供默认参数)。
但是,我不确定这是单元测试的正确方法。有很多单元测试框架(但我对它们不是很熟悉)。
也许类似autoconf可以帮助你:as described here。特别检查AC_CHECK_FUNCS。 Autoconf创建小程序来测试注册函数的存在。
谢谢你,好主意,但你确定Autoconf真的试图调用函数,不仅检查小程序是否刚建好? –
这些函数不会有一些参数,你将如何生成它们?看起来你想要自动化测试,但是试图在没有真正创建测试的情况下进行测试。 –
也许你可以编写一些'awk'或Python脚本传送到'ctags'输出? –