aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2018-05-10 19:29:22 +0200
committerDavid Robillard <d@drobilla.net>2020-10-27 13:13:58 +0100
commit79bd5c789631ea51071564813046e34b304e1bc7 (patch)
tree8c58ef6692972eb41d0894a6267d3868217cd2a4 /tests
parentce6fbad56fb6970fe507186d6560ad4fac981d74 (diff)
downloadserd-79bd5c789631ea51071564813046e34b304e1bc7.tar.gz
serd-79bd5c789631ea51071564813046e34b304e1bc7.tar.bz2
serd-79bd5c789631ea51071564813046e34b304e1bc7.zip
Add SerdSink interface and hide individual function implementations
Diffstat (limited to 'tests')
-rw-r--r--tests/read_chunk_test.c5
-rw-r--r--tests/serd_test.c50
2 files changed, 25 insertions, 30 deletions
diff --git a/tests/read_chunk_test.c b/tests/read_chunk_test.c
index 6515df32..3cc32bd9 100644
--- a/tests/read_chunk_test.c
+++ b/tests/read_chunk_test.c
@@ -79,8 +79,9 @@ on_end(void* handle, const SerdNode* node)
int
main(void)
{
- SerdReader* reader = serd_reader_new(
- SERD_TURTLE, NULL, NULL, on_base, on_prefix, on_statement, on_end);
+ const SerdSink sink = {NULL, on_base, on_prefix, on_statement, on_end};
+
+ SerdReader* reader = serd_reader_new(SERD_TURTLE, &sink);
assert(reader);
assert(!serd_reader_start_string(reader,
diff --git a/tests/serd_test.c b/tests/serd_test.c
index 76a535fa..acfd1a7b 100644
--- a/tests/serd_test.c
+++ b/tests/serd_test.c
@@ -126,14 +126,13 @@ test_file_uri(const char* hostname,
static void
test_read_chunks(void)
{
- ReaderTest* const rt = (ReaderTest*)calloc(1, sizeof(ReaderTest));
- FILE* const f = tmpfile();
- static const char null = 0;
- SerdReader* const reader =
- serd_reader_new(SERD_TURTLE, rt, free, NULL, NULL, test_sink, NULL);
+ ReaderTest* const rt = (ReaderTest*)calloc(1, sizeof(ReaderTest));
+ FILE* const f = tmpfile();
+ static const char null = 0;
+ SerdSink sink = {rt, NULL, NULL, test_sink, NULL};
+ SerdReader* reader = serd_reader_new(SERD_TURTLE, &sink);
assert(reader);
- assert(serd_reader_handle(reader) == rt);
assert(f);
SerdStatus st = serd_reader_start_stream(reader,
@@ -184,17 +183,16 @@ test_read_chunks(void)
serd_reader_free(reader);
fclose(f);
+ free(rt);
}
static void
test_read_string(void)
{
ReaderTest* rt = (ReaderTest*)calloc(1, sizeof(ReaderTest));
- SerdReader* reader = serd_reader_new(
- SERD_TURTLE, rt, free,
- NULL, NULL, test_sink, NULL);
+ SerdSink sink = {rt, NULL, NULL, test_sink, NULL};
+ SerdReader* reader = serd_reader_new(SERD_TURTLE, &sink);
assert(reader);
- assert(serd_reader_handle(reader) == rt);
// Test reading a string that ends exactly at the end of input (no newline)
const SerdStatus st =
@@ -512,9 +510,10 @@ test_writer(const char* const path)
SerdNode* lit = serd_node_new_string(SERD_LITERAL, "hello");
- assert(serd_writer_set_base_uri(writer, lit));
- assert(serd_writer_set_prefix(writer, lit, lit));
- assert(serd_writer_end_anon(writer, NULL));
+ const SerdSink* iface = serd_writer_get_sink(writer);
+ assert(iface->base(iface->handle, lit));
+ assert(iface->prefix(iface->handle, lit, lit));
+ assert(iface->end(iface->handle, NULL));
assert(serd_writer_env(writer) == env);
uint8_t buf[] = { 0xEF, 0xBF, 0xBD, 0 };
@@ -534,8 +533,8 @@ test_writer(const char* const path)
{ s, p, NULL },
{ NULL, NULL, NULL } };
for (size_t i = 0; i < sizeof(junk) / (sizeof(SerdNode*) * 5); ++i) {
- assert(serd_writer_write_statement(
- writer, 0, NULL,
+ assert(iface->statement(
+ iface->handle, 0, NULL,
junk[i][0], junk[i][1], junk[i][2]));
}
@@ -552,27 +551,23 @@ test_writer(const char* const path)
{ s, p, o },
{ s, p, o } };
for (size_t i = 0; i < sizeof(good) / (sizeof(SerdNode*) * 5); ++i) {
- assert(!serd_writer_write_statement(
- writer, 0, NULL,
- good[i][0], good[i][1], good[i][2]));
+ assert(!iface->statement(
+ iface->handle, 0, NULL, good[i][0], good[i][1], good[i][2]));
}
// 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_new_string(SERD_LITERAL, bad_str);
SerdNode* bad_uri = serd_node_new_string(SERD_URI, bad_str);
- assert(!serd_writer_write_statement(
- writer, 0, NULL, s, p, bad_lit));
- assert(!serd_writer_write_statement(writer, 0, NULL,
- s, p, bad_uri));
+ assert(!iface->statement(iface->handle, 0, NULL, s, p, bad_lit));
+ assert(!iface->statement(iface->handle, 0, NULL, s, p, bad_uri));
serd_node_free(bad_lit);
serd_node_free(bad_uri);
// Write 1 valid statement
serd_node_free(o);
o = serd_node_new_string(SERD_LITERAL, "hello");
- assert(!serd_writer_write_statement(writer, 0, NULL,
- s, p, o));
+ assert(!iface->statement(iface->handle, 0, NULL, s, p, o));
serd_writer_free(writer);
serd_node_free(lit);
@@ -603,11 +598,9 @@ static void
test_reader(const char* path)
{
ReaderTest* rt = (ReaderTest*)calloc(1, sizeof(ReaderTest));
- SerdReader* reader = serd_reader_new(
- SERD_TURTLE, rt, free,
- NULL, NULL, test_sink, NULL);
+ SerdSink sink = { rt, NULL, NULL, test_sink, NULL };
+ SerdReader* reader = serd_reader_new(SERD_TURTLE, &sink);
assert(reader);
- assert(serd_reader_handle(reader) == rt);
SerdNode* g = serd_node_new_string(SERD_URI, "http://example.org/");
serd_reader_set_default_graph(reader, g);
@@ -667,6 +660,7 @@ test_reader(const char* path)
}
serd_reader_free(reader);
+ free(rt);
}
int