tests/test_buffer.c

changeset 1576
7e19168d49d1
parent 1575
dde0c67a449b
--- 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);

mercurial