test(sv): add remaining tests

This commit is contained in:
2026-04-12 20:33:35 +02:00
parent 13cf7946bf
commit 5312fcffaa
2 changed files with 93 additions and 3 deletions

View File

@@ -1,7 +1,9 @@
#ifndef CLIBS_STRING_VIEW_H
#define CLIBS_STRING_VIEW_H
#include <assert.h>
#include <malloc.h>
#include <printf.h>
#include <stddef.h>
#include <stdio.h>
#include <string.h>
@@ -198,8 +200,9 @@ StringView sv_new_sized(const char *str, size_t len) {
StringView sv_new(const char *str) { return sv_new_sized(str, strlen(str)); }
StringView sv_drop(StringView sv, size_t n) {
const char *nd = sv.data + n;
return (StringView){
.data = sv.data + n,
.data = nd < sv.end ? nd : sv.end,
.end = sv.end,
};
}
@@ -212,9 +215,10 @@ StringView sv_take(StringView sv, size_t n) {
}
StringView sv_shrink(StringView sv, size_t n) {
const char *ne = sv.end - n;
return (StringView){
.data = sv.data,
.end = sv.end - n,
.end = ne > sv.data ? ne : sv.data,
};
}
@@ -344,6 +348,10 @@ char *sv_concat_with_sep(const StringView *svs, size_t n, StringView sep) {
write_head += l;
}
*write_head = '\0';
assert(write_head - data == len - 1);
return data;
}