From 6836db9b00d4f13a78a53cc5bdb0b63028188b55 Mon Sep 17 00:00:00 2001 From: Martin Kagamino Lehoux Date: Fri, 22 Aug 2025 21:38:36 +0200 Subject: fix tests --- .gitignore | 1 + include/str.h | 1 + src/str.c | 2 ++ tests/test_json.c | 18 ++++++++---------- 4 files changed, 12 insertions(+), 10 deletions(-) diff --git a/.gitignore b/.gitignore index 2ec9e4f..81546af 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,4 @@ Release/ test.c out.json +callgrind.out diff --git a/include/str.h b/include/str.h index 3ccd072..781d910 100644 --- a/include/str.h +++ b/include/str.h @@ -23,3 +23,4 @@ i32 Str_fprint(FILE *w, Str s); StrView Str_view(byte *data, size len); i32 StrView_fprint(FILE *w, StrView s); +Str StrView_copy(Arena *a, StrView s); diff --git a/src/str.c b/src/str.c index 2899ca9..7efc684 100644 --- a/src/str.c +++ b/src/str.c @@ -41,3 +41,5 @@ StrView Str_view(byte *data, size len) { i32 StrView_fprint(FILE *w, StrView s) { return fprintf(w, "%.*s", (i32)s.len, s.data); } + +Str StrView_copy(Arena *a, StrView s) { return Str_copy(a, s.data, s.len); } diff --git a/tests/test_json.c b/tests/test_json.c index 4ef3d5d..d8fa69c 100644 --- a/tests/test_json.c +++ b/tests/test_json.c @@ -54,9 +54,7 @@ i32 test_json_nested_array() { JSON val_1 = *Vec_get(sub_array.as.array, JSON, 0); t_assert(val_1.as.integer == 1); JSON val_2 = *Vec_get(sub_array.as.array, JSON, 1); - Str str = val_2.as.string; - Str expected = S("abc"); - t_assert(Str_equals(str, expected)); + t_assert(Str_equals(StrView_copy(&perm, val_2.as.string), S("abc"))); t_assert_equal(Arena_get_used(perm), 387); return 0; @@ -67,7 +65,7 @@ i32 test_json_string() { JSON js = JSON_parse(&perm, "\"abc\""); - t_assert(Str_equals(js.as.string, S("abc"))); + t_assert(Str_equals(StrView_copy(&perm, js.as.string), S("abc"))); t_assert_equal(Arena_get_used(perm), 3); return 0; @@ -92,8 +90,8 @@ i32 test_json_object() { t_assert_equal(doc.as.object.len, 1); t_assert(Str_equals(*Vec_get(doc.as.object.keys, Str, 0), S("key"))); JSON value = *JSONObject_get(doc.as.object, S("key")); - t_assert(Str_equals(value.as.string, S("value"))); - t_assert_equal(Arena_get_used(perm), 232); + t_assert(Str_equals(StrView_copy(&perm, value.as.string), S("value"))); + t_assert_equal(Arena_get_used(perm), 229); return 0; } @@ -107,7 +105,7 @@ i32 test_json_boolean() { t_assert(a.as.boolean == true); JSON b = *JSONObject_get(doc.as.object, S("b")); t_assert(b.as.boolean == false); - t_assert_equal(Arena_get_used(perm), 226); + t_assert_equal(Arena_get_used(perm), 224); return 0; } @@ -150,8 +148,8 @@ i32 test_json_multiline() { JSON target_size_mb = *JSONObject_get(doc.as.object, S("target_size_mb")); t_assert(target_size_mb.as.integer == 1); JSON generated_at = *JSONObject_get(doc.as.object, S("generated_at")); - t_assert( - Str_equals(generated_at.as.string, S("2025-07-22T10:36:30.974926"))); + t_assert(Str_equals(StrView_copy(&perm, generated_at.as.string), + S("2025-07-22T10:36:30.974926"))); return 0; } @@ -201,7 +199,7 @@ i32 test_json_complex_multiline() { JSON metadata = *JSONObject_get(doc.as.object, S("metadata")); JSON preferences = *JSONObject_get(metadata.as.object, S("preferences")); JSON theme = *JSONObject_get(preferences.as.object, S("theme")); - t_assert(Str_equals(theme.as.string, S("auto"))); + t_assert(Str_equals(StrView_copy(&perm, theme.as.string), S("auto"))); return 0; } -- cgit v1.3