1 /// @file
2 /// Test getting and restoring work vectors
3 /// \test Test getting and restoring work vectors
4
5 #include <ceed.h>
6 #include <ceed/backend.h>
7 #include <stdio.h>
8
main(int argc,char ** argv)9 int main(int argc, char **argv) {
10 Ceed ceed;
11
12 CeedInit(argv[1], &ceed);
13
14 // Check for getting the same work vector back
15 {
16 CeedVector x, y;
17
18 CeedGetWorkVector(ceed, 20, &x);
19 // Do not do this!
20 CeedVector x_copy = x;
21
22 CeedRestoreWorkVector(ceed, &x);
23 CeedGetWorkVector(ceed, 20, &y);
24 if (y != x_copy) printf("failed to return same work vector");
25 CeedRestoreWorkVector(ceed, &y);
26 }
27
28 // Check for getting a new work vector back
29 {
30 CeedVector x, y;
31
32 CeedGetWorkVector(ceed, 20, &x);
33 // Do not do this!
34 CeedVector x_copy = x;
35
36 CeedRestoreWorkVector(ceed, &x);
37 CeedGetWorkVector(ceed, 30, &y);
38 if (y == x_copy) printf("failed to return new work vector");
39 CeedRestoreWorkVector(ceed, &y);
40 }
41
42 CeedDestroy(&ceed);
43 return 0;
44 }
45