1215 cxBufferInit(&target, NULL, 8, cxDefaultAllocator, CX_BUFFER_AUTO_EXTEND); |
1215 cxBufferInit(&target, NULL, 8, cxDefaultAllocator, CX_BUFFER_AUTO_EXTEND); |
1216 cxBufferInit(&buf, NULL, 8, cxDefaultAllocator, CX_BUFFER_AUTO_EXTEND); |
1216 cxBufferInit(&buf, NULL, 8, cxDefaultAllocator, CX_BUFFER_AUTO_EXTEND); |
1217 cxBufferPutString(&buf, "prep"); |
1217 cxBufferPutString(&buf, "prep"); |
1218 CX_TEST_DO { |
1218 CX_TEST_DO { |
1219 CxBufferFlushConfig flush; |
1219 CxBufferFlushConfig flush; |
1220 flush.threshold = 12; |
1220 flush.threshold = 16; |
1221 flush.blksize = 32; |
1221 flush.blksize = 32; |
1222 flush.blkmax = 1; |
1222 flush.blkmax = 1; |
1223 flush.target = ⌖ |
1223 flush.target = ⌖ |
1224 flush.wfunc = cxBufferWriteFunc; |
1224 flush.wfunc = cxBufferWriteFunc; |
1225 CX_TEST_ASSERT(0 == cxBufferEnableFlushing(&buf, flush)); |
1225 CX_TEST_ASSERT(0 == cxBufferEnableFlushing(&buf, flush)); |
1226 size_t written = cxBufferWrite("foobar", 1, 6, &buf); |
1226 size_t written = cxBufferWrite("foobar", 1, 6, &buf); |
1227 CX_TEST_ASSERT(written == 6); |
1227 CX_TEST_ASSERT(written == 6); |
1228 CX_TEST_ASSERT(buf.pos == 10); |
1228 CX_TEST_ASSERT(buf.pos == 10); |
1229 CX_TEST_ASSERT(buf.size == 10); |
1229 CX_TEST_ASSERT(buf.size == 10); |
1230 CX_TEST_ASSERT(buf.capacity >= 10); |
1230 CX_TEST_ASSERT(buf.capacity == 16); |
1231 CX_TEST_ASSERT(buf.capacity <= 12); |
|
1232 CX_TEST_ASSERT(target.pos == 0); |
1231 CX_TEST_ASSERT(target.pos == 0); |
1233 CX_TEST_ASSERT(target.size == 0); |
1232 CX_TEST_ASSERT(target.size == 0); |
1234 written = cxBufferWrite("hello", 1, 5, &buf); |
1233 written = cxBufferWrite("hello world", 1, 11, &buf); |
1235 CX_TEST_ASSERT(written == 5); |
1234 CX_TEST_ASSERT(written == 11); |
1236 CX_TEST_ASSERT(buf.pos == 5); |
1235 CX_TEST_ASSERT(buf.pos == 11); |
1237 CX_TEST_ASSERT(buf.size == 5); |
1236 CX_TEST_ASSERT(buf.size == 11); |
1238 CX_TEST_ASSERT(buf.capacity <= 12); |
1237 CX_TEST_ASSERT(buf.capacity == 16); |
1239 CX_TEST_ASSERT(target.pos == 10); |
1238 CX_TEST_ASSERT(target.pos == 10); |
1240 CX_TEST_ASSERT(target.size == 10); |
1239 CX_TEST_ASSERT(target.size == 10); |
1241 CX_TEST_ASSERT(0 == memcmp(buf.space, "hello", 5)); |
1240 CX_TEST_ASSERT(0 == memcmp(buf.space, "hello", 5)); |
1242 CX_TEST_ASSERT(0 == memcmp(target.space, "prepfoobar", 10)); |
1241 CX_TEST_ASSERT(0 == memcmp(target.space, "prepfoobar", 10)); |
1243 } |
1242 } |