我的项目使用CMake作为其构建系统,我希望它能够执行我的Boost.Test测试用例.
我怎样才能做到这一点?在Boost.Build中,我可以这样做:
import testing ;
use-project /my_lib : ../src ;
unit-test my_test
: my_test.cpp
/my_lib
boost_unit_test_framework
;
lib boost_unit_test_framework ;
Run Code Online (Sandbox Code Playgroud) 我的单元测试需要运行大量 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);
}
Run Code Online (Sandbox Code Playgroud)
然而,当我尝试这个时,似乎发生了一些我无法控制的非常讨厌的内存损坏。段错误最常见,但有时会改为:
*** stack smashing detected ***
Run Code Online (Sandbox Code Playgroud)
有没有人有一些经验可以分享他们可以分享的实现我预期结果的好方法?我相信每个人都会喜欢他们的测试快速运行!