如何在升压测试中取消"fatal error"检测
How to cancel "fatal error" detection in BOOST TEST
我得到一个错误:unknown location(0): fatal error in "suite_1_test_1": child has exited; pid: 5817; uid: 0; exit value: 255
在suite_1_test_1
里面,我运行一个程序A
和execvp()
(在fork()
之后),它可能会退出,错误代码不是0
。这个错误代码表明程序A
发生了什么。
问题是,如果我得到这个fatal error
,我不能处理exit()
的值,BOOST TEST
立即得到。
我能把它关掉一会儿吗?
谢谢
嗯,这是可能的:
boost::unit_test用例失败,因为子进程退出时带有非零
来做#define BOOST_TEST_IGNORE_NON_ZERO_CHILD_CODE
之前#define BOOST_TEST_MODULE aot_test_module
在main()
当使用共享库时,使用命令行选项--catch_system_errors=no
或export BOOST_TEST_CATCH_SYSTEM_ERRORS=“no”
运行
似乎boost寄存器信号处理程序或其他东西,仍然从分叉(和覆盖)进程捕获错误。您将很难将测试框架从子进程中"解挂钩"。
但是,单元测试框架很少与子进程的生成一起使用,所以我不会在Boost.Test中使用fork和exec*。将这些调用从您正在测试的单元中剔除。毕竟,流程不是一个单独的单元,它更像是一个完整的组件。我猜您不会有很多这样的子流程,所以用另一个框架或一个简单的脚本测试这些流程的协作应该不会造成太大的伤害。据我所知,execvp()取代了您的测试程序。因此提高。测试不再运行。它只在失败的情况下返回。我不会在Boost.Test的上下文中使用它。
相关文章:
- 挂起和取消挂起一个文件DLL
- 如何取消对nullptr的屏蔽,返回正确的对象
- C++取消引用指针.为什么会发生变化
- OpenMP卸载说'fatal error: could not find accel/nvptx-none/mkoffload'
- 使用取消引用的指针的多态性会产生意外的结果.为什么?
- 取消引用运算符不能重载
- 在他自己的方法中,有可能将一个对象取消引用到另一个对象吗
- 如何在Qt中取消捕获字符串
- 如何使用 TStyleManager::UnRegisterStyle() 取消注册样式
- GLEW/GLUT:调用init并创建一个窗口后,取消初始化并重新初始化?
- C++ 关于指针取消引用的技术问题
- 没有取消引用/解包对象的标准方法?
- 列表 iter 不取消引用 使用列表进行插入排序
- C++宏定义和取消定义
- 在这个函数中是有缺陷的,因为取消引用 null 是无效的,所以我想更改代码
- 已解决 - C++ 的崇高文本中的"fatal error: opencv: no such file or directory"
- 取消引用结束指针到数组类型的一个
- 取消引用向量时出现问题
- 提升 asio 并发计时器取消问题与链
- 如何在升压测试中取消"fatal error"检测