Thu, 27 Nov 2025 21:39:20 +0100
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);