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