gpt4 book ai didi

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

转载 作者:可可西里 更新时间:2023-11-01 17:26:02 37 4
gpt4 key购买 nike

我正在并行化一个已存在的应用程序,该应用程序将 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 之前访问 argcargv 值吗?它们被修改为删除 googletest 特定参数,例如 --gtest_filter,这样应用程序就看不到它们。

我想你想做的只是使用下面的代码片段作为你的main:

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++ - 使用 gtest 对 MPI 程序进行单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16526664/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com