summaryrefslogtreecommitdiff
path: root/tests/string.c
diff options
context:
space:
mode:
authorsteven-na <noreply.github@stvnc.dev>2026-07-28 14:01:17 -0700
committersteven-na <noreply.github@stvnc.dev>2026-07-28 14:01:17 -0700
commit95c5613776c27893c524f93f71980b5cb37adc6f (patch)
tree48557aa89c660f50f5680180d9d725c90480e6c8 /tests/string.c
parent3372ec87759b83e6cc8b73e37a298cb804cbba5a (diff)
string stuff
Diffstat (limited to 'tests/string.c')
-rw-r--r--tests/string.c39
1 files changed, 35 insertions, 4 deletions
diff --git a/tests/string.c b/tests/string.c
index 0e78168..38109a7 100644
--- a/tests/string.c
+++ b/tests/string.c
@@ -24,8 +24,20 @@ Test(string, from_cstring) {
cr_expect(s->alloc_size == 13);
cr_expect(s->len == 13);
- cr_expect(*((u8*)s+STRNG_BASE_POS) == 72);
- cr_expect(*((u8*)s+STRNG_BASE_POS+s->len-1) == 46);
+ cr_expect(*((u8*)s+STRNG_BASE_POS) == 'H');
+ cr_expect(*((u8*)s+STRNG_BASE_POS+s->len-1) == '.');
+
+ smrt_arena_destroy(arena);
+}
+
+Test(string, to_cstring) {
+ smrt_arena_t *arena = smrt_arena_create(KiB(4), KiB(4), false);
+ strng_t *s = strng_from(arena, "Heavy is the head");
+
+ char *c = strng_str(arena, s);
+
+ cr_expect(strlen(c) == 17);
+ cr_expect(strcmp(c, "Heavy is the head") == 0);
smrt_arena_destroy(arena);
}
@@ -38,8 +50,26 @@ Test(string, set_string) {
cr_expect(s->alloc_size == 13);
cr_expect(s->len == 8);
- cr_expect(*((u8*)s+STRNG_BASE_POS) == 76);
- cr_expect(*((u8*)s+STRNG_BASE_POS+s->len-1) == 33);
+ cr_expect(*((u8*)s+STRNG_BASE_POS) == 'L');
+ cr_expect(*((u8*)s+STRNG_BASE_POS+s->len-1) == '!');
+
+ smrt_arena_destroy(arena);
+}
+
+Test(string, string_duplicate) {
+ smrt_arena_t *arena = smrt_arena_create(KiB(4), KiB(4), false);
+
+ strng_t *orig = strng_new(arena, 50);
+ strng_set(orig, "that falls with the weight");
+
+
+ strng_t *dup = strng_dup(arena, orig);
+ printf("%.*s\n", STRNG_FMT(dup));
+
+ cr_expect(dup->alloc_size == 26);
+ cr_expect(dup->len == 26);
+ cr_expect(*((u8*)dup+STRNG_BASE_POS) == 't');
+ cr_expect(*((u8*)dup+STRNG_BASE_POS+dup->len-1) == 't');
smrt_arena_destroy(arena);
}
@@ -51,6 +81,7 @@ Test(string, format_and_copy_string) {
char *buffer = SMRTA_ALLOC_ARRAY(arena, char, s->len+1);
u64 copied = snprintf(buffer, s->len+1, "%.*s", STRNG_FMT(s));
+
cr_expect(copied == 13);
cr_expect(strcmp(buffer, "Hello, world.") == 0);