xref: /libCEED/tests/t005-ceed.c (revision 7f565272b8651519e1f8332c5b9e73ffa0fc04e9)
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"))
16     // LCOV_EXCL_START
17     printf("Unexpected error message received: \"%s\"\n", err_msg);
18   // LCOV_EXCL_STOP
19 
20   // Set error handler to store error message
21   CeedSetErrorHandler(ceed, CeedErrorStore);
22 
23   // Generate error
24   CeedVector vec;
25   CeedScalar *array;
26   CeedVectorCreate(ceed, 10, &vec);
27   CeedVectorGetArray(vec, CEED_MEM_HOST, &array);
28   CeedVectorGetArray(vec, CEED_MEM_HOST, &array);
29 
30   // Check error message
31   CeedGetErrorMessage(ceed, &err_msg);
32   if (!err_msg || !strcmp(err_msg, "No error message stored"))
33     // LCOV_EXCL_START
34     printf("Unexpected error message received: \"%s\"\n", err_msg);
35   // LCOV_EXCL_STOP
36   CeedResetErrorMessage(ceed, &err_msg);
37 
38   // Check error message reset
39   CeedGetErrorMessage(ceed, &err_msg);
40   if (strcmp(err_msg, "No error message stored"))
41     // LCOV_EXCL_START
42     printf("Unexpected error message received: \"%s\"\n", err_msg);
43   // LCOV_EXCL_STOP
44 
45   // Cleanup
46   CeedVectorRestoreArray(vec, &array);
47   CeedVectorDestroy(&vec);
48   CeedDestroy(&ceed);
49   return 0;
50 }
51