加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – 对并行代码使用Boost :: Test

发布时间:2020-12-16 07:29:59 所属栏目:百科 来源:网络整理
导读:我想用boost :: unit_test为我的并行(基于mpi的)C代码创建一些测试.我有一些使用测试框架的基本经验.对我来说,当涉及并行代码时,主要问题是放置MPI :: Init的位置,以便首先调用它.在我创建的测试套件中,没有主要功能.此外,当某些断言在现有排名的子集上失败
我想用boost :: unit_test为我的并行(基于mpi的)C代码创建一些测试.我有一些使用测试框架的基本经验.对我来说,当涉及并行代码时,主要问题是放置MPI :: Init的位置,以便首先调用它.在我创建的测试套件中,没有主要功能.此外,当某些断言在现有排名的子集上失败时,Boost :: Test是否存在正确(相对于mpi)?

解决方法

Boost Test具有 fixture support,允许您根据测试用例,测试套件或全局执行设置/清理.听起来你应该把调用MPI :: Init放在全局夹具中.

struct MPIFixture {
    MPIFixture() { MPI::Init(); }
    ~MPIFixture() { /* I bet there's a deinit you should call */ }
};

BOOST_GLOBAL_FIXTURE(MPIFixture);

如果您在使用它时遇到问题,或者您正在提供自己的main函数的框架中工作,那么您可以在包含Boost标头之前#define BOOST_TEST_NO_MAIN.然后你可以自己调用boost :: unit_test :: unit_test_main来运行你的测试套件.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读