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