xref: /libCEED/tests/t005-ceed.c (revision 0126412d32e96658dcd899fe3d8b989fdf201e32) !
1 /// @file
2 /// Test error storage for a CEED object
3 /// \test Test error storage for a CEED object
4 #include <ceed.h>
5 #include <string.h>
6 
7 int main(int argc, char **argv) {
8   Ceed        ceed;
9   CeedVector  vec;
10   CeedScalar *array;
11   const char *err_msg = NULL;
12 
13   CeedInit(argv[1], &ceed);
14 
15   // Check for standard message with default handler
16   CeedGetErrorMessage(ceed, &err_msg);
17   if (strcmp(err_msg, "No error message stored")) printf("Unexpected error message received: \"%s\"\n", err_msg);
18 
19   // Set error handler to store error message
20   CeedSetErrorHandler(ceed, CeedErrorStore);
21 
22   // Generate error
23   CeedVectorCreate(ceed, 10, &vec);
24   CeedVectorGetArray(vec, CEED_MEM_HOST, &array);
25   CeedVectorGetArray(vec, CEED_MEM_HOST, &array);
26 
27   // Check error message
28   CeedGetErrorMessage(ceed, &err_msg);
29   if (!err_msg || !strcmp(err_msg, "No error message stored\n")) printf("Unexpected error message received: \"%s\"\n", err_msg);
30   CeedResetErrorMessage(ceed, &err_msg);
31 
32   // Check error message reset
33   CeedGetErrorMessage(ceed, &err_msg);
34   if (strcmp(err_msg, "No error message stored")) printf("Unexpected error message received: \"%s\"\n", err_msg);
35 
36   // Cleanup
37   CeedVectorRestoreArray(vec, &array);
38   CeedVectorDestroy(&vec);
39   CeedDestroy(&ceed);
40   return 0;
41 }
42