xref: /libCEED/tests/t120-vector.c (revision 5fb68f377259d3910de46d787b7c5d1587fd01e1)
19560d06aSjeremylt /// @file
2*5fb68f37SKaren (Ren) Stengel /// Test creation, reference copying, and destroying of a vector
3*5fb68f37SKaren (Ren) Stengel /// \test Test creation, reference 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;
94fee36f0SJeremy L Thompson   CeedInt    len = 10;
109560d06aSjeremylt 
119560d06aSjeremylt   CeedInit(argv[1], &ceed);
129560d06aSjeremylt 
134fee36f0SJeremy L Thompson   CeedVectorCreate(ceed, len, &x);
144fee36f0SJeremy L Thompson   CeedVectorCreate(ceed, len + 1, &x_2);
159560d06aSjeremylt 
169560d06aSjeremylt   CeedVectorReferenceCopy(x, &x_2);  // This destroys the previous x_2
179560d06aSjeremylt   CeedVectorDestroy(&x);
189560d06aSjeremylt 
194fee36f0SJeremy L Thompson   {
204fee36f0SJeremy L Thompson     CeedSize len_2;
214fee36f0SJeremy L Thompson 
224fee36f0SJeremy L Thompson     CeedVectorGetLength(x_2, &len_2);  // Second reference still valid
234fee36f0SJeremy L Thompson     if (len_2 != len) printf("Error copying CeedVector reference\n");
244fee36f0SJeremy L Thompson   }
259560d06aSjeremylt 
269560d06aSjeremylt   CeedVectorDestroy(&x_2);
279560d06aSjeremylt   CeedDestroy(&ceed);
289560d06aSjeremylt   return 0;
299560d06aSjeremylt }
30