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-06-21 18:12:03 +0200
commit4a9e954904faedc5da79c0f549722e2c4eb73a29 (patch)
treebbd19499766c280d571660c2f3b44ab5f40b6a61 /tests
parent10bf7f7ce76d8b679449bfc9ba8b1814a79407fb (diff)
downloadserd-4a9e954904faedc5da79c0f549722e2c4eb73a29.tar.gz
serd-4a9e954904faedc5da79c0f549722e2c4eb73a29.tar.bz2
serd-4a9e954904faedc5da79c0f549722e2c4eb73a29.zip
Add SerdSink interface and hide individual function implementations
Diffstat (limited to 'tests')
-rw-r--r--tests/serd_test.c44
1 files changed, 20 insertions, 24 deletions
diff --git a/tests/serd_test.c b/tests/serd_test.c
index fdcdbd2c..e16f4645 100644
--- a/tests/serd_test.c
+++ b/tests/serd_test.c
@@ -109,14 +109,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_get_handle(reader) == rt);
assert(f);
SerdStatus st = serd_reader_start_stream(reader,
@@ -172,6 +171,7 @@ test_read_chunks(void)
serd_reader_free(reader);
fclose(f);
+ free(rt);
}
static void
@@ -540,9 +540,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_get_env(writer) == env);
uint8_t buf[] = { 0xEF, 0xBF, 0xBD, 0 };
@@ -562,8 +563,8 @@ test_writer(const char* const path)
{ s, p, NULL },
{ NULL, NULL, NULL } };
for (unsigned 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]));
}
@@ -580,27 +581,23 @@ test_writer(const char* const path)
{ s, p, o },
{ s, p, o } };
for (unsigned 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);
@@ -632,11 +629,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_get_handle(reader) == rt);
SerdNode* g = serd_node_new_string(SERD_URI, "http://example.org/");
serd_reader_set_default_graph(reader, g);
@@ -657,6 +652,7 @@ test_reader(const char* path)
assert(serd_reader_read_string(reader, "This isn't Turtle at all."));
serd_reader_free(reader);
+ free(rt);
}
int