fix(string_view): cleanup memmcpy line artifacts

This commit is contained in:
2026-04-12 17:17:57 +02:00
parent a2a91bbce9
commit 13cf7946bf
3 changed files with 35 additions and 4 deletions

View File

@@ -19,7 +19,8 @@ if(BUILD_TESTING)
find_package(PkgConfig REQUIRED)
pkg_check_modules(CRITERION REQUIRED IMPORTED_TARGET GLOBAL criterion)
add_executable(tests ${CMAKE_CURRENT_SOURCE_DIR}/test/darr.c)
add_executable(tests ${CMAKE_CURRENT_SOURCE_DIR}/test/darr.c
${CMAKE_CURRENT_SOURCE_DIR}/test/string-view.c)
target_link_libraries(tests c-libs PkgConfig::CRITERION)
add_test(NAME all_tests COMMAND tests)

View File

@@ -340,7 +340,7 @@ char *sv_concat_with_sep(const StringView *svs, size_t n, StringView sep) {
}
size_t l = sv_len(svs[i]);
memcpy(wri
memcpy(write_head, svs[i].data, l);
write_head += l;
}

30
test/string-view.c Normal file
View File

@@ -0,0 +1,30 @@
#include "c-libs/string-view.h"
#include <criterion/criterion.h>
Test(sv, construction) {
const char *data = "abcdefg";
size_t len = strlen(data);
StringView sv1 = sv_new(data);
StringView sv2 = sv_new_sized(data, 2);
cr_assert(sv1.data == data);
cr_assert(sv1.end == data + len);
cr_assert(sv2.data == data);
cr_assert(sv2.end == data + 2);
}
Test(sv, inspection) {
const char *data = "abcdefg";
size_t len = strlen(data);
StringView sv1 = sv_new(data);
char *clone = sv_clone(sv1);
cr_assert(sv_len(sv1) == len);
cr_assert_str_eq(data, clone);
cr_assert(sv_eq(sv1, sv1));
cr_assert_not(sv_eq(sv1, sv_drop(sv1, 1)));
free(clone);
}