1 /// @file 2 /// Test read access for QFunctionContext data 3 /// \test Test read access for QFunctionContext data 4 #include <ceed.h> 5 #include <math.h> 6 7 int main(int argc, char **argv) { 8 Ceed ceed; 9 CeedQFunctionContext ctx; 10 CeedScalar ctxData[5] = {1, 2, 3, 4, 5}, *ctxDataCopy; 11 12 CeedInit(argv[1], &ceed); 13 14 CeedQFunctionContextCreate(ceed, &ctx); 15 CeedQFunctionContextSetData(ctx, CEED_MEM_HOST, CEED_COPY_VALUES, sizeof(ctxData), &ctxData); 16 17 // Get data access 18 CeedQFunctionContextGetDataRead(ctx, CEED_MEM_HOST, &ctxDataCopy); 19 if (ctxDataCopy[4] != 5) 20 // LCOV_EXCL_START 21 printf("error reading data: %f != 5.0\n", ctxDataCopy[4]); 22 // LCOV_EXCL_STOP 23 CeedQFunctionContextRestoreDataRead(ctx, &ctxDataCopy); 24 25 // Check access protection - should error 26 CeedQFunctionContextGetDataRead(ctx, CEED_MEM_HOST, &ctxDataCopy); 27 CeedQFunctionContextGetData(ctx, CEED_MEM_HOST, &ctxDataCopy); 28 CeedQFunctionContextRestoreData(ctx, &ctxDataCopy); 29 CeedQFunctionContextRestoreDataRead(ctx, &ctxDataCopy); 30 31 CeedQFunctionContextDestroy(&ctx); 32 CeedDestroy(&ceed); 33 return 0; 34 } 35