From 43e4cba8561d332cdc0fa9d257008dc68bb65a96 Mon Sep 17 00:00:00 2001 From: David Robillard Date: Sun, 4 Feb 2018 18:35:41 +0100 Subject: Make nodes opaque --- tests/serd_test.c | 395 +++++++++++++++++++++++++++++------------------------- 1 file changed, 216 insertions(+), 179 deletions(-) (limited to 'tests') diff --git a/tests/serd_test.c b/tests/serd_test.c index a8d17349..1e563006 100644 --- a/tests/serd_test.c +++ b/tests/serd_test.c @@ -92,24 +92,25 @@ check_file_uri(const char* hostname, expected_path = path; } - SerdNode node = serd_node_new_file_uri(path, hostname, 0, escape); - char* out_hostname = NULL; - char* out_path = serd_file_uri_parse(node.buf, &out_hostname); - int ret = 0; - if (strcmp((const char*)node.buf, expected_uri)) { - ret = FAILF("Bad URI %s != %s\n", node.buf, expected_uri); + SerdNode* node = serd_node_new_file_uri(path, hostname, 0, escape); + const char* node_str = serd_node_get_string(node); + char* out_hostname = NULL; + char* out_path = serd_file_uri_parse(node_str, &out_hostname); + int ret = 0; + if (strcmp(node_str, expected_uri)) { + ret = FAILF("Bad URI %s != %s\n", node_str, expected_uri); } else if (!hostname && out_hostname) { ret = FAILF("hostname `%s' shouldn't exist\n", out_hostname); } else if (hostname && !out_hostname) { ret = FAILF("expected hostname `%s'\n", hostname); } else if (strcmp((const char*)out_path, (const char*)expected_path)) { ret = FAILF("path=>URI=>path failure %s => %s => %s\n", - path, node.buf, out_path); + path, node_str, out_path); } serd_free(out_path); serd_free(out_hostname); - serd_node_free(&node); + serd_node_free(node); return ret; } @@ -155,20 +156,19 @@ main(void) }; for (unsigned i = 0; i < sizeof(dbl_test_nums) / sizeof(double); ++i) { - SerdNode node = serd_node_new_decimal(dbl_test_nums[i], 8); - const bool pass = (node.buf && dbl_test_strs[i]) - ? !strcmp(node.buf, dbl_test_strs[i]) - : (node.buf == dbl_test_strs[i]); + SerdNode* node = serd_node_new_decimal(dbl_test_nums[i], 8); + const char* node_str = serd_node_get_string(node); + const bool pass = (node_str && dbl_test_strs[i]) + ? !strcmp(node_str, dbl_test_strs[i]) + : (node_str == dbl_test_strs[i]); if (!pass) { - FAILF("Serialised `%s' != %s\n", - node.buf, dbl_test_strs[i]); + FAILF("Serialised `%s' != %s\n", node_str, dbl_test_strs[i]); } - const size_t len = node.buf ? strlen(node.buf) : 0; - if (node.n_bytes != len) { - FAILF("Length %zu != %zu\n", - node.n_bytes, len); + const size_t len = node_str ? strlen(node_str) : 0; + if (serd_node_get_length(node) != len) { + FAILF("Length %zu != %zu\n", serd_node_get_length(node), len); } - serd_node_free(&node); + serd_node_free(node); } // Test serd_node_new_integer @@ -182,37 +182,35 @@ main(void) }; for (unsigned i = 0; i < sizeof(int_test_nums) / sizeof(double); ++i) { - SerdNode node = serd_node_new_integer(int_test_nums[i]); - if (strcmp((const char*)node.buf, (const char*)int_test_strs[i])) { - FAILF("Serialised `%s' != %s\n", - node.buf, int_test_strs[i]); + SerdNode* node = serd_node_new_integer(int_test_nums[i]); + const char* node_str = serd_node_get_string(node); + if (strcmp(node_str, (const char*)int_test_strs[i])) { + FAILF("Serialised `%s' != %s\n", node_str, int_test_strs[i]); } - const size_t len = strlen(node.buf); - if (node.n_bytes != len) { - FAILF("Length %zu,%zu != %zu\n", - node.n_bytes, len); + const size_t len = strlen(node_str); + if (serd_node_get_length(node) != len) { + FAILF("Length %zu,%zu != %zu\n", serd_node_get_length(node), len); } - serd_node_free(&node); + serd_node_free(node); } // Test serd_node_new_blob - for (size_t size = 0; size < 256; ++size) { + for (size_t size = 1; size < 256; ++size) { uint8_t* data = (uint8_t*)malloc(size); for (size_t i = 0; i < size; ++i) { data[i] = (uint8_t)(rand() % 256); } - SerdNode blob = serd_node_new_blob(data, size, size % 5); + size_t out_size; + SerdNode* blob = serd_node_new_blob(data, size, size % 5); + const char* blob_str = serd_node_get_string(blob); + uint8_t* out = (uint8_t*)serd_base64_decode( + blob_str, serd_node_get_length(blob), &out_size); - if (blob.n_bytes != strlen((const char*)blob.buf)) { + if (serd_node_get_length(blob) != strlen(blob_str)) { FAILF("Blob %zu bytes != length %zu\n", - blob.n_bytes, strlen((const char*)blob.buf)); - } - - size_t out_size; - uint8_t* out = (uint8_t*)serd_base64_decode( - blob.buf, blob.n_bytes, &out_size); - if (out_size != size) { + serd_node_get_length(blob), strlen(blob_str)); + } else if (out_size != size) { FAILF("Blob size %zu != %zu\n", out_size, size); } @@ -222,7 +220,7 @@ main(void) } } - serd_node_free(&blob); + serd_node_free(blob); serd_free(out); free(data); } @@ -320,170 +318,193 @@ main(void) // Test serd_node_equals const uint8_t replacement_char_str[] = { 0xEF, 0xBF, 0xBD, 0 }; - SerdNode lhs = serd_node_from_string(SERD_LITERAL, (const char*)replacement_char_str); - SerdNode rhs = serd_node_from_string(SERD_LITERAL, "123"); - if (serd_node_equals(&lhs, &rhs)) { - FAILF("%s == %s\n", lhs.buf, rhs.buf); + SerdNode* lhs = serd_node_new_string(SERD_LITERAL, (const char*)replacement_char_str); + SerdNode* rhs = serd_node_new_string(SERD_LITERAL, "123"); + if (serd_node_equals(lhs, rhs)) { + FAILF("%s == %s\n", + serd_node_get_string(lhs), serd_node_get_string(rhs)); } - SerdNode qnode = serd_node_from_string(SERD_CURIE, "foo:bar"); - if (serd_node_equals(&lhs, &qnode)) { - FAILF("%s == %s\n", lhs.buf, qnode.buf); + SerdNode* qnode = serd_node_new_string(SERD_CURIE, "foo:bar"); + if (serd_node_equals(lhs, qnode)) { + FAILF("%s == %s\n", + serd_node_get_string(lhs), serd_node_get_string(qnode)); } + serd_node_free(qnode); - if (!serd_node_equals(&lhs, &lhs)) { - FAILF("%s != %s\n", lhs.buf, lhs.buf); + if (!serd_node_equals(lhs, lhs)) { + FAILF("%s != %s\n", + serd_node_get_string(lhs), serd_node_get_string(lhs)); } - SerdNode null_copy = serd_node_copy(&SERD_NODE_NULL); - if (!serd_node_equals(&SERD_NODE_NULL, &null_copy)) { - FAIL("copy of null node != null node\n"); + if (serd_node_copy(NULL)) { + FAIL("made non-null copy of null node\n"); } - // Test serd_node_from_string + serd_node_free(lhs); + serd_node_free(rhs); + + // Test serd_node_new_string - SerdNode node = serd_node_from_string(SERD_LITERAL, "hello\""); - if (node.n_bytes != 6 || node.flags != SERD_HAS_QUOTE - || strcmp((const char*)node.buf, "hello\"")) { - FAILF("Bad node %s %zu %d %d\n", - node.buf, node.n_bytes, node.flags, node.type); + SerdNode* hello = serd_node_new_string(SERD_LITERAL, "hello\""); + if (serd_node_get_length(hello) != 6 || + serd_node_get_flags(hello) != SERD_HAS_QUOTE || + strcmp(serd_node_get_string(hello), "hello\"")) { + FAILF("Bad node %s\n", serd_node_get_string(hello)); } - node = serd_node_from_string(SERD_URI, NULL); - if (!serd_node_equals(&node, &SERD_NODE_NULL)) { - FAIL("Creating node from NULL string failed\n"); + if (serd_node_new_string(SERD_URI, NULL)) { + FAIL("Successfully created node from NULL string\n"); } - // Test serd_node_from_substring + // Test serd_node_new_substring - SerdNode empty = serd_node_from_substring(SERD_LITERAL, NULL, 32); - if (empty.buf || empty.n_bytes || empty.flags || empty.type) { + if (serd_node_new_substring(SERD_LITERAL, NULL, 32)) { FAIL("Successfully created node from NULL substring\n"); } - SerdNode a_b = serd_node_from_substring(SERD_LITERAL, "a\"bc", 3); - if (a_b.n_bytes != 3 || a_b.flags != SERD_HAS_QUOTE - || strncmp((const char*)a_b.buf, "a\"b", 3)) { - FAILF("Bad node %s %zu %d %d\n", - a_b.buf, a_b.n_bytes, a_b.flags, a_b.type); + SerdNode* a_b = serd_node_new_substring(SERD_LITERAL, "a\"bc", 3); + if (serd_node_get_length(a_b) != 3 || + serd_node_get_flags(a_b) != SERD_HAS_QUOTE || + strncmp(serd_node_get_string(a_b), "a\"b", 3)) { + FAILF("Bad node %s\n", serd_node_get_string(a_b)); } - a_b = serd_node_from_substring(SERD_LITERAL, "a\"bc", 10); - if (a_b.n_bytes != 4 || a_b.flags != SERD_HAS_QUOTE - || strncmp((const char*)a_b.buf, "a\"bc", 4)) { - FAILF("Bad node %s %zu %zu %d %d\n", - a_b.buf, a_b.n_bytes, a_b.flags, a_b.type); + serd_node_free(a_b); + a_b = serd_node_new_substring(SERD_LITERAL, "a\"bc", 10); + if (serd_node_get_length(a_b) != 4 || + serd_node_get_flags(a_b) != SERD_HAS_QUOTE || + strncmp(serd_node_get_string(a_b), "a\"bc", 4)) { + FAILF("Bad node %s\n", serd_node_get_string(a_b)); } + serd_node_free(a_b); // Test serd_node_new_uri_from_string - SerdNode nonsense = serd_node_new_uri_from_string(NULL, NULL, NULL); - if (nonsense.type != SERD_NOTHING) { + if (serd_node_new_uri_from_string(NULL, NULL, NULL)) { FAIL("Successfully created NULL URI\n"); } SerdURI base_uri; - SerdNode base = serd_node_new_uri_from_string("http://example.org/", + SerdNode* base = serd_node_new_uri_from_string("http://example.org/", NULL, &base_uri); - SerdNode nil = serd_node_new_uri_from_string(NULL, &base_uri, NULL); - SerdNode nil2 = serd_node_new_uri_from_string("", &base_uri, NULL); - if (nil.type != SERD_URI || strcmp((const char*)nil.buf, (const char*)base.buf) || - nil2.type != SERD_URI || strcmp((const char*)nil2.buf, (const char*)base.buf)) { - FAILF("URI %s != base %s\n", nil.buf, base.buf); + SerdNode* nil = serd_node_new_uri_from_string(NULL, &base_uri, NULL); + SerdNode* nil2 = serd_node_new_uri_from_string("", &base_uri, NULL); + if (serd_node_get_type(nil) != SERD_URI || + strcmp(serd_node_get_string(nil), serd_node_get_string(base)) || + serd_node_get_type(nil2) != SERD_URI || + strcmp(serd_node_get_string(nil2), serd_node_get_string(base))) { + FAILF("URI %s != base %s\n", + serd_node_get_string(nil), + serd_node_get_string(base)); } - serd_node_free(&nil); - serd_node_free(&nil2); // Test serd_node_new_relative_uri - SerdNode abs = serd_node_from_string(SERD_URI, "http://example.org/foo/bar"); - SerdURI abs_uri; - serd_uri_parse(abs.buf, &abs_uri); + SerdNode* abs = serd_node_new_string(SERD_URI, "http://example.org/foo/bar"); + SerdURI abs_uri; + serd_uri_parse(serd_node_get_string(abs), &abs_uri); - SerdURI rel_uri; - SerdNode rel = serd_node_new_relative_uri(&abs_uri, &base_uri, NULL, &rel_uri); - if (strcmp((const char*)rel.buf, "/foo/bar")) { - FAILF("Bad relative URI %s (expected '/foo/bar')\n", rel.buf); + SerdURI rel_uri; + SerdNode* rel = serd_node_new_relative_uri(&abs_uri, &base_uri, NULL, &rel_uri); + if (strcmp(serd_node_get_string(rel), "/foo/bar")) { + FAILF("Bad relative URI %s (expected '/foo/bar')\n", + serd_node_get_string(rel)); } - SerdNode up = serd_node_new_relative_uri(&base_uri, &abs_uri, NULL, NULL); - if (strcmp((const char*)up.buf, "../")) { - FAILF("Bad relative URI %s (expected '../')\n", up.buf); + SerdNode* up = serd_node_new_relative_uri(&base_uri, &abs_uri, NULL, NULL); + if (strcmp(serd_node_get_string(up), "../")) { + FAILF("Bad relative URI %s (expected '../')\n", + serd_node_get_string(up)); } - SerdNode noup = serd_node_new_relative_uri(&base_uri, &abs_uri, &abs_uri, NULL); - if (strcmp((const char*)noup.buf, "http://example.org/")) { - FAILF("Bad relative URI %s (expected 'http://example.org/')\n", noup.buf); + SerdNode* noup = serd_node_new_relative_uri(&base_uri, &abs_uri, &abs_uri, NULL); + if (strcmp(serd_node_get_string(noup), "http://example.org/")) { + FAILF("Bad relative URI %s (expected 'http://example.org/')\n", + serd_node_get_string(noup)); } - SerdNode x = serd_node_from_string(SERD_URI, "http://example.org/foo/x"); - SerdURI x_uri; - serd_uri_parse(x.buf, &x_uri); + SerdNode* x = serd_node_new_string(SERD_URI, "http://example.org/foo/x"); + SerdURI x_uri; + serd_uri_parse(serd_node_get_string(x), &x_uri); - SerdNode x_rel = serd_node_new_relative_uri(&x_uri, &abs_uri, &abs_uri, NULL); - if (strcmp((const char*)x_rel.buf, "x")) { - FAILF("Bad relative URI %s (expected 'x')\n", x_rel.buf); + SerdNode* x_rel = + serd_node_new_relative_uri(&x_uri, &abs_uri, &abs_uri, NULL); + if (strcmp(serd_node_get_string(x_rel), "x")) { + FAILF("Bad relative URI %s (expected 'x')\n", + serd_node_get_string(x_rel)); } - serd_node_free(&x_rel); - serd_node_free(&noup); - serd_node_free(&up); - serd_node_free(&rel); - serd_node_free(&base); + serd_node_free(x_rel); + serd_node_free(noup); + serd_node_free(up); + serd_node_free(abs); + serd_node_free(nil); + serd_node_free(nil2); + serd_node_free(rel); + serd_node_free(base); // Test SerdEnv - SerdNode u = serd_node_from_string(SERD_URI, "http://example.org/foo"); - SerdNode b = serd_node_from_string(SERD_CURIE, "invalid"); - SerdNode c = serd_node_from_string(SERD_CURIE, "eg.2:b"); - SerdEnv* env = serd_env_new(NULL); + SerdNode* u = serd_node_new_string(SERD_URI, "http://example.org/foo"); + SerdNode* b = serd_node_new_string(SERD_CURIE, "invalid"); + SerdNode* c = serd_node_new_string(SERD_CURIE, "eg.2:b"); + SerdEnv* env = serd_env_new(NULL); serd_env_set_prefix_from_strings(env, "eg.2", "http://example.org/"); + if (serd_env_get_base_uri(env, NULL)) { + FAIL("Unexpected initial base URI\n"); + } + if (!serd_env_set_base_uri(env, NULL)) { FAIL("Successfully set NULL base URI\n"); } - if (!serd_env_set_base_uri(env, &node)) { - FAILF("Set base URI to %s\n", node.buf); + if (!serd_env_set_base_uri(env, hello)) { + FAILF("Set base URI to %s\n", serd_node_get_string(hello)); } - if (!serd_node_equals(serd_env_get_base_uri(env, NULL), &node)) { - FAIL("Base URI mismatch\n"); + if (serd_env_get_base_uri(env, NULL)) { + FAIL("Unexpected base URI\n"); } SerdSlice prefix, suffix; - if (!serd_env_expand(env, &b, &prefix, &suffix)) { - FAILF("Expanded invalid curie %s\n", b.buf); + if (!serd_env_expand(env, b, &prefix, &suffix)) { + FAILF("Expanded invalid curie %s\n", serd_node_get_string(b)); } - SerdNode xnode = serd_env_expand_node(env, &node); - if (!serd_node_equals(&xnode, &SERD_NODE_NULL)) { - FAILF("Expanded %s to %s\n", c.buf, xnode.buf); + SerdNode* xnode = serd_env_expand_node(env, hello); + if (xnode) { + FAILF("Expanded %s\n", serd_node_get_string(c)); } + serd_node_free(hello); - SerdNode xu = serd_env_expand_node(env, &u); - if (strcmp((const char*)xu.buf, "http://example.org/foo")) { - FAILF("Expanded %s to %s\n", c.buf, xu.buf); + SerdNode* xu = serd_env_expand_node(env, u); + if (strcmp(serd_node_get_string(xu), "http://example.org/foo")) { + FAILF("Expanded %s to %s\n", + serd_node_get_string(c), serd_node_get_string(xu)); } - serd_node_free(&xu); + serd_node_free(xu); - SerdNode badpre = serd_node_from_string(SERD_CURIE, "hm:what"); - SerdNode xbadpre = serd_env_expand_node(env, &badpre); - if (!serd_node_equals(&xbadpre, &SERD_NODE_NULL)) { - FAILF("Expanded invalid curie %s\n", badpre.buf); + SerdNode* badpre = serd_node_new_string(SERD_CURIE, "hm:what"); + SerdNode* xbadpre = serd_env_expand_node(env, badpre); + if (xbadpre) { + FAILF("Expanded invalid curie %s\n", serd_node_get_string(badpre)); } + serd_node_free(badpre); - SerdNode xc = serd_env_expand_node(env, &c); - if (strcmp((const char*)xc.buf, "http://example.org/b")) { - FAILF("Expanded %s to %s\n", c.buf, xc.buf); + SerdNode* xc = serd_env_expand_node(env, c); + if (strcmp(serd_node_get_string(xc), "http://example.org/b")) { + FAILF("Expanded %s to %s\n", + serd_node_get_string(c), serd_node_get_string(xc)); } - serd_node_free(&xc); + serd_node_free(xc); - if (!serd_env_set_prefix(env, &SERD_NODE_NULL, &SERD_NODE_NULL)) { + if (!serd_env_set_prefix(env, NULL, NULL)) { FAIL("Set NULL prefix\n"); } - const SerdNode lit = serd_node_from_string(SERD_LITERAL, "hello"); - if (!serd_env_set_prefix(env, &b, &lit)) { + SerdNode* lit = serd_node_new_string(SERD_LITERAL, "hello"); + if (!serd_env_set_prefix(env, b, lit)) { FAIL("Set prefix to literal\n"); } @@ -494,11 +515,15 @@ main(void) FAILF("Bad prefix count %d\n", n_prefixes); } - SerdNode shorter_uri = serd_node_from_string(SERD_URI, "urn:foo"); - SerdNode prefix_name; - if (serd_env_qualify(env, &shorter_uri, &prefix_name, &suffix)) { - FAILF("Qualified %s\n", shorter_uri.buf); + SerdNode* shorter_uri = serd_node_new_string(SERD_URI, "urn:foo"); + const SerdNode* prefix_name; + if (serd_env_qualify(env, shorter_uri, &prefix_name, &suffix)) { + FAILF("Qualified %s\n", serd_node_get_string(shorter_uri)); } + serd_node_free(shorter_uri); + serd_node_free(u); + serd_node_free(b); + serd_node_free(c); // Test SerdReader and SerdWriter @@ -517,10 +542,11 @@ main(void) serd_writer_chop_blank_prefix(writer, "tmp"); serd_writer_chop_blank_prefix(writer, NULL); - if (!serd_writer_set_base_uri(writer, &lit)) { - FAILF("Set base URI to %s\n", lit.buf); - } else if (!serd_writer_set_prefix(writer, &lit, &lit)) { - FAILF("Set prefix %s to %s\n", lit.buf, lit.buf); + if (!serd_writer_set_base_uri(writer, lit)) { + FAILF("Set base URI to %s\n", serd_node_get_string(lit)); + } else if (!serd_writer_set_prefix(writer, lit, lit)) { + FAILF("Set prefix %s to %s\n", + serd_node_get_string(lit), serd_node_get_string(lit)); } else if (!serd_writer_end_anon(writer, NULL)) { FAIL("Ended non-existent anonymous node\n"); } else if (serd_writer_get_env(writer) != env) { @@ -528,20 +554,20 @@ main(void) } uint8_t buf[] = { 0xEF, 0xBF, 0xBD, 0 }; - SerdNode s = serd_node_from_string(SERD_URI, ""); - SerdNode p = serd_node_from_string(SERD_URI, "http://example.org/pred"); - SerdNode o = serd_node_from_string(SERD_LITERAL, (char*)buf); + SerdNode* s = serd_node_new_string(SERD_URI, ""); + SerdNode* p = serd_node_new_string(SERD_URI, "http://example.org/pred"); + SerdNode* o = serd_node_new_string(SERD_LITERAL, (char*)buf); // Write 3 invalid statements (should write nothing) - const SerdNode* junk[][5] = { { &s, &p, NULL, NULL, NULL }, - { &s, NULL, &o, NULL, NULL }, - { NULL, &p, &o, NULL, NULL }, - { &s, &p, &SERD_NODE_NULL, NULL, NULL }, - { &s, &SERD_NODE_NULL, &o, NULL, NULL }, - { &SERD_NODE_NULL, &p, &o, NULL, NULL }, - { &s, &o, &o, NULL, NULL }, - { &o, &p, &o, NULL, NULL }, - { &s, &p, &SERD_NODE_NULL, NULL, NULL }, + const SerdNode* junk[][5] = { { s, p, NULL, NULL, NULL }, + { s, NULL, o, NULL, NULL }, + { NULL, p, o, NULL, NULL }, + { s, p, NULL, NULL, NULL }, + { s, NULL, o, NULL, NULL }, + { NULL, p, o, NULL, NULL }, + { s, o, o, NULL, NULL }, + { o, p, o, NULL, NULL }, + { s, p, NULL, NULL, NULL }, { NULL, NULL, NULL, NULL, NULL } }; for (unsigned i = 0; i < sizeof(junk) / (sizeof(SerdNode*) * 5); ++i) { if (!serd_writer_write_statement( @@ -551,18 +577,18 @@ main(void) } } - const SerdNode t = serd_node_from_string(SERD_URI, "urn:Type"); - const SerdNode l = serd_node_from_string(SERD_LITERAL, "en"); - const SerdNode* good[][5] = { { &s, &p, &o, NULL, NULL }, - { &s, &p, &o, &SERD_NODE_NULL, &SERD_NODE_NULL }, - { &s, &p, &o, &t, NULL }, - { &s, &p, &o, NULL, &l }, - { &s, &p, &o, &t, &l }, - { &s, &p, &o, &t, &SERD_NODE_NULL }, - { &s, &p, &o, &SERD_NODE_NULL, &l }, - { &s, &p, &o, NULL, &SERD_NODE_NULL }, - { &s, &p, &o, &SERD_NODE_NULL, NULL }, - { &s, &p, &o, &SERD_NODE_NULL, NULL } }; + SerdNode* t = serd_node_new_string(SERD_URI, "urn:Type"); + SerdNode* l = serd_node_new_string(SERD_LITERAL, "en"); + const SerdNode* good[][5] = { { s, p, o, NULL, NULL }, + { s, p, o, NULL, NULL }, + { s, p, o, t, NULL }, + { s, p, o, NULL, l }, + { s, p, o, t, l }, + { s, p, o, t, NULL }, + { s, p, o, NULL, l }, + { s, p, o, NULL, NULL }, + { s, p, o, NULL, NULL }, + { s, p, o, NULL, NULL } }; for (unsigned i = 0; i < sizeof(good) / (sizeof(SerdNode*) * 5); ++i) { if (serd_writer_write_statement( writer, 0, NULL, @@ -573,35 +599,45 @@ main(void) // Write statements with bad UTF-8 (should be replaced) const char bad_str[] = { (char)0xFF, (char)0x90, 'h', 'i', 0 }; - SerdNode bad_lit = serd_node_from_string(SERD_LITERAL, bad_str); - SerdNode bad_uri = serd_node_from_string(SERD_URI, bad_str); + SerdNode* bad_lit = serd_node_new_string(SERD_LITERAL, bad_str); + SerdNode* bad_uri = serd_node_new_string(SERD_URI, bad_str); if (serd_writer_write_statement(writer, 0, NULL, - &s, &p, &bad_lit, NULL, NULL)) { + s, p, bad_lit, NULL, NULL)) { FAIL("Failed to write junk UTF-8 literal\n"); } else if (serd_writer_write_statement(writer, 0, NULL, - &s, &p, &bad_uri, NULL, NULL)) { + s, p, bad_uri, NULL, NULL)) { FAIL("Failed to write junk UTF-8 URI\n"); } + serd_node_free(bad_uri); + serd_node_free(bad_lit); // Write 1 valid statement - o = serd_node_from_string(SERD_LITERAL, "hello"); + serd_node_free(o); + o = serd_node_new_string(SERD_LITERAL, "hello"); if (serd_writer_write_statement(writer, 0, NULL, - &s, &p, &o, NULL, NULL)) { + s, p, o, NULL, NULL)) { FAIL("Failed to write valid statement\n"); } serd_writer_free(writer); + serd_node_free(lit); + serd_node_free(s); + serd_node_free(p); + serd_node_free(o); + serd_node_free(t); + serd_node_free(l); // Test buffer sink SerdBuffer buffer = { NULL, 0 }; writer = serd_writer_new( SERD_TURTLE, (SerdStyle)0, env, NULL, serd_buffer_sink, &buffer); - o = serd_node_from_string(SERD_URI, "http://example.org/base"); - if (serd_writer_set_base_uri(writer, &o)) { + o = serd_node_new_string(SERD_URI, "http://example.org/base"); + if (serd_writer_set_base_uri(writer, o)) { FAIL("Failed to write to chunk sink\n"); } + serd_node_free(o); serd_writer_free(writer); char* out = serd_buffer_sink_finish(&buffer); @@ -625,10 +661,11 @@ main(void) FAIL("Corrupt reader handle\n"); } - SerdNode g = serd_node_from_string(SERD_URI, "http://example.org/"); - serd_reader_set_default_graph(reader, &g); + SerdNode* g = serd_node_new_string(SERD_URI, "http://example.org/"); + serd_reader_set_default_graph(reader, g); serd_reader_add_blank_prefix(reader, "tmp"); serd_reader_add_blank_prefix(reader, NULL); + serd_node_free(g); if (!serd_reader_read_file(reader, "http://notafile")) { FAIL("Apparently read an http URI\n"); @@ -643,8 +680,8 @@ main(void) FAILF("Error reading file (%s)\n", serd_strerror(st)); } else if (rt->n_statements != 13) { FAILF("Bad statement count %d\n", rt->n_statements); - } else if (!rt->graph || !rt->graph->buf || - strcmp((const char*)rt->graph->buf, "http://example.org/")) { + } else if (!rt->graph || !serd_node_get_string(rt->graph) || + strcmp(serd_node_get_string(rt->graph), "http://example.org/")) { FAILF("Bad graph %p\n", rt->graph); } -- cgit v1.2.1