gtest如何停止所有正在运行的线程

时间:2016-07-07 00:09:42

标签: c++ c++11 googletest

如果我有如下测试用例

TEST(one, test_one) {
    vector<thread> threads
    // ... initialize threads
}

在这些线程中某个断言失败的地方,如何停止所有线程并终止?因为看起来这个函数现在一直在执行..

1 个答案:

答案 0 :(得分:1)

  

如何停止所有线程并终止?

如果没有来自您所测试的类的交互,以及它实际涉及的线程,就无法完成。

如果你有一些正在测试的类,涉及运行多个线程,你应该在析构函数中有一些实现,以指示线程停止并加入它们。

虽然我可以考虑从预期的 assert() 声明中拯救death test的某些内容,但整个过程都被杀死了(因此无需担心)关于其他线程被终止)。