--- a/tests/test_buffer.c Thu Dec 11 23:47:46 2025 +0100 +++ b/tests/test_buffer.c Fri Dec 12 15:07:38 2025 +0100 @@ -956,6 +956,24 @@ cxBufferDestroy(&buf); } +CX_TEST(test_buffer_append_string) { + CxBuffer buf; + cxBufferInit(&buf, NULL, 16, cxDefaultAllocator, CX_BUFFER_AUTO_EXTEND); + memcpy(buf.space, "prepXXXX\0\0\0\0\0\0\0\0", 16); + buf.capacity = 8; + buf.size = 6; + buf.pos = 4; + CX_TEST_DO { + size_t written = cxBufferAppendString(&buf, "testing"); + CX_TEST_ASSERT(written == 7); + CX_TEST_ASSERT(buf.size == 13); + CX_TEST_ASSERT(buf.pos == 4); + CX_TEST_ASSERT(buf.capacity >= 13); + CX_TEST_ASSERT(0 == memcmp(buf.space, "prepXXtesting", 13)); + } + cxBufferDestroy(&buf); +} + CX_TEST(test_buffer_put_fit) { CxBuffer buf; cxBufferInit(&buf, NULL, 16, cxDefaultAllocator, CX_BUFFER_DEFAULT); @@ -1485,6 +1503,7 @@ cx_test_register(suite, test_buffer_write_multibyte_extend); cx_test_register(suite, test_buffer_write_copy_on_write); cx_test_register(suite, test_buffer_append); + cx_test_register(suite, test_buffer_append_string); cx_test_register(suite, test_buffer_put_fit); cx_test_register(suite, test_buffer_put_discard); cx_test_register(suite, test_buffer_put_extend);