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