c++ - 有没有办法在使用宏定义的 Boost 测试框架中忽略 SIGCHLD?

标签 c++ testing boost

我有这样一个问题:我的 C++ 代码需要启动然后终止子进程。一切正常,但是当我尝试使用 Boost.Test 为它编写测试时,测试失败了

unknown location(0): fatal error in "test_sync": child was killed; pid: 7787; uid: 1000; exit value: 9

这是因为 Boost 将杀死 child 视为失败。它可以通过使用 --catch_system_errors=no 命令行选项开始测试来解决,但我不喜欢这个解决方案,因为我想要的只是忽略 SIGCHLD。更多,我想在编译时不传递任何命令行选项。一个宏定义就可以了,但是

BOOST_TEST_IGNORE_SIGCHLD

不适合我。它只是没有效果。

我正在使用 boost-1.53​​.0。

最佳答案

John Zwinck 在评论中回答了我的问题:Comments here suggest BOOST_TEST_IGNORE_SIGCHLD must be defined during the compilation of the Boost test library itself

在应用程序编译期间似乎没有办法实现它。

关于c++ - 有没有办法在使用宏定义的 Boost 测试框架中忽略 SIGCHLD?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20145840/

相关文章:

python - 无法编译需要 C99 编译器 (AFAIU) 的 pyethash python 包。错误 - 无法打开包含文件 : 'alloca.h'

c++ - 带有 std::tuple 数组的 std::array 不完整类型错误

testing - Symfony2测试数据库生产环境

visual-studio - 以某种文档/报告格式导出 Visual Studio 测试结果?

c++ - 指向结构体指针的点运算符

c++ - 使用 C++ STL 迭代器而不是传统指针的正确方法是什么?

java - 是否有任何孤立的配置文件测试应用程序的技术?

c++ - 解析 json 后 boost 属性树无法检索记录

c++ - 如何 boost::bind 到 boost::math::pdf?

c++ - 高效的 boost 分配使用