xref: /petsc/src/sys/tests/ex74.c (revision a1fd7ae3ce1a484b2c7fddb18ad0962aba6eb1a3)
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