0

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

CppUnit 中是否有任何功能特性可以针对段错误进行测试并将其报告为特定测试用例的失败?

在 CppUnit 中,我什至可以针对异常进行测试,但我认为我的要求可能太多了!我发现的唯一内容是如何在此页面上打印调试信息部分

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

4

2 回答 2

1

段错误将导致您的测试出现非零退出状态(在 Solaris 上,我相信它是 139)。您是否能够通过用于调用单元测试的任何方法对其进行测试?

于 2010-12-22T18:03:59.247 回答
0

“CppUnit 中是否有任何功能可以针对段错误进行测试并将其报告为特定测试用例的失败?”

没有。Segfault 是一种操作系统级别的违规行为,您不能捕获它。即使您尝试(通过使用 signal() iirc),对于被操作系统谋杀,您也无能为力。

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

于 2010-12-22T17:27:37.817 回答