【问题标题】:Can Boost unit testing be multithreaded?Boost 单元测试可以是多线程的吗?
【发布时间】:2014-12-16 18:11:08
【问题描述】:

我的单元测试需要运行大量的 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 ***

有没有人可以分享一些实现我预期结果的好方法的经验?我相信每个人都会喜欢让他们的测试快速运行!

【问题讨论】:

    标签: c++ multithreading unit-testing boost


    【解决方案1】:

    【讨论】:

      【解决方案2】:

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

      由于您关心性能,因此在如此紧密的循环中调用 BOOST_CHECK 机制可能不是最理想的想法。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-09-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-07-29
        相关资源
        最近更新 更多