在CppUnit下运行的测试产生的分段错误

时间:2010-12-22 17:23:29

标签: c++ unit-testing unix cppunit

今天我发现我的一个测试是使用了一些段错误的代码/库。 我在C ++和CppUnit的Linux环境中工作。

CppUnit中是否有任何功能可以测试segfault并将其报告为特定测试用例的失败?

在CppUnit中我甚至可以测试异常,但我认为我所要求的可能太多了!我找到的唯一内容是如何在此页面here打印调试信息。

我正在考虑从pyhon或perl中的脚本运行CppUnit可执行文件,然后检查核心是否已生成。你知道一些更好的方法来实现我想要的吗?

2 个答案:

答案 0 :(得分:1)

seg错误将导致测试的退出状态为非零(在Solaris上我相信它是139)。您是否可以通过用于调用单元测试的任何方法对此进行测试?

答案 1 :(得分:0)

“CppUnit中是否有任何功能来测试segfault并将其报告为特定测试用例的失败?”

不。 Segfault是违反操作系统级别的行为,您不能抓住它。即使你尝试(通过使用signal()iirc)你也无法做任何关于被操作系统谋杀的事情。

您需要使用调试器逐步完成测试程序。