xref: /libCEED/tests/t120-vector.c (revision 4fee36f0a30516a0b5ad51bf7eb3b32d83efd623)
19560d06aSjeremylt /// @file
29560d06aSjeremylt /// Test creation, copying, and destroying of a vector
39560d06aSjeremylt /// \test Test creation, copying, and destroying of a vector
49560d06aSjeremylt #include <ceed.h>
59560d06aSjeremylt 
69560d06aSjeremylt int main(int argc, char **argv) {
79560d06aSjeremylt   Ceed       ceed;
89560d06aSjeremylt   CeedVector x, x_2;
9*4fee36f0SJeremy L Thompson   CeedInt    len = 10;
109560d06aSjeremylt 
119560d06aSjeremylt   CeedInit(argv[1], &ceed);
129560d06aSjeremylt 
13*4fee36f0SJeremy L Thompson   CeedVectorCreate(ceed, len, &x);
14*4fee36f0SJeremy L Thompson   CeedVectorCreate(ceed, len + 1, &x_2);
159560d06aSjeremylt 
169560d06aSjeremylt   CeedVectorReferenceCopy(x, &x_2);  // This destroys the previous x_2
179560d06aSjeremylt   CeedVectorDestroy(&x);
189560d06aSjeremylt 
19*4fee36f0SJeremy L Thompson   {
20*4fee36f0SJeremy L Thompson     CeedSize len_2;
21*4fee36f0SJeremy L Thompson 
22*4fee36f0SJeremy L Thompson     CeedVectorGetLength(x_2, &len_2);  // Second reference still valid
23*4fee36f0SJeremy L Thompson     if (len_2 != len) printf("Error copying CeedVector reference\n");
24*4fee36f0SJeremy L Thompson   }
259560d06aSjeremylt 
269560d06aSjeremylt   CeedVectorDestroy(&x_2);
279560d06aSjeremylt   CeedDestroy(&ceed);
289560d06aSjeremylt   return 0;
299560d06aSjeremylt }
30