xref: /libCEED/tests/t404-qfunction.c (revision 28bfd0b742d5bb98b1c0887e682aa0983923c5c6)
1891038deSjeremylt /// @file
2891038deSjeremylt /// Test creation, setting, and taking data for QFunctionContext
3891038deSjeremylt /// \test Test creation, setting, and taking data for QFunctionContext
4891038deSjeremylt #include <ceed.h>
5891038deSjeremylt #include <math.h>
6891038deSjeremylt 
7891038deSjeremylt int main(int argc, char **argv) {
8891038deSjeremylt   Ceed ceed;
9891038deSjeremylt   CeedQFunctionContext ctx;
10891038deSjeremylt   CeedScalar ctxData[5] = {1, 2, 3, 4, 5}, *ctxDataCopy;
11891038deSjeremylt 
12891038deSjeremylt   CeedInit(argv[1], &ceed);
13891038deSjeremylt 
14891038deSjeremylt   CeedQFunctionContextCreate(ceed, &ctx);
15891038deSjeremylt   CeedQFunctionContextSetData(ctx, CEED_MEM_HOST, CEED_USE_POINTER,
16891038deSjeremylt                               sizeof(ctxData), &ctxData);
17891038deSjeremylt 
18891038deSjeremylt   CeedQFunctionContextGetData(ctx, CEED_MEM_HOST, &ctxDataCopy);
19891038deSjeremylt   ctxDataCopy[4] = 6;
20891038deSjeremylt   CeedQFunctionContextRestoreData(ctx, &ctxDataCopy);
21*28bfd0b7SJeremy L Thompson   if (ctxData[4] != 6)
22891038deSjeremylt     // LCOV_EXCL_START
23891038deSjeremylt     printf("error modifying data: %f != 6.0\n", ctxData[4]);
24891038deSjeremylt   // LCOV_EXCL_STOP
25891038deSjeremylt 
26891038deSjeremylt   CeedQFunctionContextTakeData(ctx, CEED_MEM_HOST, &ctxDataCopy);
27891038deSjeremylt   CeedQFunctionContextDestroy(&ctx);
28891038deSjeremylt   CeedDestroy(&ceed);
29891038deSjeremylt   return 0;
30891038deSjeremylt }
31