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