今天我发现我的一个测试是使用了一些段错误的代码/库。 我在C ++和CppUnit的Linux环境中工作。
CppUnit中是否有任何功能可以测试segfault并将其报告为特定测试用例的失败?
在CppUnit中我甚至可以测试异常,但我认为我所要求的可能太多了!我找到的唯一内容是如何在此页面here打印调试信息。
我正在考虑从pyhon或perl中的脚本运行CppUnit可执行文件,然后检查核心是否已生成。你知道一些更好的方法来实现我想要的吗?
答案 0 :(得分:1)
seg错误将导致测试的退出状态为非零(在Solaris上我相信它是139)。您是否可以通过用于调用单元测试的任何方法对此进行测试?
答案 1 :(得分:0)
“CppUnit中是否有任何功能来测试segfault并将其报告为特定测试用例的失败?”
不。 Segfault是违反操作系统级别的行为,您不能抓住它。即使你尝试(通过使用signal()iirc)你也无法做任何关于被操作系统谋杀的事情。
您需要使用调试器逐步完成测试程序。