From e5a5469c5ea0df72c5e0bb6f742923ba692ea7f8 Mon Sep 17 00:00:00 2001 From: Jesper Jensen Date: Sat, 29 Mar 2025 23:28:17 +0100 Subject: Separate the tree expander out --- test/parse.c | 30 +++++++++++++++++++++--------- 1 file changed, 21 insertions(+), 9 deletions(-) (limited to 'test') diff --git a/test/parse.c b/test/parse.c index 328bfd3..e1474cd 100644 --- a/test/parse.c +++ b/test/parse.c @@ -17,7 +17,7 @@ int main(int argc, char **argv) { { struct Tree a; - size_t *chunks = NULL; + ssize_t *chunks = NULL; if(parse_string("", &a, &chunks) != 0) return fail(); if(a.adj.stride != 1) return fail(); if(a.len != 1) return fail(); @@ -28,6 +28,7 @@ int main(int argc, char **argv) { // Verify chunk offsets if(chunks[0] != 0) return fail(); + if(chunks[1] != 6) return fail(); free(chunks); free(a.adj.data); @@ -35,7 +36,7 @@ int main(int argc, char **argv) { { struct Tree a; - size_t *chunks = NULL; + ssize_t *chunks = NULL; if(parse_string(" ", &a, &chunks) != 0) return fail(); if(a.adj.stride != 1) return fail(); if(a.len != 1) return fail(); @@ -46,6 +47,7 @@ int main(int argc, char **argv) { // Verify chunk offsets if(chunks[0] != 0) return fail(); + if(chunks[1] != 7) return fail(); free(chunks); free(a.adj.data); @@ -53,7 +55,7 @@ int main(int argc, char **argv) { { struct Tree a; - size_t *chunks = NULL; + ssize_t *chunks = NULL; if(parse_string("\n", &a, &chunks) != 0) return fail(); if(a.adj.stride != 1) return fail(); if(a.len != 1) return fail(); @@ -64,6 +66,7 @@ int main(int argc, char **argv) { // Verify chunk offsets if(chunks[0] != 0) return fail(); + if(chunks[1] != 7) return fail(); free(chunks); free(a.adj.data); @@ -71,7 +74,7 @@ int main(int argc, char **argv) { { struct Tree a; - size_t *chunks = NULL; + ssize_t *chunks = NULL; if(parse_string("", &a, &chunks) != 0) return fail(); if(a.adj.stride != 2) return fail(); if(a.len != 3) return fail(); @@ -85,7 +88,10 @@ int main(int argc, char **argv) { // Verify chunk offsets if(chunks[0] != 0) return fail(); if(chunks[1] != 6) return fail(); - if(chunks[2] != 13) return fail(); + if(chunks[2] != 9) return fail(); + if(chunks[3] != 13) return fail(); + if(chunks[4] != 16) return fail(); + if(chunks[5] != 20) return fail(); free(chunks); free(a.adj.data); @@ -93,7 +99,7 @@ int main(int argc, char **argv) { { struct Tree a; - size_t *chunks = NULL; + ssize_t *chunks = NULL; if(parse_string("", &a, &chunks) != 0) return fail(); if(a.adj.stride != 2) return fail(); if(a.len != 4) return fail(); @@ -109,7 +115,11 @@ int main(int argc, char **argv) { if(chunks[0] != 0) return fail(); if(chunks[1] != 6) return fail(); if(chunks[2] != 9) return fail(); - if(chunks[3] != 20) return fail(); + if(chunks[3] != 12) return fail(); + if(chunks[4] != 16) return fail(); + if(chunks[5] != 20) return fail(); + if(chunks[6] != 23) return fail(); + if(chunks[7] != 27) return fail(); free(chunks); free(a.adj.data); @@ -118,7 +128,7 @@ int main(int argc, char **argv) { // We forgot to close the open tag { struct Tree a; - size_t *chunks = NULL; + ssize_t *chunks = NULL; fflush(stdout); if(parse_string("", &a, &chunks) != 1) return fail(); fflush(stdout); @@ -127,7 +137,7 @@ int main(int argc, char **argv) { // Test self-closing tag { struct Tree a; - size_t *chunks = NULL; + ssize_t *chunks = NULL; fflush(stdout); if(parse_string("", &a, &chunks) != 0) return fail(); if(a.adj.stride != 1) return fail(); @@ -141,6 +151,8 @@ int main(int argc, char **argv) { // Verify chunk offsets if(chunks[0] != 0) return fail(); if(chunks[1] != 6) return fail(); + if(chunks[2] != 9) return fail(); + if(chunks[3] != 11) return fail(); free(chunks); free(a.adj.data); -- cgit v1.2.3