Tho*_* W. 5 c++ boost unit-testing mpi
我想用 boost::unit_test 为我的并行(基于 MPI)C++ 代码创建一些测试。我在使用测试框架方面有一些基本的经验。对我来说,在处理并行代码时,主要问题是将 MPI::Init 放在哪里,以便首先调用它。在我创建的测试套件中,没有 main 函数。此外,当某些断言在现有等级的子集上失败时,Boost::Test 是否正确存在(相对于 mpi)?
Boost Test 具有固定装置支持,允许您对每个测试用例、测试套件或全局执行设置/清理。听起来您应该将调用放在MPI::Init全局固定装置中。
struct MPIFixture {
MPIFixture() { MPI::Init(); }
~MPIFixture() { /* I bet there's a deinit you should call */ }
};
BOOST_GLOBAL_FIXTURE(MPIFixture);
Run Code Online (Sandbox Code Playgroud)
如果您在处理此问题时遇到困难,或者您正在使用提供自己功能的框架main,那么您可以#define BOOST_TEST_NO_MAIN在包含 Boost 标头之前进行操作。然后您可以调用boost::unit_test::unit_test_main自己来运行测试套件。
| 归档时间: |
|
| 查看次数: |
1052 次 |
| 最近记录: |