
Hello, I have the following code: #define BOOST_TEST_DYN_LINK #define BOOST_TEST_MODULE mpi_functionality #include <boost/test/unit_test.hpp> #include "mpi.h" struct MPI_Functionality_Fixture { MPI_Functionality_Fixture() { m_argc = boost::unit_test::framework::master_test_suite().argc; m_argv = boost::unit_test::framework::master_test_suite().argv; } int m_argc; char** m_argv; }; BOOST_FIXTURE_TEST_SUITE( MPI_Functionality_TestSuite, MPI_Functionality_Fixture ) BOOST_AUTO_TEST_CASE( mpi_functionality_parenv_init ) { MPI_Init(&m_argc,&m_argv); } BOOST_AUTO_TEST_CASE( mpi_functionality_parenv_finalize ) { MPI_Finalize(); } BOOST_AUTO_TEST_SUITE_END() The code compiles fine, but I have the following problem when I try to run it. When I run as 'mpirun ./my_executable' or 'mpirun -np 3 ./my_executable' everything goes fine. On the other hand, when I run as ./my_executable I get the following error: unknown location(0): fatal error in "mpi_functionality_parenv_finalize": unrecognized signal Outside of Boost, it is perfectly possible to write a program which calls MPI_Init and MPI_Finalize and it does not have to be used with mpirun. I wonder if this (different) behavior of Boost test is normal. I did not find any remarks regarding Boost test and mpi in the tutorial. Best regards, Martin Vymazal