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

发布于 2024-10-08 23:20:05 字数 386 浏览 3 评论 0原文

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

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

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

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

Today I found that one of my tests is using some code/library that segfaults.
I work in Linux environment in C++ and CppUnit.

Is there any feature of function in CppUnit to test against segfault and report it as failure for the specific test case?

In CppUnit I can even test against exceptions, but I think that what I am asking might be too much! The only thing I found is the section How do I print debug info at this page here.

I was thinking to run the CppUnit executable from a script in pyhon or perl and then check if the core is produced. Do you know some better way to achieve what I want?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

微暖i 2024-10-15 23:20:05

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

A seg fault will result in a non-zero exit status from your test (On Solaris I believe it's 139). Are you able to test this from whatever method is being used to call your unit test?

一杆小烟枪 2024-10-15 23:20:05

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

没有。段错误是操作系统级别的违规,您无法捕获它。即使您尝试(通过使用 signal() iirc),您也无法对被操作系统谋杀做任何事情。

您需要使用调试器单步执行测试程序。

"Is there any feature of function in CppUnit to test against segfault and report it as failure for the specific test case?"

Nope. Segfault is an OS level violation and you're not allowed to catch it. Even if you try (through use of signal() iirc) you can't do anything about being murdered by the OS.

You need to step through your test program with a debugger.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文