Browse Source

Move Env tests to a separate file

zrythm_meson
David Robillard 3 years ago
parent
commit
fc81e2734c
  1. 95
      tests/env_test.c
  2. 64
      tests/serd_test.c
  3. 2
      wscript

95
tests/env_test.c

@ -0,0 +1,95 @@ @@ -0,0 +1,95 @@
/*
Copyright 2011-2020 David Robillard <http://drobilla.net>
Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted, provided that the above
copyright notice and this permission notice appear in all copies.
THIS SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
#undef NDEBUG
#include "serd/serd.h"
#include <assert.h>
#include <stdint.h>
#include <string.h>
#define USTR(s) ((const uint8_t*)(s))
static SerdStatus
count_prefixes(void* handle, const SerdNode* name, const SerdNode* uri)
{
(void)name;
(void)uri;
++*(int*)handle;
return SERD_SUCCESS;
}
static void
test_env(void)
{
SerdNode u = serd_node_from_string(SERD_URI, USTR("http://example.org/foo"));
SerdNode b = serd_node_from_string(SERD_CURIE, USTR("invalid"));
SerdNode c = serd_node_from_string(SERD_CURIE, USTR("eg.2:b"));
SerdEnv* env = serd_env_new(NULL);
serd_env_set_prefix_from_strings(env, USTR("eg.2"), USTR("http://example.org/"));
assert(serd_env_set_base_uri(env, NULL));
assert(serd_env_set_base_uri(env, &SERD_NODE_NULL));
assert(serd_node_equals(serd_env_get_base_uri(env, NULL), &SERD_NODE_NULL));
SerdChunk prefix;
SerdChunk suffix;
assert(serd_env_expand(env, &b, &prefix, &suffix));
SerdNode xnode = serd_env_expand_node(env, &SERD_NODE_NULL);
assert(serd_node_equals(&xnode, &SERD_NODE_NULL));
SerdNode xu = serd_env_expand_node(env, &u);
assert(!strcmp((const char*)xu.buf, "http://example.org/foo"));
serd_node_free(&xu);
SerdNode badpre = serd_node_from_string(SERD_CURIE, USTR("hm:what"));
SerdNode xbadpre = serd_env_expand_node(env, &badpre);
assert(serd_node_equals(&xbadpre, &SERD_NODE_NULL));
SerdNode xc = serd_env_expand_node(env, &c);
assert(!strcmp((const char*)xc.buf, "http://example.org/b"));
serd_node_free(&xc);
assert(serd_env_set_prefix(env, &SERD_NODE_NULL, &SERD_NODE_NULL));
const SerdNode lit = serd_node_from_string(SERD_LITERAL, USTR("hello"));
assert(serd_env_set_prefix(env, &b, &lit));
const SerdNode blank = serd_node_from_string(SERD_BLANK, USTR("b1"));
const SerdNode xblank = serd_env_expand_node(env, &blank);
assert(serd_node_equals(&xblank, &SERD_NODE_NULL));
int n_prefixes = 0;
serd_env_set_prefix_from_strings(env, USTR("eg.2"), USTR("http://example.org/"));
serd_env_foreach(env, count_prefixes, &n_prefixes);
assert(n_prefixes == 1);
SerdNode shorter_uri = serd_node_from_string(SERD_URI, USTR("urn:foo"));
SerdNode prefix_name;
assert(!serd_env_qualify(env, &shorter_uri, &prefix_name, &suffix));
serd_env_free(env);
}
int
main(void)
{
test_env();
return 0;
}

64
tests/serd_test.c

@ -49,16 +49,6 @@ test_strtod(double dbl, double max_delta) @@ -49,16 +49,6 @@ test_strtod(double dbl, double max_delta)
assert(diff <= max_delta);
}
static SerdStatus
count_prefixes(void* handle, const SerdNode* name, const SerdNode* uri)
{
(void)name;
(void)uri;
++*(int*)handle;
return SERD_SUCCESS;
}
typedef struct {
int n_statements;
const SerdNode* graph;
@ -472,59 +462,6 @@ test_relative_uri(void) @@ -472,59 +462,6 @@ test_relative_uri(void)
serd_node_free(&base);
}
static void
test_env(void)
{
SerdNode u = serd_node_from_string(SERD_URI, USTR("http://example.org/foo"));
SerdNode b = serd_node_from_string(SERD_CURIE, USTR("invalid"));
SerdNode c = serd_node_from_string(SERD_CURIE, USTR("eg.2:b"));
SerdEnv* env = serd_env_new(NULL);
serd_env_set_prefix_from_strings(env, USTR("eg.2"), USTR("http://example.org/"));
assert(serd_env_set_base_uri(env, NULL));
assert(serd_env_set_base_uri(env, &SERD_NODE_NULL));
assert(serd_node_equals(serd_env_get_base_uri(env, NULL), &SERD_NODE_NULL));
SerdChunk prefix;
SerdChunk suffix;
assert(serd_env_expand(env, &b, &prefix, &suffix));
SerdNode xnode = serd_env_expand_node(env, &SERD_NODE_NULL);
assert(serd_node_equals(&xnode, &SERD_NODE_NULL));
SerdNode xu = serd_env_expand_node(env, &u);
assert(!strcmp((const char*)xu.buf, "http://example.org/foo"));
serd_node_free(&xu);
SerdNode badpre = serd_node_from_string(SERD_CURIE, USTR("hm:what"));
SerdNode xbadpre = serd_env_expand_node(env, &badpre);
assert(serd_node_equals(&xbadpre, &SERD_NODE_NULL));
SerdNode xc = serd_env_expand_node(env, &c);
assert(!strcmp((const char*)xc.buf, "http://example.org/b"));
serd_node_free(&xc);
assert(serd_env_set_prefix(env, &SERD_NODE_NULL, &SERD_NODE_NULL));
const SerdNode lit = serd_node_from_string(SERD_LITERAL, USTR("hello"));
assert(serd_env_set_prefix(env, &b, &lit));
const SerdNode blank = serd_node_from_string(SERD_BLANK, USTR("b1"));
const SerdNode xblank = serd_env_expand_node(env, &blank);
assert(serd_node_equals(&xblank, &SERD_NODE_NULL));
int n_prefixes = 0;
serd_env_set_prefix_from_strings(env, USTR("eg.2"), USTR("http://example.org/"));
serd_env_foreach(env, count_prefixes, &n_prefixes);
assert(n_prefixes == 1);
SerdNode shorter_uri = serd_node_from_string(SERD_URI, USTR("urn:foo"));
SerdNode prefix_name;
assert(!serd_env_qualify(env, &shorter_uri, &prefix_name, &suffix));
serd_env_free(env);
}
static void
test_writer(const char* const path)
{
@ -716,7 +653,6 @@ main(void) @@ -716,7 +653,6 @@ main(void)
test_node_from_substring();
test_uri_from_string();
test_relative_uri();
test_env();
test_read_chunks();
const char* const path = "serd_test.ttl";

2
wscript

@ -211,6 +211,7 @@ def build(bld): @@ -211,6 +211,7 @@ def build(bld):
# Test programs
for prog in [('serdi_static', 'src/serdi.c'),
('env_test', 'tests/env_test.c'),
('read_chunk_test', 'tests/read_chunk_test.c'),
('serd_test', 'tests/serd_test.c')]:
bld(features = 'c cprogram',
@ -533,6 +534,7 @@ def test(tst): @@ -533,6 +534,7 @@ def test(tst):
srcdir = tst.path.abspath()
with tst.group('Unit') as check:
check(['./env_test'])
check(['./read_chunk_test'])
check(['./serd_test'])

Loading…
Cancel
Save