xref: /libCEED/tests/t009-ceed.c (revision 49aac155e7a09736f56fb3abac0f57dab29f7cbf)
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>
5*49aac155SJeremy L Thompson #include <stdio.h>
69560d06aSjeremylt 
main(int argc,char ** argv)79560d06aSjeremylt int main(int argc, char **argv) {
89560d06aSjeremylt   Ceed ceed, ceed_2;
99560d06aSjeremylt 
109560d06aSjeremylt   CeedInit(argv[1], &ceed);
119560d06aSjeremylt   CeedInit("/cpu/self/ref/serial", &ceed_2);
129560d06aSjeremylt 
139560d06aSjeremylt   CeedReferenceCopy(ceed, &ceed_2);  // This destroys the previous ceed_2
142b730f8bSJeremy L Thompson   if (ceed != ceed_2) printf("Error copying Ceed reference\n");
159560d06aSjeremylt 
169560d06aSjeremylt   CeedDestroy(&ceed);
179560d06aSjeremylt 
189560d06aSjeremylt   CeedMemType type;
199560d06aSjeremylt   CeedGetPreferredMemType(ceed_2, &type);  // Second reference still valid
209560d06aSjeremylt 
219560d06aSjeremylt   CeedDestroy(&ceed_2);  // Both references should be destroyed
229560d06aSjeremylt   return 0;
239560d06aSjeremylt }
24