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

前端之家收集整理的这篇文章主要介绍了c – 使用gtest对MPI程序进行单元测试前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在并行化一个已经存在的将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;
}

猜你在找的C&C++相关文章