xref: /libCEED/tests/t002-ceed.c (revision d1d35e2f02dc969aee8debf3fd943dd784aa847a) !
1e07206deSjeremylt /// @file
2e07206deSjeremylt /// Test return of a CEED object full resource name
3e07206deSjeremylt /// \test Test return of a CEED object full resource name
4e07206deSjeremylt #include <string.h>
5e07206deSjeremylt #include <ceed.h>
6e07206deSjeremylt 
7e07206deSjeremylt int main(int argc, char **argv) {
8e07206deSjeremylt   Ceed ceed;
99647a07eSDavid Medina   const char *backend = argv[1];
10e07206deSjeremylt   const char *resource;
11e07206deSjeremylt 
129647a07eSDavid Medina   CeedInit(backend, &ceed);
13e07206deSjeremylt 
14e07206deSjeremylt   CeedGetResource(ceed, &resource);
159647a07eSDavid Medina 
16*d1d35e2fSjeremylt   const size_t resource_length = strlen(resource);
17*d1d35e2fSjeremylt   const bool is_exact_match = strcmp(resource, backend) == 0;
18*d1d35e2fSjeremylt   const bool is_match_with_query_arguments =
19ded9b81dSJeremy L Thompson     // LCOV_EXCL_START
20*d1d35e2fSjeremylt     !is_exact_match
21*d1d35e2fSjeremylt     && memcmp(resource, backend, resource_length) == 0
22*d1d35e2fSjeremylt     && backend[resource_length] == ':';
23ded9b81dSJeremy L Thompson   // LCOV_EXCL_STOP
249647a07eSDavid Medina 
25*d1d35e2fSjeremylt   if (!is_exact_match && !is_match_with_query_arguments) {
26e07206deSjeremylt     // LCOV_EXCL_START
27e07206deSjeremylt     return CeedError(ceed, 1, "Incorrect full resource name: %s != %s",
289647a07eSDavid Medina                      resource, backend);
29e07206deSjeremylt     // LCOV_EXCL_STOP
309647a07eSDavid Medina   }
31e07206deSjeremylt 
32e07206deSjeremylt   CeedDestroy(&ceed);
33e07206deSjeremylt   return 0;
34e07206deSjeremylt }
35