--- a/tests/test_string.c Sun Dec 08 00:13:38 2024 +0100 +++ b/tests/test_string.c Sun Dec 08 00:18:47 2024 +0100 @@ -318,6 +318,25 @@ cx_testing_allocator_destroy(&talloc); } +CX_TEST(test_strcat_more_than_eight) { + cxstring s1 = CX_STR("12"); + cxstring s2 = CX_STR("34"); + cxstring s3 = CX_STR("56"); + cxstring s4 = CX_STR("78"); + cxstring s5 = CX_STR("9a"); + cxstring s6 = CX_STR("bc"); + cxstring s7 = CX_STR("de"); + cxstring s8 = CX_STR("f0"); + cxstring s9 = CX_STR("xy"); + + CX_TEST_DO { + cxmutstr r = cx_strcat(9, s1, s2, s3, s4, s5, s6, s7, s8, s9); + CX_TEST_ASSERT(0 == cx_strcmp(cx_strcast(r), CX_STR("123456789abcdef0xy"))); + ASSERT_ZERO_TERMINATED(r); + cx_strfree(&r); + } +} + CX_TEST(test_strsplit) { cxstring test = CX_STR("this,is,a,csv,string"); size_t capa = 8; @@ -967,6 +986,7 @@ cx_test_register(suite, test_strcmp); cx_test_register(suite, test_strcasecmp); cx_test_register(suite, test_strcat); + cx_test_register(suite, test_strcat_more_than_eight); cx_test_register(suite, test_strsplit); cx_test_register(suite, test_strsplit_a); cx_test_register(suite, test_strtrim);