1*a1fd7ae3SBarry Smith static char help[] = "Check MPI error strings. Crashes with known error with MPICH.\n"; 2*a1fd7ae3SBarry Smith 3*a1fd7ae3SBarry Smith #include <petscsys.h> 4*a1fd7ae3SBarry Smith 5*a1fd7ae3SBarry Smith int main(int argc, char **argv) 6*a1fd7ae3SBarry Smith { 7*a1fd7ae3SBarry Smith PetscFunctionBeginUser; 8*a1fd7ae3SBarry Smith PetscCall(PetscInitialize(&argc, &argv, (char *)0, help)); 9*a1fd7ae3SBarry Smith 10*a1fd7ae3SBarry Smith for (PetscMPIInt err = 1; err <= MPI_ERR_LASTCODE; err++) { 11*a1fd7ae3SBarry Smith PetscMPIInt len; 12*a1fd7ae3SBarry Smith char errorstring[MPI_MAX_ERROR_STRING]; 13*a1fd7ae3SBarry Smith 14*a1fd7ae3SBarry Smith MPI_Error_string(err, (char *)errorstring, &len); 15*a1fd7ae3SBarry Smith PetscCheck(len < MPI_MAX_ERROR_STRING, PETSC_COMM_WORLD, PETSC_ERR_LIB, "Error excessive string length from MPI_Error_string()"); 16*a1fd7ae3SBarry Smith // PetscCall(PetscPrintf(PETSC_COMM_WORLD, "Error code %d length %d string %s\n", err, len, errorstring)); 17*a1fd7ae3SBarry Smith } 18*a1fd7ae3SBarry Smith 19*a1fd7ae3SBarry Smith PetscCall(PetscFinalize()); 20*a1fd7ae3SBarry Smith return 0; 21*a1fd7ae3SBarry Smith } 22*a1fd7ae3SBarry Smith 23*a1fd7ae3SBarry Smith /*TEST 24*a1fd7ae3SBarry Smith 25*a1fd7ae3SBarry Smith test: 26*a1fd7ae3SBarry Smith requires: defined(PETSC_HAVE_OPENMPI) 27*a1fd7ae3SBarry Smith 28*a1fd7ae3SBarry Smith TEST*/ 29