summaryrefslogtreecommitdiff
path: root/test/parse.c
diff options
context:
space:
mode:
authorJesper Jensen <jesper@jnsn.dev>2025-03-23 14:40:51 +0100
committerJesper Jensen <jesper@jnsn.dev>2025-03-23 14:40:51 +0100
commit50da512936a9af6ad9aa808531af8f316a381dd4 (patch)
tree385253a4db800cabf3aae93693ee53ce7f6e52b8 /test/parse.c
parent6e1eaaf13a13584294c6a090ef40500cd786f56f (diff)
Start expirimenting with some real xml
Diffstat (limited to 'test/parse.c')
-rw-r--r--test/parse.c36
1 files changed, 36 insertions, 0 deletions
diff --git a/test/parse.c b/test/parse.c
index 07dbbfa..328bfd3 100644
--- a/test/parse.c
+++ b/test/parse.c
@@ -36,6 +36,42 @@ int main(int argc, char **argv) {
{
struct Tree a;
size_t *chunks = NULL;
+ if(parse_string("<root> </root>", &a, &chunks) != 0) return fail();
+ if(a.adj.stride != 1) return fail();
+ if(a.len != 1) return fail();
+ nid expected[] = {
+ 0,
+ };
+ if(memcmp(a.adj.data, expected, sizeof(expected)) != 0) return fail();
+
+ // Verify chunk offsets
+ if(chunks[0] != 0) return fail();
+
+ free(chunks);
+ free(a.adj.data);
+ }
+
+ {
+ struct Tree a;
+ size_t *chunks = NULL;
+ if(parse_string("<root>\n</root>", &a, &chunks) != 0) return fail();
+ if(a.adj.stride != 1) return fail();
+ if(a.len != 1) return fail();
+ nid expected[] = {
+ 0,
+ };
+ if(memcmp(a.adj.data, expected, sizeof(expected)) != 0) return fail();
+
+ // Verify chunk offsets
+ if(chunks[0] != 0) return fail();
+
+ free(chunks);
+ free(a.adj.data);
+ }
+
+ {
+ struct Tree a;
+ size_t *chunks = NULL;
if(parse_string("<root><a></a><b></b></root>", &a, &chunks) != 0) return fail();
if(a.adj.stride != 2) return fail();
if(a.len != 3) return fail();