xref: /libCEED/tests/t005-ceed.c (revision 2b730f8b5a9c809740a0b3b302db43a719c636b1)
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 
10   CeedInit(argv[1], &ceed);
11 
12   // Check for standard message with default handler
13   const char *err_msg = NULL;
14   CeedGetErrorMessage(ceed, &err_msg);
15   if (strcmp(err_msg, "No error message stored")) printf("Unexpected error message received: \"%s\"\n", err_msg);
16 
17   // Set error handler to store error message
18   CeedSetErrorHandler(ceed, CeedErrorStore);
19 
20   // Generate error
21   CeedVector  vec;
22   CeedScalar *array;
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