xref: /libCEED/tests/t002-ceed.c (revision 2b730f8b5a9c809740a0b3b302db43a719c636b1)
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 <ceed.h>
5*2b730f8bSJeremy L Thompson #include <string.h>
6e07206deSjeremylt 
main(int argc,char ** argv)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 
16d1d35e2fSjeremylt   const size_t resource_length               = strlen(resource);
17d1d35e2fSjeremylt   const bool   is_exact_match                = strcmp(resource, backend) == 0;
18*2b730f8bSJeremy L Thompson   const bool   is_match_with_query_arguments = !is_exact_match && memcmp(resource, backend, resource_length) == 0 && backend[resource_length] == ':';
199647a07eSDavid Medina 
20*2b730f8bSJeremy L Thompson   if (!is_exact_match && !is_match_with_query_arguments) return CeedError(ceed, 1, "Incorrect full resource name: %s != %s\n", resource, backend);
21e07206deSjeremylt 
22e07206deSjeremylt   CeedDestroy(&ceed);
23e07206deSjeremylt   return 0;
24e07206deSjeremylt }
25