add test case for cxBufferPop() default tip

Thu, 27 Nov 2025 21:39:20 +0100

author
Mike Becker <universe@uap-core.de>
date
Thu, 27 Nov 2025 21:39:20 +0100
changeset 1517
1fe3df1c7c67
parent 1516
95b094472e9a

add test case for cxBufferPop()

tests/test_buffer.c file | annotate | diff | comparison | revisions
--- a/tests/test_buffer.c	Wed Nov 26 23:35:25 2025 +0100
+++ b/tests/test_buffer.c	Thu Nov 27 21:39:20 2025 +0100
@@ -1584,6 +1584,42 @@
     cxBufferDestroy(&target);
 }
 
+CX_TEST(test_buffer_pop) {
+    CxBuffer buf;
+    cxBufferInit(&buf, NULL, 16, cxDefaultAllocator, CX_BUFFER_DEFAULT);
+    cxBufferPutString(&buf, "teststring");
+    CX_TEST_DO {
+        CX_TEST_ASSERT(buf.pos == 10);
+        CX_TEST_ASSERT(buf.size == 10);
+        CX_TEST_ASSERT(cxBufferPop(&buf, 1, 3) == 3);
+        CX_TEST_ASSERT(buf.pos == 7);
+        CX_TEST_ASSERT(buf.size == 7);
+        CX_TEST_ASSERT(cxBufferPop(&buf, 2, 2) == 2);
+        CX_TEST_ASSERT(buf.pos == 3);
+        CX_TEST_ASSERT(buf.size == 3);
+        cxBufferPutString(&buf, "1234");
+        CX_TEST_ASSERT(buf.pos == 7);
+        CX_TEST_ASSERT(buf.size == 7);
+        buf.pos = 3;
+        CX_TEST_ASSERT(cxBufferPop(&buf, 2, 1) == 1);
+        CX_TEST_ASSERT(buf.pos == 3);
+        CX_TEST_ASSERT(buf.size == 5);
+        CX_TEST_ASSERT(cxBufferPop(&buf, 1, 3) == 3);
+        CX_TEST_ASSERT(buf.pos == 2);
+        CX_TEST_ASSERT(buf.size == 2);
+        cxBufferPut(&buf, 'c');
+        CX_TEST_ASSERT(buf.pos == 3);
+        CX_TEST_ASSERT(buf.size == 3);
+        CX_TEST_ASSERT(cxBufferPop(&buf, 2, 2) == 1);
+        CX_TEST_ASSERT(buf.pos == 1);
+        CX_TEST_ASSERT(buf.size == 1);
+        CX_TEST_ASSERT(cxBufferPop(&buf, 1, 3) == 1);
+        CX_TEST_ASSERT(buf.pos == 0);
+        CX_TEST_ASSERT(buf.size == 0);
+    }
+    cxBufferDestroy(&buf);
+}
+
 CX_TEST(test_buffer_flush) {
     CxBuffer buf, target;
     cxBufferInit(&target, NULL, 8, cxDefaultAllocator, CX_BUFFER_AUTO_EXTEND);
@@ -1798,6 +1834,7 @@
     cx_test_register(suite, test_buffer_write_flush_misaligned);
     cx_test_register(suite, test_buffer_write_flush_target_full);
     cx_test_register(suite, test_buffer_write_flush_multibyte_target_full);
+    cx_test_register(suite, test_buffer_pop);
     cx_test_register(suite, test_buffer_flush);
     cx_test_register(suite, test_buffer_get);
     cx_test_register(suite, test_buffer_get_eof);

mercurial