xref: /libCEED/tests/t009-ceed.c (revision 2b730f8b5a9c809740a0b3b302db43a719c636b1)
19560d06aSjeremylt /// @file
29560d06aSjeremylt /// Test creation, copying, and destruction of a CEED object
39560d06aSjeremylt /// \test Test creation, copying, and destruction of a CEED object
49560d06aSjeremylt #include <ceed.h>
59560d06aSjeremylt 
69560d06aSjeremylt int main(int argc, char **argv) {
79560d06aSjeremylt   Ceed ceed, ceed_2;
89560d06aSjeremylt 
99560d06aSjeremylt   CeedInit(argv[1], &ceed);
109560d06aSjeremylt   CeedInit("/cpu/self/ref/serial", &ceed_2);
119560d06aSjeremylt 
129560d06aSjeremylt   CeedReferenceCopy(ceed, &ceed_2);  // This destroys the previous ceed_2
13*2b730f8bSJeremy L Thompson   if (ceed != ceed_2) printf("Error copying Ceed reference\n");
149560d06aSjeremylt 
159560d06aSjeremylt   CeedDestroy(&ceed);
169560d06aSjeremylt 
179560d06aSjeremylt   CeedMemType type;
189560d06aSjeremylt   CeedGetPreferredMemType(ceed_2, &type);  // Second reference still valid
199560d06aSjeremylt 
209560d06aSjeremylt   CeedDestroy(&ceed_2);  // Both references should be destroyed
219560d06aSjeremylt   return 0;
229560d06aSjeremylt }
23