aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/uri.c2
-rw-r--r--tests/serd_test.c8
2 files changed, 8 insertions, 2 deletions
diff --git a/src/uri.c b/src/uri.c
index 3294f96e..8f3bb997 100644
--- a/src/uri.c
+++ b/src/uri.c
@@ -325,7 +325,7 @@ merge(SerdChunk* base, SerdChunk* path)
const uint8_t* begin = remove_dot_segments(path->buf, path->len, &up);
const uint8_t* end = path->buf + path->len;
- if (base->buf && base->len > 0) {
+ if (base->len) {
// Find the up'th last slash
const uint8_t* base_last = (base->buf + base->len - 1);
++up;
diff --git a/tests/serd_test.c b/tests/serd_test.c
index 259f244a..268f1a85 100644
--- a/tests/serd_test.c
+++ b/tests/serd_test.c
@@ -398,7 +398,9 @@ main(void)
SerdNode base = serd_node_new_uri_from_string(USTR("http://example.org/"),
NULL, &base_uri);
SerdNode nil = serd_node_new_uri_from_string(NULL, &base_uri, NULL);
- if (nil.type != SERD_URI || strcmp((const char*)nil.buf, (const char*)base.buf)) {
+ SerdNode nil2 = serd_node_new_uri_from_string(USTR(""), &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)) {
return failure("URI %s != base %s\n", nil.buf, base.buf);
}
serd_node_free(&base);
@@ -416,6 +418,10 @@ main(void)
return failure("Set base URI to %s\n", node.buf);
}
+ if (!serd_node_equals(serd_env_get_base_uri(env, NULL), &node)) {
+ return failure("Base URI mismatch\n");
+ }
+
SerdChunk prefix, suffix;
if (!serd_env_expand(env, &b, &prefix, &suffix)) {
return failure("Expanded invalid curie %s\n", b.buf);