可以升级单元测试是多线程的吗?

时间:2014-10-21 13:34:54

标签: c++ multithreading unit-testing boost

我的单元测试需要运行很多BOOST_CHECK_CLOSE调用,这需要很长时间(据我所知,在一个线程上)。我希望能够沿着这些方向做点什么:

#pragma omp parallel for num_threads(8)
for (int i=0; i<ARRAY_SIZE; i++) {
    BOOST_CHECK_CLOSE(array1[i], array2[i], tolerance);
}

然而,当我尝试这个时,一些非常讨厌的内存腐败似乎发生了。最常见的是段落错误,但有时却反而是这样:

*** stack smashing detected ***

有没有人有一些实现我想达到的预期结果的好方法的经验?我相信每个人都会欣赏他们的测试快速运行!

2 个答案:

答案 0 :(得分:2)

答案 1 :(得分:0)

解决方法:用一些本地逻辑替换你的boost调用,收集所有失败并在最后报告。

因为你担心性能,所以在这样一个紧凑的循环中调用BOOST_CHECK机器可能是一个次优的想法。