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

c – 使用gtest对MPI程序进行单元测试

发布时间:2020-12-16 04:52:57 所属栏目:百科 来源:网络整理
导读:我正在并行化一个已经存在的将gTest与MPI一起使用的应用程序.在MPI程序中,首先要做的是通过调用来初始化环境 MPI_Init( int *argc,char ***argv ) 在MPI程序结束时,根进程也应该调用MPI_Finalize.如何使用Google Test为这样的应用程序编写单元测试? 特别是,
我正在并行化一个已经存在的将gTest与MPI一起使用的应用程序.在MPI程序中,首先要做的是通过调用来初始化环境
MPI_Init( int *argc,char ***argv )

在MPI程序结束时,根进程也应该调用MPI_Finalize.如何使用Google Test为这样的应用程序编写单元测试?

特别是,如何在gTest修改它们之前从测试中访问argc和argv.

现在我正在做:

int argc = 0;
char** argv = NULL;
boost::mpi::environment env(argc,argv);

TEST(component_test,test_name) {
  // stuff using mpi
}

并且感觉不对.

解决方法

您确定要在googletest之前访问argc和argv值吗?修改它们以删除googletest特定参数,例如–gtest_filter,以便应用程序看不到它们.

我想你想要做的只是使用以下代码片段作为主要内容:

int main(int argc,char* argv[]) {
    int result = 0;

    ::testing::InitGoogleTest(&argc,argv);
    MPI_Init(&argc,&argv);
    result = RUN_ALL_TESTS();
    MPI_Finalize();

    return result;
}

(编辑:李大同)

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

    推荐文章
      热点阅读