您认为基于 valgrind 的工具套件运行一组自动测试有意义吗?您听说过或看到过这样的设置吗?这种设置可以执行哪些自动(不受人类直觉影响)操作?
最佳答案
如果您在单元测试或最终构建测试中检查内存问题/错误代码,这将很有意义。可能有两种方法:
- 编写一个测试工具,通过其库使用 valgrind 的 API,几乎创建一个自定义前端来替换 valgrind 可执行文件(看起来很头疼)
- Valgrind 还可以为 memcheck 输出 XML(--xml=yes 选项)
- 使用Expect http://en.wikipedia.org/wiki/Expect自动执行命令行 valgrind 操作并检查输出
- 编写运行 valgrind 和 grep 输出的 shell 脚本
- 也许考虑将此功能添加到类似 DejaGNU 的东西中,它使用 expect 和 tcl
也许这些工具可以自动在您的跟踪器中创建错误项(尽管它可能很快就会填满)。
我自己没有看到任何东西,但作为 valgrind 用户,它会很方便。如果您创造了一些很酷的东西,也许可以将其作为开源项目启动!
编辑 经过一番谷歌搜索后,我找到了 http://www.redhat.com/f/summitfiles/presentation/June2/Developer%20Tools/Cox,Malcom_Automated%20Testing.pdf
这似乎涵盖了我上面建议的使用 DejaGNU 和 Valgrind 的自动化测试
祝你好运!
关于unit-testing - Valgrind 自动测试——它们在某处使用过吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/912976/