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