Fri, 10 Oct 2025 12:26:43 +0200
assert instead of assume sorted property in debug builds
| 789 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 1 | /* | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 2 | * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 3 | * | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 4 | * Copyright 2023 Mike Becker, Olaf Wintermann All rights reserved. | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 5 | * | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 6 | * Redistribution and use in source and binary forms, with or without | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 7 | * modification, are permitted provided that the following conditions are met: | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 8 | * | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 9 | * 1. Redistributions of source code must retain the above copyright | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 10 | * notice, this list of conditions and the following disclaimer. | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 11 | * | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 12 | * 2. Redistributions in binary form must reproduce the above copyright | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 13 | * notice, this list of conditions and the following disclaimer in the | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 14 | * documentation and/or other materials provided with the distribution. | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 15 | * | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 16 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 17 | * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 18 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 19 | * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 20 | * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 21 | * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 22 | * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 23 | * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 24 | * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 25 | * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 26 | * POSSIBILITY OF SUCH DAMAGE. | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 27 | */ | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 28 | |
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 29 | #include "cx/test.h" | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 30 | #include "util_allocator.h" | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 31 | |
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 32 | #include "cx/buffer.h" | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 33 | |
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 34 | CX_TEST(test_buffer_init_wrap_space) { | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 35 | CxTestingAllocator talloc; | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 36 | cx_testing_allocator_init(&talloc); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 37 | CxAllocator *alloc = &talloc.base; | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 38 | CX_TEST_DO { | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 39 | CxBuffer buf; | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 40 | void *space = cxMalloc(alloc, 16); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 41 | cxBufferInit(&buf, space, 16, alloc, CX_BUFFER_DEFAULT); | 
| 1110 | 42 | CX_TEST_ASSERT(buf.flush == NULL); | 
| 789 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 43 | CX_TEST_ASSERT(buf.space == space); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 44 | CX_TEST_ASSERT((buf.flags & CX_BUFFER_AUTO_EXTEND) == 0); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 45 | CX_TEST_ASSERT((buf.flags & CX_BUFFER_FREE_CONTENTS) == 0); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 46 | CX_TEST_ASSERT(buf.pos == 0); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 47 | CX_TEST_ASSERT(buf.size == 0); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 48 | CX_TEST_ASSERT(buf.capacity == 16); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 49 | CX_TEST_ASSERT(buf.allocator == alloc); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 50 | cxBufferDestroy(&buf); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 51 | CX_TEST_ASSERT(!cx_testing_allocator_verify(&talloc)); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 52 | cxFree(alloc, space); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 53 | CX_TEST_ASSERT(cx_testing_allocator_verify(&talloc)); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 54 | } | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 55 | cx_testing_allocator_destroy(&talloc); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 56 | } | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 57 | |
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 58 | CX_TEST(test_buffer_init_wrap_space_auto_extend) { | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 59 | CxTestingAllocator talloc; | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 60 | cx_testing_allocator_init(&talloc); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 61 | CxAllocator *alloc = &talloc.base; | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 62 | CX_TEST_DO { | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 63 | CxBuffer buf; | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 64 | void *space = cxMalloc(alloc, 16); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 65 | cxBufferInit(&buf, space, 16, alloc, CX_BUFFER_AUTO_EXTEND); | 
| 1110 | 66 | CX_TEST_ASSERT(buf.flush == NULL); | 
| 789 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 67 | CX_TEST_ASSERT(buf.space == space); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 68 | CX_TEST_ASSERT((buf.flags & CX_BUFFER_AUTO_EXTEND) == CX_BUFFER_AUTO_EXTEND); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 69 | CX_TEST_ASSERT((buf.flags & CX_BUFFER_FREE_CONTENTS) == 0); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 70 | CX_TEST_ASSERT(buf.pos == 0); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 71 | CX_TEST_ASSERT(buf.size == 0); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 72 | CX_TEST_ASSERT(buf.capacity == 16); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 73 | CX_TEST_ASSERT(buf.allocator == alloc); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 74 | cxBufferDestroy(&buf); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 75 | CX_TEST_ASSERT(!cx_testing_allocator_verify(&talloc)); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 76 | cxFree(alloc, space); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 77 | CX_TEST_ASSERT(cx_testing_allocator_verify(&talloc)); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 78 | } | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 79 | cx_testing_allocator_destroy(&talloc); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 80 | } | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 81 | |
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 82 | CX_TEST(test_buffer_init_wrap_space_auto_free) { | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 83 | CxTestingAllocator talloc; | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 84 | cx_testing_allocator_init(&talloc); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 85 | CxAllocator *alloc = &talloc.base; | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 86 | CX_TEST_DO { | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 87 | CxBuffer buf; | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 88 | void *space = cxMalloc(alloc, 16); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 89 | cxBufferInit(&buf, space, 16, alloc, CX_BUFFER_FREE_CONTENTS); | 
| 1110 | 90 | CX_TEST_ASSERT(buf.flush == NULL); | 
| 789 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 91 | CX_TEST_ASSERT(buf.space == space); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 92 | CX_TEST_ASSERT((buf.flags & CX_BUFFER_AUTO_EXTEND) == 0); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 93 | CX_TEST_ASSERT((buf.flags & CX_BUFFER_FREE_CONTENTS) == CX_BUFFER_FREE_CONTENTS); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 94 | CX_TEST_ASSERT(buf.pos == 0); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 95 | CX_TEST_ASSERT(buf.size == 0); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 96 | CX_TEST_ASSERT(buf.capacity == 16); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 97 | CX_TEST_ASSERT(buf.allocator == alloc); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 98 | CX_TEST_ASSERT(!cx_testing_allocator_verify(&talloc)); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 99 | cxBufferDestroy(&buf); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 100 | CX_TEST_ASSERT(cx_testing_allocator_verify(&talloc)); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 101 | } | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 102 | cx_testing_allocator_destroy(&talloc); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 103 | } | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 104 | |
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 105 | CX_TEST(test_buffer_init_fresh_space) { | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 106 | CxTestingAllocator talloc; | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 107 | cx_testing_allocator_init(&talloc); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 108 | CxAllocator *alloc = &talloc.base; | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 109 | CX_TEST_DO { | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 110 | CxBuffer buf; | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 111 | cxBufferInit(&buf, NULL, 8, alloc, CX_BUFFER_DEFAULT); | 
| 1110 | 112 | CX_TEST_ASSERT(buf.flush == NULL); | 
| 789 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 113 | CX_TEST_ASSERT(buf.space != NULL); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 114 | CX_TEST_ASSERT((buf.flags & CX_BUFFER_AUTO_EXTEND) == 0); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 115 | CX_TEST_ASSERT((buf.flags & CX_BUFFER_FREE_CONTENTS) == CX_BUFFER_FREE_CONTENTS); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 116 | CX_TEST_ASSERT(buf.pos == 0); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 117 | CX_TEST_ASSERT(buf.size == 0); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 118 | CX_TEST_ASSERT(buf.capacity == 8); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 119 | CX_TEST_ASSERT(buf.allocator == alloc); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 120 | CX_TEST_ASSERT(!cx_testing_allocator_verify(&talloc)); // space is still allocated | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 121 | cxBufferDestroy(&buf); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 122 | CX_TEST_ASSERT(cx_testing_allocator_verify(&talloc)); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 123 | } | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 124 | cx_testing_allocator_destroy(&talloc); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 125 | } | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 126 | |
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 127 | CX_TEST(test_buffer_init_on_heap) { | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 128 | CxTestingAllocator talloc; | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 129 | cx_testing_allocator_init(&talloc); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 130 | CxAllocator *alloc = &talloc.base; | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 131 | CX_TEST_DO { | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 132 | CxBuffer *buf; | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 133 | void *space = cxMalloc(alloc, 16); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 134 | buf = cxBufferCreate(space, 16, alloc, CX_BUFFER_FREE_CONTENTS); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 135 | CX_TEST_ASSERT(buf != NULL); | 
| 1110 | 136 | CX_TEST_ASSERT(buf->flush == NULL); | 
| 789 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 137 | CX_TEST_ASSERT(buf->space == space); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 138 | CX_TEST_ASSERT((buf->flags & CX_BUFFER_AUTO_EXTEND) == 0); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 139 | CX_TEST_ASSERT((buf->flags & CX_BUFFER_FREE_CONTENTS) == CX_BUFFER_FREE_CONTENTS); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 140 | CX_TEST_ASSERT(buf->pos == 0); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 141 | CX_TEST_ASSERT(buf->size == 0); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 142 | CX_TEST_ASSERT(buf->capacity == 16); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 143 | CX_TEST_ASSERT(buf->allocator == alloc); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 144 | cxBufferFree(buf); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 145 | CX_TEST_ASSERT(cx_testing_allocator_verify(&talloc)); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 146 | } | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 147 | cx_testing_allocator_destroy(&talloc); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 148 | } | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 149 | |
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 150 | CX_TEST(test_buffer_minimum_capacity_sufficient) { | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 151 | CxTestingAllocator talloc; | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 152 | cx_testing_allocator_init(&talloc); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 153 | CxAllocator *alloc = &talloc.base; | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 154 | CX_TEST_DO { | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 155 | void *space = cxMalloc(alloc, 8); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 156 | CxBuffer buf; | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 157 | cxBufferInit(&buf, space, 8, alloc, CX_BUFFER_FREE_CONTENTS); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 158 | memcpy(space, "Testing", 8); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 159 | buf.size = 8; | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 160 | cxBufferMinimumCapacity(&buf, 6); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 161 | CX_TEST_ASSERT(buf.capacity == 8); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 162 | CX_TEST_ASSERT(buf.size == 8); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 163 | CX_TEST_ASSERT(memcmp(buf.space, "Testing", 8) == 0); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 164 | cxBufferDestroy(&buf); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 165 | CX_TEST_ASSERT(cx_testing_allocator_verify(&talloc)); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 166 | } | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 167 | cx_testing_allocator_destroy(&talloc); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 168 | } | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 169 | |
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 170 | CX_TEST(test_buffer_minimum_capacity_extend) { | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 171 | CxTestingAllocator talloc; | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 172 | cx_testing_allocator_init(&talloc); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 173 | CxAllocator *alloc = &talloc.base; | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 174 | CX_TEST_DO { | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 175 | void *space = cxMalloc(alloc, 8); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 176 | CxBuffer buf; | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 177 | cxBufferInit(&buf, space, 8, alloc, CX_BUFFER_FREE_CONTENTS); // NO auto extend! | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 178 | memcpy(space, "Testing", 8); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 179 | buf.size = 8; | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 180 | cxBufferMinimumCapacity(&buf, 16); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 181 | CX_TEST_ASSERT(buf.capacity == 16); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 182 | CX_TEST_ASSERT(buf.size == 8); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 183 | CX_TEST_ASSERT(memcmp(buf.space, "Testing", 8) == 0); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 184 | cxBufferDestroy(&buf); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 185 | CX_TEST_ASSERT(cx_testing_allocator_verify(&talloc)); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 186 | } | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 187 | cx_testing_allocator_destroy(&talloc); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 188 | } | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 189 | |
| 1290 
4ac889e14211
adds cxBufferShrink() - resolves #626
 Mike Becker <universe@uap-core.de> parents: 
1284diff
changeset | 190 | CX_TEST(test_buffer_shrink) { | 
| 
4ac889e14211
adds cxBufferShrink() - resolves #626
 Mike Becker <universe@uap-core.de> parents: 
1284diff
changeset | 191 | CxTestingAllocator talloc; | 
| 
4ac889e14211
adds cxBufferShrink() - resolves #626
 Mike Becker <universe@uap-core.de> parents: 
1284diff
changeset | 192 | cx_testing_allocator_init(&talloc); | 
| 
4ac889e14211
adds cxBufferShrink() - resolves #626
 Mike Becker <universe@uap-core.de> parents: 
1284diff
changeset | 193 | CxAllocator *alloc = &talloc.base; | 
| 
4ac889e14211
adds cxBufferShrink() - resolves #626
 Mike Becker <universe@uap-core.de> parents: 
1284diff
changeset | 194 | CX_TEST_DO { | 
| 
4ac889e14211
adds cxBufferShrink() - resolves #626
 Mike Becker <universe@uap-core.de> parents: 
1284diff
changeset | 195 | CxBuffer buf; | 
| 
4ac889e14211
adds cxBufferShrink() - resolves #626
 Mike Becker <universe@uap-core.de> parents: 
1284diff
changeset | 196 | cxBufferInit(&buf, NULL, 16, alloc, CX_BUFFER_FREE_CONTENTS); | 
| 
4ac889e14211
adds cxBufferShrink() - resolves #626
 Mike Becker <universe@uap-core.de> parents: 
1284diff
changeset | 197 | cxBufferPutString(&buf, "Testing"); | 
| 
4ac889e14211
adds cxBufferShrink() - resolves #626
 Mike Becker <universe@uap-core.de> parents: 
1284diff
changeset | 198 | cxBufferTerminate(&buf); | 
| 
4ac889e14211
adds cxBufferShrink() - resolves #626
 Mike Becker <universe@uap-core.de> parents: 
1284diff
changeset | 199 | CX_TEST_ASSERT(buf.capacity == 16); | 
| 
4ac889e14211
adds cxBufferShrink() - resolves #626
 Mike Becker <universe@uap-core.de> parents: 
1284diff
changeset | 200 | CX_TEST_ASSERT(buf.size == 7); | 
| 
4ac889e14211
adds cxBufferShrink() - resolves #626
 Mike Becker <universe@uap-core.de> parents: 
1284diff
changeset | 201 | cxBufferShrink(&buf, 4); | 
| 
4ac889e14211
adds cxBufferShrink() - resolves #626
 Mike Becker <universe@uap-core.de> parents: 
1284diff
changeset | 202 | CX_TEST_ASSERT(buf.capacity == 11); | 
| 
4ac889e14211
adds cxBufferShrink() - resolves #626
 Mike Becker <universe@uap-core.de> parents: 
1284diff
changeset | 203 | CX_TEST_ASSERT(buf.size == 7); | 
| 
4ac889e14211
adds cxBufferShrink() - resolves #626
 Mike Becker <universe@uap-core.de> parents: 
1284diff
changeset | 204 | CX_TEST_ASSERT(memcmp(buf.space, "Testing", 8) == 0); | 
| 
4ac889e14211
adds cxBufferShrink() - resolves #626
 Mike Becker <universe@uap-core.de> parents: 
1284diff
changeset | 205 | cxBufferDestroy(&buf); | 
| 
4ac889e14211
adds cxBufferShrink() - resolves #626
 Mike Becker <universe@uap-core.de> parents: 
1284diff
changeset | 206 | CX_TEST_ASSERT(cx_testing_allocator_verify(&talloc)); | 
| 
4ac889e14211
adds cxBufferShrink() - resolves #626
 Mike Becker <universe@uap-core.de> parents: 
1284diff
changeset | 207 | } | 
| 
4ac889e14211
adds cxBufferShrink() - resolves #626
 Mike Becker <universe@uap-core.de> parents: 
1284diff
changeset | 208 | cx_testing_allocator_destroy(&talloc); | 
| 
4ac889e14211
adds cxBufferShrink() - resolves #626
 Mike Becker <universe@uap-core.de> parents: 
1284diff
changeset | 209 | } | 
| 
4ac889e14211
adds cxBufferShrink() - resolves #626
 Mike Becker <universe@uap-core.de> parents: 
1284diff
changeset | 210 | |
| 
4ac889e14211
adds cxBufferShrink() - resolves #626
 Mike Becker <universe@uap-core.de> parents: 
1284diff
changeset | 211 | CX_TEST(test_buffer_shrink_copy_on_write) { | 
| 
4ac889e14211
adds cxBufferShrink() - resolves #626
 Mike Becker <universe@uap-core.de> parents: 
1284diff
changeset | 212 | CxTestingAllocator talloc; | 
| 
4ac889e14211
adds cxBufferShrink() - resolves #626
 Mike Becker <universe@uap-core.de> parents: 
1284diff
changeset | 213 | cx_testing_allocator_init(&talloc); | 
| 
4ac889e14211
adds cxBufferShrink() - resolves #626
 Mike Becker <universe@uap-core.de> parents: 
1284diff
changeset | 214 | CxAllocator *alloc = &talloc.base; | 
| 
4ac889e14211
adds cxBufferShrink() - resolves #626
 Mike Becker <universe@uap-core.de> parents: 
1284diff
changeset | 215 | CX_TEST_DO { | 
| 
4ac889e14211
adds cxBufferShrink() - resolves #626
 Mike Becker <universe@uap-core.de> parents: 
1284diff
changeset | 216 | CxBuffer buf; | 
| 
4ac889e14211
adds cxBufferShrink() - resolves #626
 Mike Becker <universe@uap-core.de> parents: 
1284diff
changeset | 217 | const char* space = "Testing"; | 
| 
4ac889e14211
adds cxBufferShrink() - resolves #626
 Mike Becker <universe@uap-core.de> parents: 
1284diff
changeset | 218 | cxBufferInit(&buf, (void*)space, 16, alloc, CX_BUFFER_COPY_ON_WRITE); | 
| 
4ac889e14211
adds cxBufferShrink() - resolves #626
 Mike Becker <universe@uap-core.de> parents: 
1284diff
changeset | 219 | buf.size = 8; | 
| 
4ac889e14211
adds cxBufferShrink() - resolves #626
 Mike Becker <universe@uap-core.de> parents: 
1284diff
changeset | 220 | CX_TEST_ASSERT(buf.capacity == 16); | 
| 
4ac889e14211
adds cxBufferShrink() - resolves #626
 Mike Becker <universe@uap-core.de> parents: 
1284diff
changeset | 221 | cxBufferShrink(&buf, 4); | 
| 
4ac889e14211
adds cxBufferShrink() - resolves #626
 Mike Becker <universe@uap-core.de> parents: 
1284diff
changeset | 222 | CX_TEST_ASSERT(buf.capacity == 16); | 
| 
4ac889e14211
adds cxBufferShrink() - resolves #626
 Mike Becker <universe@uap-core.de> parents: 
1284diff
changeset | 223 | CX_TEST_ASSERT(buf.size == 8); | 
| 
4ac889e14211
adds cxBufferShrink() - resolves #626
 Mike Becker <universe@uap-core.de> parents: 
1284diff
changeset | 224 | CX_TEST_ASSERT(memcmp(buf.space, "Testing", 8) == 0); | 
| 
4ac889e14211
adds cxBufferShrink() - resolves #626
 Mike Becker <universe@uap-core.de> parents: 
1284diff
changeset | 225 | CX_TEST_ASSERT(talloc.alloc_total == 0); | 
| 
4ac889e14211
adds cxBufferShrink() - resolves #626
 Mike Becker <universe@uap-core.de> parents: 
1284diff
changeset | 226 | cxBufferDestroy(&buf); | 
| 
4ac889e14211
adds cxBufferShrink() - resolves #626
 Mike Becker <universe@uap-core.de> parents: 
1284diff
changeset | 227 | CX_TEST_ASSERT(cx_testing_allocator_verify(&talloc)); | 
| 
4ac889e14211
adds cxBufferShrink() - resolves #626
 Mike Becker <universe@uap-core.de> parents: 
1284diff
changeset | 228 | } | 
| 
4ac889e14211
adds cxBufferShrink() - resolves #626
 Mike Becker <universe@uap-core.de> parents: 
1284diff
changeset | 229 | cx_testing_allocator_destroy(&talloc); | 
| 
4ac889e14211
adds cxBufferShrink() - resolves #626
 Mike Becker <universe@uap-core.de> parents: 
1284diff
changeset | 230 | } | 
| 
4ac889e14211
adds cxBufferShrink() - resolves #626
 Mike Becker <universe@uap-core.de> parents: 
1284diff
changeset | 231 | |
| 
4ac889e14211
adds cxBufferShrink() - resolves #626
 Mike Becker <universe@uap-core.de> parents: 
1284diff
changeset | 232 | CX_TEST(test_buffer_shrink_copy_on_extend) { | 
| 
4ac889e14211
adds cxBufferShrink() - resolves #626
 Mike Becker <universe@uap-core.de> parents: 
1284diff
changeset | 233 | CxTestingAllocator talloc; | 
| 
4ac889e14211
adds cxBufferShrink() - resolves #626
 Mike Becker <universe@uap-core.de> parents: 
1284diff
changeset | 234 | cx_testing_allocator_init(&talloc); | 
| 
4ac889e14211
adds cxBufferShrink() - resolves #626
 Mike Becker <universe@uap-core.de> parents: 
1284diff
changeset | 235 | CxAllocator *alloc = &talloc.base; | 
| 
4ac889e14211
adds cxBufferShrink() - resolves #626
 Mike Becker <universe@uap-core.de> parents: 
1284diff
changeset | 236 | CX_TEST_DO { | 
| 
4ac889e14211
adds cxBufferShrink() - resolves #626
 Mike Becker <universe@uap-core.de> parents: 
1284diff
changeset | 237 | CxBuffer buf; | 
| 
4ac889e14211
adds cxBufferShrink() - resolves #626
 Mike Becker <universe@uap-core.de> parents: 
1284diff
changeset | 238 | char space[16] = "Testing"; | 
| 
4ac889e14211
adds cxBufferShrink() - resolves #626
 Mike Becker <universe@uap-core.de> parents: 
1284diff
changeset | 239 | cxBufferInit(&buf, space, 16, alloc, CX_BUFFER_COPY_ON_EXTEND); | 
| 
4ac889e14211
adds cxBufferShrink() - resolves #626
 Mike Becker <universe@uap-core.de> parents: 
1284diff
changeset | 240 | buf.size = 8; | 
| 
4ac889e14211
adds cxBufferShrink() - resolves #626
 Mike Becker <universe@uap-core.de> parents: 
1284diff
changeset | 241 | CX_TEST_ASSERT(buf.capacity == 16); | 
| 
4ac889e14211
adds cxBufferShrink() - resolves #626
 Mike Becker <universe@uap-core.de> parents: 
1284diff
changeset | 242 | cxBufferShrink(&buf, 4); | 
| 
4ac889e14211
adds cxBufferShrink() - resolves #626
 Mike Becker <universe@uap-core.de> parents: 
1284diff
changeset | 243 | CX_TEST_ASSERT(buf.capacity == 16); | 
| 
4ac889e14211
adds cxBufferShrink() - resolves #626
 Mike Becker <universe@uap-core.de> parents: 
1284diff
changeset | 244 | CX_TEST_ASSERT(buf.size == 8); | 
| 
4ac889e14211
adds cxBufferShrink() - resolves #626
 Mike Becker <universe@uap-core.de> parents: 
1284diff
changeset | 245 | CX_TEST_ASSERT(memcmp(buf.space, "Testing", 8) == 0); | 
| 
4ac889e14211
adds cxBufferShrink() - resolves #626
 Mike Becker <universe@uap-core.de> parents: 
1284diff
changeset | 246 | CX_TEST_ASSERT(talloc.alloc_total == 0); | 
| 
4ac889e14211
adds cxBufferShrink() - resolves #626
 Mike Becker <universe@uap-core.de> parents: 
1284diff
changeset | 247 | cxBufferDestroy(&buf); | 
| 
4ac889e14211
adds cxBufferShrink() - resolves #626
 Mike Becker <universe@uap-core.de> parents: 
1284diff
changeset | 248 | CX_TEST_ASSERT(cx_testing_allocator_verify(&talloc)); | 
| 
4ac889e14211
adds cxBufferShrink() - resolves #626
 Mike Becker <universe@uap-core.de> parents: 
1284diff
changeset | 249 | } | 
| 
4ac889e14211
adds cxBufferShrink() - resolves #626
 Mike Becker <universe@uap-core.de> parents: 
1284diff
changeset | 250 | cx_testing_allocator_destroy(&talloc); | 
| 
4ac889e14211
adds cxBufferShrink() - resolves #626
 Mike Becker <universe@uap-core.de> parents: 
1284diff
changeset | 251 | } | 
| 
4ac889e14211
adds cxBufferShrink() - resolves #626
 Mike Becker <universe@uap-core.de> parents: 
1284diff
changeset | 252 | |
| 789 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 253 | CX_TEST(test_buffer_clear) { | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 254 | char space[16]; | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 255 | strcpy(space, "clear test"); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 256 | CxBuffer buf; | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 257 | cxBufferInit(&buf, space, 16, cxDefaultAllocator, CX_BUFFER_DEFAULT); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 258 | CX_TEST_DO { | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 259 | CX_TEST_ASSERT(buf.size == 0); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 260 | // only clear the used part of the buffer | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 261 | cxBufferClear(&buf); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 262 | CX_TEST_ASSERT(0 == memcmp(space, "clear test", 10)); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 263 | buf.size = 5; | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 264 | buf.pos = 3; | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 265 | cxBufferClear(&buf); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 266 | CX_TEST_ASSERT(0 == memcmp(space, "\0\0\0\0\0 test", 10)); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 267 | CX_TEST_ASSERT(buf.size == 0); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 268 | CX_TEST_ASSERT(buf.pos == 0); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 269 | } | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 270 | cxBufferDestroy(&buf); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 271 | } | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 272 | |
| 1024 
8f99f6c28bd3
add copy-on-write feature to UCX buffer - fixes #531
 Mike Becker <universe@uap-core.de> parents: 
1007diff
changeset | 273 | CX_TEST(test_buffer_clear_copy_on_write) { | 
| 
8f99f6c28bd3
add copy-on-write feature to UCX buffer - fixes #531
 Mike Becker <universe@uap-core.de> parents: 
1007diff
changeset | 274 | char space[16]; | 
| 
8f99f6c28bd3
add copy-on-write feature to UCX buffer - fixes #531
 Mike Becker <universe@uap-core.de> parents: 
1007diff
changeset | 275 | strcpy(space, "clear test"); | 
| 
8f99f6c28bd3
add copy-on-write feature to UCX buffer - fixes #531
 Mike Becker <universe@uap-core.de> parents: 
1007diff
changeset | 276 | CxBuffer buf; | 
| 
8f99f6c28bd3
add copy-on-write feature to UCX buffer - fixes #531
 Mike Becker <universe@uap-core.de> parents: 
1007diff
changeset | 277 | cxBufferInit(&buf, space, 16, cxDefaultAllocator, CX_BUFFER_COPY_ON_WRITE); | 
| 
8f99f6c28bd3
add copy-on-write feature to UCX buffer - fixes #531
 Mike Becker <universe@uap-core.de> parents: 
1007diff
changeset | 278 | CX_TEST_DO { | 
| 
8f99f6c28bd3
add copy-on-write feature to UCX buffer - fixes #531
 Mike Becker <universe@uap-core.de> parents: 
1007diff
changeset | 279 | buf.size = 5; | 
| 
8f99f6c28bd3
add copy-on-write feature to UCX buffer - fixes #531
 Mike Becker <universe@uap-core.de> parents: 
1007diff
changeset | 280 | buf.pos = 3; | 
| 
8f99f6c28bd3
add copy-on-write feature to UCX buffer - fixes #531
 Mike Becker <universe@uap-core.de> parents: 
1007diff
changeset | 281 | cxBufferClear(&buf); | 
| 
8f99f6c28bd3
add copy-on-write feature to UCX buffer - fixes #531
 Mike Becker <universe@uap-core.de> parents: 
1007diff
changeset | 282 | CX_TEST_ASSERT(0 == memcmp(space, "clear test", 10)); | 
| 
8f99f6c28bd3
add copy-on-write feature to UCX buffer - fixes #531
 Mike Becker <universe@uap-core.de> parents: 
1007diff
changeset | 283 | CX_TEST_ASSERT(buf.size == 0); | 
| 
8f99f6c28bd3
add copy-on-write feature to UCX buffer - fixes #531
 Mike Becker <universe@uap-core.de> parents: 
1007diff
changeset | 284 | CX_TEST_ASSERT(buf.pos == 0); | 
| 
8f99f6c28bd3
add copy-on-write feature to UCX buffer - fixes #531
 Mike Becker <universe@uap-core.de> parents: 
1007diff
changeset | 285 | } | 
| 
8f99f6c28bd3
add copy-on-write feature to UCX buffer - fixes #531
 Mike Becker <universe@uap-core.de> parents: 
1007diff
changeset | 286 | cxBufferDestroy(&buf); | 
| 
8f99f6c28bd3
add copy-on-write feature to UCX buffer - fixes #531
 Mike Becker <universe@uap-core.de> parents: 
1007diff
changeset | 287 | } | 
| 
8f99f6c28bd3
add copy-on-write feature to UCX buffer - fixes #531
 Mike Becker <universe@uap-core.de> parents: 
1007diff
changeset | 288 | |
| 789 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 289 | CX_TEST(test_buffer_reset) { | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 290 | char space[16]; | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 291 | strcpy(space, "reset test"); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 292 | CxBuffer buf; | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 293 | cxBufferInit(&buf, space, 16, cxDefaultAllocator, CX_BUFFER_DEFAULT); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 294 | CX_TEST_DO { | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 295 | buf.size = 5; | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 296 | buf.pos = 3; | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 297 | cxBufferReset(&buf); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 298 | CX_TEST_ASSERT(0 == memcmp(space, "reset test", 10)); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 299 | CX_TEST_ASSERT(buf.size == 0); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 300 | CX_TEST_ASSERT(buf.pos == 0); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 301 | } | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 302 | cxBufferDestroy(&buf); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 303 | } | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 304 | |
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 305 | CX_TEST(test_buffer_seek_set_zero) { | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 306 | CxBuffer buf; | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 307 | cxBufferInit(&buf, NULL, 16, cxDefaultAllocator, CX_BUFFER_DEFAULT); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 308 | buf.size = 6; | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 309 | buf.pos = 3; | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 310 | CX_TEST_DO { | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 311 | int result = cxBufferSeek(&buf, 0, SEEK_SET); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 312 | CX_TEST_ASSERT(result == 0); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 313 | CX_TEST_ASSERT(buf.pos == 0); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 314 | } | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 315 | cxBufferDestroy(&buf); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 316 | } | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 317 | |
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 318 | CX_TEST(test_buffer_seek_set_valid) { | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 319 | CxBuffer buf; | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 320 | cxBufferInit(&buf, NULL, 16, cxDefaultAllocator, CX_BUFFER_DEFAULT); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 321 | buf.size = 6; | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 322 | buf.pos = 3; | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 323 | CX_TEST_DO { | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 324 | int result = cxBufferSeek(&buf, 5, SEEK_SET); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 325 | CX_TEST_ASSERT(result == 0); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 326 | CX_TEST_ASSERT(buf.pos == 5); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 327 | } | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 328 | cxBufferDestroy(&buf); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 329 | } | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 330 | |
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 331 | CX_TEST(test_buffer_seek_set_invalid) { | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 332 | CxBuffer buf; | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 333 | cxBufferInit(&buf, NULL, 16, cxDefaultAllocator, CX_BUFFER_DEFAULT); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 334 | buf.size = 6; | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 335 | buf.pos = 3; | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 336 | CX_TEST_DO { | 
| 1007 
81b2986d2b04
fix that cxBufferSeek() cannot move pos past the end - fixes #523
 Mike Becker <universe@uap-core.de> parents: 
1006diff
changeset | 337 | int result = cxBufferSeek(&buf, 7, SEEK_SET); | 
| 789 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 338 | CX_TEST_ASSERT(result != 0); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 339 | CX_TEST_ASSERT(buf.pos == 3); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 340 | } | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 341 | cxBufferDestroy(&buf); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 342 | } | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 343 | |
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 344 | CX_TEST(test_buffer_seek_cur_zero) { | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 345 | CxBuffer buf; | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 346 | cxBufferInit(&buf, NULL, 16, cxDefaultAllocator, CX_BUFFER_DEFAULT); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 347 | buf.size = 6; | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 348 | buf.pos = 3; | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 349 | CX_TEST_DO { | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 350 | int result = cxBufferSeek(&buf, 0, SEEK_CUR); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 351 | CX_TEST_ASSERT(result == 0); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 352 | CX_TEST_ASSERT(buf.pos == 3); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 353 | } | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 354 | cxBufferDestroy(&buf); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 355 | } | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 356 | |
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 357 | CX_TEST(test_buffer_seek_cur_valid_positive) { | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 358 | CxBuffer buf; | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 359 | cxBufferInit(&buf, NULL, 16, cxDefaultAllocator, CX_BUFFER_DEFAULT); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 360 | buf.size = 6; | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 361 | buf.pos = 3; | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 362 | CX_TEST_DO { | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 363 | int result = cxBufferSeek(&buf, 2, SEEK_CUR); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 364 | CX_TEST_ASSERT(result == 0); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 365 | CX_TEST_ASSERT(buf.pos == 5); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 366 | } | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 367 | cxBufferDestroy(&buf); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 368 | } | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 369 | |
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 370 | CX_TEST(test_buffer_seek_cur_valid_negative) { | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 371 | CxBuffer buf; | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 372 | cxBufferInit(&buf, NULL, 16, cxDefaultAllocator, CX_BUFFER_DEFAULT); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 373 | buf.size = 6; | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 374 | buf.pos = 3; | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 375 | CX_TEST_DO { | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 376 | int result = cxBufferSeek(&buf, -3, SEEK_CUR); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 377 | CX_TEST_ASSERT(result == 0); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 378 | CX_TEST_ASSERT(buf.pos == 0); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 379 | } | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 380 | cxBufferDestroy(&buf); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 381 | } | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 382 | |
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 383 | CX_TEST(test_buffer_seek_cur_invalid_positive) { | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 384 | CxBuffer buf; | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 385 | cxBufferInit(&buf, NULL, 16, cxDefaultAllocator, CX_BUFFER_DEFAULT); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 386 | buf.size = 6; | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 387 | buf.pos = 3; | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 388 | CX_TEST_DO { | 
| 1007 
81b2986d2b04
fix that cxBufferSeek() cannot move pos past the end - fixes #523
 Mike Becker <universe@uap-core.de> parents: 
1006diff
changeset | 389 | int result = cxBufferSeek(&buf, 4, SEEK_CUR); | 
| 789 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 390 | CX_TEST_ASSERT(result != 0); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 391 | CX_TEST_ASSERT(buf.pos == 3); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 392 | } | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 393 | cxBufferDestroy(&buf); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 394 | } | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 395 | |
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 396 | CX_TEST(test_buffer_seek_cur_invalid_negative) { | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 397 | CxBuffer buf; | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 398 | cxBufferInit(&buf, NULL, 16, cxDefaultAllocator, CX_BUFFER_DEFAULT); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 399 | buf.size = 6; | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 400 | buf.pos = 3; | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 401 | CX_TEST_DO { | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 402 | int result = cxBufferSeek(&buf, -4, SEEK_CUR); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 403 | CX_TEST_ASSERT(result != 0); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 404 | CX_TEST_ASSERT(buf.pos == 3); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 405 | } | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 406 | cxBufferDestroy(&buf); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 407 | } | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 408 | |
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 409 | CX_TEST(test_buffer_seek_end_zero) { | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 410 | CxBuffer buf; | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 411 | cxBufferInit(&buf, NULL, 16, cxDefaultAllocator, CX_BUFFER_DEFAULT); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 412 | buf.size = 6; | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 413 | buf.pos = 3; | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 414 | CX_TEST_DO { | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 415 | int result = cxBufferSeek(&buf, 0, SEEK_END); | 
| 1007 
81b2986d2b04
fix that cxBufferSeek() cannot move pos past the end - fixes #523
 Mike Becker <universe@uap-core.de> parents: 
1006diff
changeset | 416 | CX_TEST_ASSERT(result == 0); | 
| 
81b2986d2b04
fix that cxBufferSeek() cannot move pos past the end - fixes #523
 Mike Becker <universe@uap-core.de> parents: 
1006diff
changeset | 417 | CX_TEST_ASSERT(buf.pos == 6); | 
| 789 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 418 | } | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 419 | cxBufferDestroy(&buf); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 420 | } | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 421 | |
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 422 | CX_TEST(test_buffer_seek_end_valid) { | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 423 | CxBuffer buf; | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 424 | cxBufferInit(&buf, NULL, 16, cxDefaultAllocator, CX_BUFFER_DEFAULT); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 425 | buf.size = 6; | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 426 | buf.pos = 3; | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 427 | CX_TEST_DO { | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 428 | int result = cxBufferSeek(&buf, -6, SEEK_END); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 429 | CX_TEST_ASSERT(result == 0); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 430 | CX_TEST_ASSERT(buf.pos == 0); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 431 | } | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 432 | cxBufferDestroy(&buf); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 433 | } | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 434 | |
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 435 | CX_TEST(test_buffer_seek_end_invalid) { | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 436 | CxBuffer buf; | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 437 | cxBufferInit(&buf, NULL, 16, cxDefaultAllocator, CX_BUFFER_DEFAULT); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 438 | buf.size = 6; | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 439 | buf.pos = 3; | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 440 | CX_TEST_DO { | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 441 | int result = cxBufferSeek(&buf, 1, SEEK_END); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 442 | CX_TEST_ASSERT(result != 0); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 443 | CX_TEST_ASSERT(buf.pos == 3); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 444 | } | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 445 | cxBufferDestroy(&buf); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 446 | } | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 447 | |
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 448 | CX_TEST(test_buffer_seek_whence_invalid) { | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 449 | CxBuffer buf; | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 450 | cxBufferInit(&buf, NULL, 16, cxDefaultAllocator, CX_BUFFER_DEFAULT); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 451 | buf.size = 6; | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 452 | buf.pos = 3; | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 453 | CX_TEST_DO { | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 454 | int result = cxBufferSeek(&buf, 2, 9000); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 455 | CX_TEST_ASSERT(result != 0); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 456 | CX_TEST_ASSERT(buf.size == 6); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 457 | CX_TEST_ASSERT(buf.pos == 3); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 458 | } | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 459 | cxBufferDestroy(&buf); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 460 | } | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 461 | |
| 792 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 462 | CX_TEST(test_buffer_eof_reached) { | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 463 | CxBuffer buf; | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 464 | cxBufferInit(&buf, NULL, 16, cxDefaultAllocator, CX_BUFFER_DEFAULT); | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 465 | buf.size = buf.pos = 3; | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 466 | CX_TEST_DO { | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 467 | CX_TEST_ASSERT(cxBufferEof(&buf)); | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 468 | buf.pos = buf.size - 1; | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 469 | CX_TEST_ASSERT(!cxBufferEof(&buf)); | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 470 | cxBufferPut(&buf, 'a'); | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 471 | CX_TEST_ASSERT(cxBufferEof(&buf)); | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 472 | } | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 473 | cxBufferDestroy(&buf); | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 474 | } | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 475 | |
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 476 | CX_TEST(test_buffer_eof_not_reached) { | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 477 | CxBuffer buf; | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 478 | cxBufferInit(&buf, NULL, 16, cxDefaultAllocator, CX_BUFFER_DEFAULT); | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 479 | buf.size = 6; | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 480 | CX_TEST_DO { | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 481 | buf.pos = buf.size - 1; | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 482 | CX_TEST_ASSERT(!cxBufferEof(&buf)); | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 483 | buf.pos = 0; | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 484 | cxBufferWrite("test", 1, 5, &buf); | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 485 | CX_TEST_ASSERT(!cxBufferEof(&buf)); | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 486 | } | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 487 | cxBufferDestroy(&buf); | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 488 | } | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 489 | |
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 490 | #define TEST_BUFFER_SHIFT_SETUP(buf) \ | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 491 | CxTestingAllocator talloc; \ | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 492 | cx_testing_allocator_init(&talloc); \ | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 493 | CxAllocator *alloc = &talloc.base; \ | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 494 | CxBuffer buf; \ | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 495 | cxBufferInit(&buf, NULL, 16, alloc, CX_BUFFER_DEFAULT); \ | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 496 | memcpy(buf.space, "test____XXXXXXXX", 16); \ | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 497 | buf.capacity = 8; \ | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 498 | buf.pos = 4; \ | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 499 | buf.size = 4 | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 500 | #define TEST_BUFFER_SHIFT_TEARDOWN(buf) \ | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 501 | cxBufferDestroy(&buf); \ | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 502 | CX_TEST_ASSERT(cx_testing_allocator_verify(&talloc)); \ | 
| 793 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 503 | cx_testing_allocator_destroy(&talloc) | 
| 792 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 504 | |
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 505 | |
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 506 | CX_TEST(test_buffer_shift_left_zero) { | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 507 | TEST_BUFFER_SHIFT_SETUP(buf); | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 508 | CX_TEST_DO { | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 509 | int ret = cxBufferShiftLeft(&buf, 0); | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 510 | CX_TEST_ASSERT(ret == 0); | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 511 | CX_TEST_ASSERT(buf.pos == 4); | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 512 | CX_TEST_ASSERT(buf.size == 4); | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 513 | CX_TEST_ASSERT(memcmp(buf.space, "test____XXXXXXXX", 16) == 0); | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 514 | TEST_BUFFER_SHIFT_TEARDOWN(buf); | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 515 | } | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 516 | } | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 517 | |
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 518 | CX_TEST(test_buffer_shift_left_zero_offset_interface) { | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 519 | TEST_BUFFER_SHIFT_SETUP(buf); | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 520 | CX_TEST_DO { | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 521 | int ret = cxBufferShift(&buf, -0); | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 522 | CX_TEST_ASSERT(ret == 0); | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 523 | CX_TEST_ASSERT(buf.pos == 4); | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 524 | CX_TEST_ASSERT(buf.size == 4); | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 525 | CX_TEST_ASSERT(memcmp(buf.space, "test____XXXXXXXX", 16) == 0); | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 526 | TEST_BUFFER_SHIFT_TEARDOWN(buf); | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 527 | } | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 528 | } | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 529 | |
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 530 | CX_TEST(test_buffer_shift_left_standard) { | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 531 | TEST_BUFFER_SHIFT_SETUP(buf); | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 532 | CX_TEST_DO { | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 533 | int ret = cxBufferShiftLeft(&buf, 2); | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 534 | CX_TEST_ASSERT(ret == 0); | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 535 | CX_TEST_ASSERT(buf.pos == 2); | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 536 | CX_TEST_ASSERT(buf.size == 2); | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 537 | CX_TEST_ASSERT(memcmp(buf.space, "stst____XXXXXXXX", 16) == 0); | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 538 | TEST_BUFFER_SHIFT_TEARDOWN(buf); | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 539 | } | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 540 | } | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 541 | |
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 542 | CX_TEST(test_buffer_shift_left_overshift) { | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 543 | TEST_BUFFER_SHIFT_SETUP(buf); | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 544 | CX_TEST_DO { | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 545 | int ret = cxBufferShiftLeft(&buf, 6); | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 546 | CX_TEST_ASSERT(ret == 0); | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 547 | CX_TEST_ASSERT(buf.pos == 0); | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 548 | CX_TEST_ASSERT(buf.size == 0); | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 549 | CX_TEST_ASSERT(memcmp(buf.space, "test____XXXXXXXX", 16) == 0); | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 550 | TEST_BUFFER_SHIFT_TEARDOWN(buf); | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 551 | } | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 552 | } | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 553 | |
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 554 | CX_TEST(test_buffer_shift_left_overshift_pos_only) { | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 555 | TEST_BUFFER_SHIFT_SETUP(buf); | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 556 | buf.pos = 2; | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 557 | CX_TEST_DO { | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 558 | int ret = cxBufferShiftLeft(&buf, 3); | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 559 | CX_TEST_ASSERT(ret == 0); | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 560 | CX_TEST_ASSERT(buf.pos == 0); | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 561 | CX_TEST_ASSERT(buf.size == 1); | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 562 | CX_TEST_ASSERT(memcmp(buf.space, "test____XXXXXXXX", 16) == 0); | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 563 | TEST_BUFFER_SHIFT_TEARDOWN(buf); | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 564 | } | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 565 | } | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 566 | |
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 567 | CX_TEST(test_buffer_shift_left_offset_interface) { | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 568 | TEST_BUFFER_SHIFT_SETUP(buf); | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 569 | buf.pos = 3; | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 570 | CX_TEST_DO { | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 571 | int ret = cxBufferShift(&buf, -2); | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 572 | CX_TEST_ASSERT(ret == 0); | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 573 | CX_TEST_ASSERT(buf.pos == 1); | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 574 | CX_TEST_ASSERT(buf.size == 2); | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 575 | CX_TEST_ASSERT(memcmp(buf.space, "stst____XXXXXXXX", 16) == 0); | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 576 | TEST_BUFFER_SHIFT_TEARDOWN(buf); | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 577 | } | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 578 | } | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 579 | |
| 1024 
8f99f6c28bd3
add copy-on-write feature to UCX buffer - fixes #531
 Mike Becker <universe@uap-core.de> parents: 
1007diff
changeset | 580 | CX_TEST(test_buffer_shift_left_copy_on_write) { | 
| 
8f99f6c28bd3
add copy-on-write feature to UCX buffer - fixes #531
 Mike Becker <universe@uap-core.de> parents: 
1007diff
changeset | 581 | TEST_BUFFER_SHIFT_SETUP(buf); | 
| 
8f99f6c28bd3
add copy-on-write feature to UCX buffer - fixes #531
 Mike Becker <universe@uap-core.de> parents: 
1007diff
changeset | 582 | buf.flags |= CX_BUFFER_COPY_ON_WRITE; | 
| 
8f99f6c28bd3
add copy-on-write feature to UCX buffer - fixes #531
 Mike Becker <universe@uap-core.de> parents: 
1007diff
changeset | 583 | char *original = buf.space; | 
| 
8f99f6c28bd3
add copy-on-write feature to UCX buffer - fixes #531
 Mike Becker <universe@uap-core.de> parents: 
1007diff
changeset | 584 | CX_TEST_DO { | 
| 
8f99f6c28bd3
add copy-on-write feature to UCX buffer - fixes #531
 Mike Becker <universe@uap-core.de> parents: 
1007diff
changeset | 585 | int ret = cxBufferShiftLeft(&buf, 2); | 
| 
8f99f6c28bd3
add copy-on-write feature to UCX buffer - fixes #531
 Mike Becker <universe@uap-core.de> parents: 
1007diff
changeset | 586 | CX_TEST_ASSERT(0 == (buf.flags & CX_BUFFER_COPY_ON_WRITE)); | 
| 
8f99f6c28bd3
add copy-on-write feature to UCX buffer - fixes #531
 Mike Becker <universe@uap-core.de> parents: 
1007diff
changeset | 587 | CX_TEST_ASSERT(0 != (buf.flags & CX_BUFFER_FREE_CONTENTS)); | 
| 
8f99f6c28bd3
add copy-on-write feature to UCX buffer - fixes #531
 Mike Becker <universe@uap-core.de> parents: 
1007diff
changeset | 588 | CX_TEST_ASSERT(ret == 0); | 
| 
8f99f6c28bd3
add copy-on-write feature to UCX buffer - fixes #531
 Mike Becker <universe@uap-core.de> parents: 
1007diff
changeset | 589 | CX_TEST_ASSERT(buf.pos == 2); | 
| 
8f99f6c28bd3
add copy-on-write feature to UCX buffer - fixes #531
 Mike Becker <universe@uap-core.de> parents: 
1007diff
changeset | 590 | CX_TEST_ASSERT(buf.size == 2); | 
| 
8f99f6c28bd3
add copy-on-write feature to UCX buffer - fixes #531
 Mike Becker <universe@uap-core.de> parents: 
1007diff
changeset | 591 | CX_TEST_ASSERT(memcmp(original, "test____XXXXXXXX", 16) == 0); | 
| 
8f99f6c28bd3
add copy-on-write feature to UCX buffer - fixes #531
 Mike Becker <universe@uap-core.de> parents: 
1007diff
changeset | 592 | CX_TEST_ASSERT(memcmp(buf.space, "st", 2) == 0); | 
| 
8f99f6c28bd3
add copy-on-write feature to UCX buffer - fixes #531
 Mike Becker <universe@uap-core.de> parents: 
1007diff
changeset | 593 | cxFree(buf.allocator, original); | 
| 
8f99f6c28bd3
add copy-on-write feature to UCX buffer - fixes #531
 Mike Becker <universe@uap-core.de> parents: 
1007diff
changeset | 594 | TEST_BUFFER_SHIFT_TEARDOWN(buf); | 
| 
8f99f6c28bd3
add copy-on-write feature to UCX buffer - fixes #531
 Mike Becker <universe@uap-core.de> parents: 
1007diff
changeset | 595 | } | 
| 
8f99f6c28bd3
add copy-on-write feature to UCX buffer - fixes #531
 Mike Becker <universe@uap-core.de> parents: 
1007diff
changeset | 596 | } | 
| 
8f99f6c28bd3
add copy-on-write feature to UCX buffer - fixes #531
 Mike Becker <universe@uap-core.de> parents: 
1007diff
changeset | 597 | |
| 792 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 598 | CX_TEST(test_buffer_shift_right_zero) { | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 599 | TEST_BUFFER_SHIFT_SETUP(buf); | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 600 | CX_TEST_DO { | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 601 | int ret = cxBufferShiftRight(&buf, 0); | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 602 | CX_TEST_ASSERT(ret == 0); | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 603 | CX_TEST_ASSERT(buf.pos == 4); | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 604 | CX_TEST_ASSERT(buf.size == 4); | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 605 | CX_TEST_ASSERT(memcmp(buf.space, "test____XXXXXXXX", 16) == 0); | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 606 | TEST_BUFFER_SHIFT_TEARDOWN(buf); | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 607 | } | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 608 | } | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 609 | |
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 610 | CX_TEST(test_buffer_shift_right_zero_offset_interface) { | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 611 | TEST_BUFFER_SHIFT_SETUP(buf); | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 612 | CX_TEST_DO { | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 613 | int ret = cxBufferShift(&buf, +0); | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 614 | CX_TEST_ASSERT(ret == 0); | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 615 | CX_TEST_ASSERT(buf.pos == 4); | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 616 | CX_TEST_ASSERT(buf.size == 4); | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 617 | CX_TEST_ASSERT(memcmp(buf.space, "test____XXXXXXXX", 16) == 0); | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 618 | TEST_BUFFER_SHIFT_TEARDOWN(buf); | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 619 | } | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 620 | } | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 621 | |
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 622 | CX_TEST(test_buffer_shift_right_standard) { | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 623 | TEST_BUFFER_SHIFT_SETUP(buf); | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 624 | CX_TEST_DO { | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 625 | int ret = cxBufferShiftRight(&buf, 3); | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 626 | CX_TEST_ASSERT(ret == 0); | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 627 | CX_TEST_ASSERT(buf.pos == 7); | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 628 | CX_TEST_ASSERT(buf.size == 7); | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 629 | CX_TEST_ASSERT(memcmp(buf.space, "testest_XXXXXXXX", 16) == 0); | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 630 | TEST_BUFFER_SHIFT_TEARDOWN(buf); | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 631 | } | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 632 | } | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 633 | |
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 634 | CX_TEST(test_buffer_shift_right_overshift_discard) { | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 635 | TEST_BUFFER_SHIFT_SETUP(buf); | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 636 | CX_TEST_DO { | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 637 | int ret = cxBufferShiftRight(&buf, 6); | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 638 | CX_TEST_ASSERT(ret == 0); | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 639 | CX_TEST_ASSERT(buf.pos == 8); | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 640 | CX_TEST_ASSERT(buf.size == 8); | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 641 | CX_TEST_ASSERT(buf.capacity == 8); | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 642 | CX_TEST_ASSERT(memcmp(buf.space, "test__teXXXXXXXX", 16) == 0); | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 643 | TEST_BUFFER_SHIFT_TEARDOWN(buf); | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 644 | } | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 645 | } | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 646 | |
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 647 | CX_TEST(test_buffer_shift_right_overshift_extend) { | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 648 | TEST_BUFFER_SHIFT_SETUP(buf); | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 649 | buf.flags |= CX_BUFFER_AUTO_EXTEND; | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 650 | CX_TEST_DO { | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 651 | int ret = cxBufferShiftRight(&buf, 6); | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 652 | CX_TEST_ASSERT(ret == 0); | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 653 | CX_TEST_ASSERT(buf.pos == 10); | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 654 | CX_TEST_ASSERT(buf.size == 10); | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 655 | CX_TEST_ASSERT(buf.capacity >= 10); | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 656 | // cannot assert more than 10 bytes because | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 657 | // the buffer was required to reallocate the space | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 658 | CX_TEST_ASSERT(memcmp(buf.space, "test__test", 10) == 0); | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 659 | TEST_BUFFER_SHIFT_TEARDOWN(buf); | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 660 | } | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 661 | } | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 662 | |
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 663 | CX_TEST(test_buffer_shift_right_offset_interface) { | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 664 | TEST_BUFFER_SHIFT_SETUP(buf); | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 665 | buf.pos = 3; | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 666 | CX_TEST_DO { | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 667 | int ret = cxBufferShift(&buf, 2); | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 668 | CX_TEST_ASSERT(ret == 0); | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 669 | CX_TEST_ASSERT(buf.pos == 5); | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 670 | CX_TEST_ASSERT(buf.size == 6); | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 671 | CX_TEST_ASSERT(memcmp(buf.space, "tetest__XXXXXXXX", 16) == 0); | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 672 | TEST_BUFFER_SHIFT_TEARDOWN(buf); | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 673 | } | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 674 | } | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 675 | |
| 1024 
8f99f6c28bd3
add copy-on-write feature to UCX buffer - fixes #531
 Mike Becker <universe@uap-core.de> parents: 
1007diff
changeset | 676 | CX_TEST(test_buffer_shift_right_copy_on_write) { | 
| 
8f99f6c28bd3
add copy-on-write feature to UCX buffer - fixes #531
 Mike Becker <universe@uap-core.de> parents: 
1007diff
changeset | 677 | TEST_BUFFER_SHIFT_SETUP(buf); | 
| 
8f99f6c28bd3
add copy-on-write feature to UCX buffer - fixes #531
 Mike Becker <universe@uap-core.de> parents: 
1007diff
changeset | 678 | buf.flags |= CX_BUFFER_COPY_ON_WRITE; | 
| 
8f99f6c28bd3
add copy-on-write feature to UCX buffer - fixes #531
 Mike Becker <universe@uap-core.de> parents: 
1007diff
changeset | 679 | char *original = buf.space; | 
| 
8f99f6c28bd3
add copy-on-write feature to UCX buffer - fixes #531
 Mike Becker <universe@uap-core.de> parents: 
1007diff
changeset | 680 | CX_TEST_DO { | 
| 
8f99f6c28bd3
add copy-on-write feature to UCX buffer - fixes #531
 Mike Becker <universe@uap-core.de> parents: 
1007diff
changeset | 681 | int ret = cxBufferShiftRight(&buf, 3); | 
| 
8f99f6c28bd3
add copy-on-write feature to UCX buffer - fixes #531
 Mike Becker <universe@uap-core.de> parents: 
1007diff
changeset | 682 | CX_TEST_ASSERT(0 == (buf.flags & CX_BUFFER_COPY_ON_WRITE)); | 
| 
8f99f6c28bd3
add copy-on-write feature to UCX buffer - fixes #531
 Mike Becker <universe@uap-core.de> parents: 
1007diff
changeset | 683 | CX_TEST_ASSERT(0 != (buf.flags & CX_BUFFER_FREE_CONTENTS)); | 
| 
8f99f6c28bd3
add copy-on-write feature to UCX buffer - fixes #531
 Mike Becker <universe@uap-core.de> parents: 
1007diff
changeset | 684 | CX_TEST_ASSERT(ret == 0); | 
| 
8f99f6c28bd3
add copy-on-write feature to UCX buffer - fixes #531
 Mike Becker <universe@uap-core.de> parents: 
1007diff
changeset | 685 | CX_TEST_ASSERT(buf.pos == 7); | 
| 
8f99f6c28bd3
add copy-on-write feature to UCX buffer - fixes #531
 Mike Becker <universe@uap-core.de> parents: 
1007diff
changeset | 686 | CX_TEST_ASSERT(buf.size == 7); | 
| 
8f99f6c28bd3
add copy-on-write feature to UCX buffer - fixes #531
 Mike Becker <universe@uap-core.de> parents: 
1007diff
changeset | 687 | CX_TEST_ASSERT(memcmp(original, "test____XXXXXXXX", 16) == 0); | 
| 
8f99f6c28bd3
add copy-on-write feature to UCX buffer - fixes #531
 Mike Becker <universe@uap-core.de> parents: 
1007diff
changeset | 688 | CX_TEST_ASSERT(memcmp(buf.space, "testest", 7) == 0); | 
| 
8f99f6c28bd3
add copy-on-write feature to UCX buffer - fixes #531
 Mike Becker <universe@uap-core.de> parents: 
1007diff
changeset | 689 | cxFree(buf.allocator, original); | 
| 
8f99f6c28bd3
add copy-on-write feature to UCX buffer - fixes #531
 Mike Becker <universe@uap-core.de> parents: 
1007diff
changeset | 690 | TEST_BUFFER_SHIFT_TEARDOWN(buf); | 
| 
8f99f6c28bd3
add copy-on-write feature to UCX buffer - fixes #531
 Mike Becker <universe@uap-core.de> parents: 
1007diff
changeset | 691 | } | 
| 
8f99f6c28bd3
add copy-on-write feature to UCX buffer - fixes #531
 Mike Becker <universe@uap-core.de> parents: 
1007diff
changeset | 692 | } | 
| 
8f99f6c28bd3
add copy-on-write feature to UCX buffer - fixes #531
 Mike Becker <universe@uap-core.de> parents: 
1007diff
changeset | 693 | |
| 793 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 694 | static size_t mock_write_limited_rate( | 
| 890 
54565fd74e74
move all const keywords to the west - fixes #426
 Mike Becker <universe@uap-core.de> parents: 
793diff
changeset | 695 | const void *ptr, | 
| 793 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 696 | size_t size, | 
| 985 
68754c7de906
major refactoring of attributes
 Mike Becker <universe@uap-core.de> parents: 
890diff
changeset | 697 | cx_attr_unused size_t nitems, | 
| 793 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 698 | CxBuffer *buffer | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 699 | ) { | 
| 1110 | 700 | return cxBufferWrite(ptr, size, nitems > 2 ? 2 : nitems, buffer); | 
| 793 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 701 | } | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 702 | |
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 703 | CX_TEST(test_buffer_write_size_one_fit) { | 
| 1006 
8ee818fa29f7
fix stupid initialization of target buffer in tests where no flush target is used
 Mike Becker <universe@uap-core.de> parents: 
985diff
changeset | 704 | CxBuffer buf; | 
| 793 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 705 | cxBufferInit(&buf, NULL, 16, cxDefaultAllocator, CX_BUFFER_DEFAULT); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 706 | memcpy(buf.space, "prep\0\0\0\0\0\0\0\0\0\0\0\0", 16); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 707 | buf.capacity = 8; | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 708 | buf.size = buf.pos = 4; | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 709 | const char *data = "test"; | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 710 | CX_TEST_DO { | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 711 | size_t written = cxBufferWrite(data, 1, 4, &buf); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 712 | CX_TEST_ASSERT(written == 4); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 713 | CX_TEST_ASSERT(buf.size == 8); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 714 | CX_TEST_ASSERT(buf.pos == 8); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 715 | CX_TEST_ASSERT(buf.capacity == 8); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 716 | CX_TEST_ASSERT(0 == memcmp(buf.space, "preptest", 8)); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 717 | } | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 718 | |
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 719 | cxBufferDestroy(&buf); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 720 | } | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 721 | |
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 722 | CX_TEST(test_buffer_write_size_one_discard) { | 
| 1006 
8ee818fa29f7
fix stupid initialization of target buffer in tests where no flush target is used
 Mike Becker <universe@uap-core.de> parents: 
985diff
changeset | 723 | CxBuffer buf; | 
| 793 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 724 | cxBufferInit(&buf, NULL, 16, cxDefaultAllocator, CX_BUFFER_DEFAULT); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 725 | memcpy(buf.space, "prep\0\0\0\0\0\0\0\0\0\0\0\0", 16); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 726 | buf.capacity = 8; | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 727 | buf.size = buf.pos = 4; | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 728 | const char *data = "testing"; | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 729 | CX_TEST_DO { | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 730 | size_t written = cxBufferWrite(data, 1, 7, &buf); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 731 | CX_TEST_ASSERT(written == 4); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 732 | CX_TEST_ASSERT(buf.size == 8); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 733 | CX_TEST_ASSERT(buf.pos == 8); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 734 | CX_TEST_ASSERT(buf.capacity == 8); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 735 | CX_TEST_ASSERT(0 == memcmp(buf.space, "preptest\0", 9)); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 736 | } | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 737 | cxBufferDestroy(&buf); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 738 | } | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 739 | |
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 740 | CX_TEST(test_buffer_write_size_one_extend) { | 
| 1006 
8ee818fa29f7
fix stupid initialization of target buffer in tests where no flush target is used
 Mike Becker <universe@uap-core.de> parents: 
985diff
changeset | 741 | CxBuffer buf; | 
| 793 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 742 | cxBufferInit(&buf, NULL, 16, cxDefaultAllocator, CX_BUFFER_DEFAULT); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 743 | memcpy(buf.space, "prep\0\0\0\0\0\0\0\0\0\0\0\0", 16); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 744 | buf.capacity = 8; | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 745 | buf.size = buf.pos = 4; | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 746 | buf.flags |= CX_BUFFER_AUTO_EXTEND; | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 747 | const char *data = "testing"; | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 748 | CX_TEST_DO { | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 749 | size_t written = cxBufferWrite(data, 1, 7, &buf); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 750 | CX_TEST_ASSERT(written == 7); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 751 | CX_TEST_ASSERT(buf.size == 11); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 752 | CX_TEST_ASSERT(buf.pos == 11); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 753 | CX_TEST_ASSERT(buf.capacity >= 11); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 754 | CX_TEST_ASSERT(0 == memcmp(buf.space, "preptesting", 11)); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 755 | } | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 756 | cxBufferDestroy(&buf); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 757 | } | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 758 | |
| 1024 
8f99f6c28bd3
add copy-on-write feature to UCX buffer - fixes #531
 Mike Becker <universe@uap-core.de> parents: 
1007diff
changeset | 759 | CX_TEST(test_buffer_write_copy_on_write) { | 
| 
8f99f6c28bd3
add copy-on-write feature to UCX buffer - fixes #531
 Mike Becker <universe@uap-core.de> parents: 
1007diff
changeset | 760 | CxBuffer buf; | 
| 1302 
d1cb5f107f1e
fix unnecessary explicit zero-terminator
 Mike Becker <universe@uap-core.de> parents: 
1291diff
changeset | 761 | char original[16] = "preparedXXXXXXX"; | 
| 1024 
8f99f6c28bd3
add copy-on-write feature to UCX buffer - fixes #531
 Mike Becker <universe@uap-core.de> parents: 
1007diff
changeset | 762 | cxBufferInit(&buf, original, 16, cxDefaultAllocator, CX_BUFFER_COPY_ON_WRITE); | 
| 
8f99f6c28bd3
add copy-on-write feature to UCX buffer - fixes #531
 Mike Becker <universe@uap-core.de> parents: 
1007diff
changeset | 763 | buf.capacity = 8; | 
| 
8f99f6c28bd3
add copy-on-write feature to UCX buffer - fixes #531
 Mike Becker <universe@uap-core.de> parents: 
1007diff
changeset | 764 | buf.size = 8; | 
| 
8f99f6c28bd3
add copy-on-write feature to UCX buffer - fixes #531
 Mike Becker <universe@uap-core.de> parents: 
1007diff
changeset | 765 | buf.pos = 0; | 
| 
8f99f6c28bd3
add copy-on-write feature to UCX buffer - fixes #531
 Mike Becker <universe@uap-core.de> parents: 
1007diff
changeset | 766 | const char *data = "testing"; | 
| 
8f99f6c28bd3
add copy-on-write feature to UCX buffer - fixes #531
 Mike Becker <universe@uap-core.de> parents: 
1007diff
changeset | 767 | CX_TEST_DO { | 
| 
8f99f6c28bd3
add copy-on-write feature to UCX buffer - fixes #531
 Mike Becker <universe@uap-core.de> parents: 
1007diff
changeset | 768 | size_t written = cxBufferWrite(data, 1, 7, &buf); | 
| 
8f99f6c28bd3
add copy-on-write feature to UCX buffer - fixes #531
 Mike Becker <universe@uap-core.de> parents: 
1007diff
changeset | 769 | CX_TEST_ASSERT(written == 7); | 
| 
8f99f6c28bd3
add copy-on-write feature to UCX buffer - fixes #531
 Mike Becker <universe@uap-core.de> parents: 
1007diff
changeset | 770 | CX_TEST_ASSERT(buf.size == 8); | 
| 
8f99f6c28bd3
add copy-on-write feature to UCX buffer - fixes #531
 Mike Becker <universe@uap-core.de> parents: 
1007diff
changeset | 771 | CX_TEST_ASSERT(buf.pos == 7); | 
| 
8f99f6c28bd3
add copy-on-write feature to UCX buffer - fixes #531
 Mike Becker <universe@uap-core.de> parents: 
1007diff
changeset | 772 | CX_TEST_ASSERT(buf.capacity == 8); | 
| 
8f99f6c28bd3
add copy-on-write feature to UCX buffer - fixes #531
 Mike Becker <universe@uap-core.de> parents: 
1007diff
changeset | 773 | CX_TEST_ASSERT(0 == memcmp(buf.space, "testingd", 8)); | 
| 
8f99f6c28bd3
add copy-on-write feature to UCX buffer - fixes #531
 Mike Becker <universe@uap-core.de> parents: 
1007diff
changeset | 774 | CX_TEST_ASSERT(0 == memcmp(original, "preparedXXXXXXX\0", 16)); | 
| 
8f99f6c28bd3
add copy-on-write feature to UCX buffer - fixes #531
 Mike Becker <universe@uap-core.de> parents: 
1007diff
changeset | 775 | CX_TEST_ASSERT(0 == (buf.flags & CX_BUFFER_COPY_ON_WRITE)); | 
| 
8f99f6c28bd3
add copy-on-write feature to UCX buffer - fixes #531
 Mike Becker <universe@uap-core.de> parents: 
1007diff
changeset | 776 | CX_TEST_ASSERT(0 != (buf.flags & CX_BUFFER_FREE_CONTENTS)); | 
| 
8f99f6c28bd3
add copy-on-write feature to UCX buffer - fixes #531
 Mike Becker <universe@uap-core.de> parents: 
1007diff
changeset | 777 | } | 
| 
8f99f6c28bd3
add copy-on-write feature to UCX buffer - fixes #531
 Mike Becker <universe@uap-core.de> parents: 
1007diff
changeset | 778 | cxBufferDestroy(&buf); | 
| 
8f99f6c28bd3
add copy-on-write feature to UCX buffer - fixes #531
 Mike Becker <universe@uap-core.de> parents: 
1007diff
changeset | 779 | } | 
| 
8f99f6c28bd3
add copy-on-write feature to UCX buffer - fixes #531
 Mike Becker <universe@uap-core.de> parents: 
1007diff
changeset | 780 | |
| 793 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 781 | CX_TEST(test_buffer_write_multibyte_fit) { | 
| 1006 
8ee818fa29f7
fix stupid initialization of target buffer in tests where no flush target is used
 Mike Becker <universe@uap-core.de> parents: 
985diff
changeset | 782 | CxBuffer buf; | 
| 793 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 783 | cxBufferInit(&buf, NULL, 16, cxDefaultAllocator, CX_BUFFER_DEFAULT); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 784 | memcpy(buf.space, "prep\0\0\0\0\0\0\0\0\0\0\0\0", 16); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 785 | buf.capacity = 8; | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 786 | buf.size = buf.pos = 4; | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 787 | const char *data = "test"; | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 788 | CX_TEST_DO { | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 789 | size_t written = cxBufferWrite(data, 2, 2, &buf); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 790 | CX_TEST_ASSERT(written == 2); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 791 | CX_TEST_ASSERT(buf.size == 8); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 792 | CX_TEST_ASSERT(buf.pos == 8); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 793 | CX_TEST_ASSERT(buf.capacity == 8); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 794 | CX_TEST_ASSERT(0 == memcmp(buf.space, "preptest", 8)); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 795 | } | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 796 | cxBufferDestroy(&buf); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 797 | } | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 798 | |
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 799 | CX_TEST(test_buffer_write_multibyte_discard) { | 
| 1006 
8ee818fa29f7
fix stupid initialization of target buffer in tests where no flush target is used
 Mike Becker <universe@uap-core.de> parents: 
985diff
changeset | 800 | CxBuffer buf; | 
| 793 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 801 | cxBufferInit(&buf, NULL, 16, cxDefaultAllocator, CX_BUFFER_DEFAULT); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 802 | memcpy(buf.space, "prep\0\0\0\0\0\0\0\0\0\0\0\0", 16); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 803 | buf.capacity = 8; | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 804 | buf.size = 4; | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 805 | buf.pos = 3; | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 806 | const char *data = "testing"; | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 807 | CX_TEST_DO { | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 808 | size_t written = cxBufferWrite(data, 2, 4, &buf); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 809 | // remember: whole elements are discarded if they do not fit | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 810 | CX_TEST_ASSERT(written == 2); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 811 | CX_TEST_ASSERT(buf.size == 7); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 812 | CX_TEST_ASSERT(buf.pos == 7); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 813 | CX_TEST_ASSERT(buf.capacity == 8); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 814 | CX_TEST_ASSERT(0 == memcmp(buf.space, "pretest\0", 8)); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 815 | } | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 816 | cxBufferDestroy(&buf); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 817 | } | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 818 | |
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 819 | CX_TEST(test_buffer_write_multibyte_extend) { | 
| 1006 
8ee818fa29f7
fix stupid initialization of target buffer in tests where no flush target is used
 Mike Becker <universe@uap-core.de> parents: 
985diff
changeset | 820 | CxBuffer buf; | 
| 793 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 821 | cxBufferInit(&buf, NULL, 16, cxDefaultAllocator, CX_BUFFER_DEFAULT); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 822 | memcpy(buf.space, "prep\0\0\0\0\0\0\0\0\0\0\0\0", 16); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 823 | buf.capacity = 8; | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 824 | buf.size = 4; | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 825 | buf.pos = 3; | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 826 | buf.flags |= CX_BUFFER_AUTO_EXTEND; | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 827 | const char *data = "tester"; | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 828 | CX_TEST_DO { | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 829 | size_t written = cxBufferWrite(data, 2, 3, &buf); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 830 | // remember: whole elements are discarded if they do not fit | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 831 | CX_TEST_ASSERT(written == 3); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 832 | CX_TEST_ASSERT(buf.size == 9); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 833 | CX_TEST_ASSERT(buf.pos == 9); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 834 | CX_TEST_ASSERT(buf.capacity >= 9); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 835 | CX_TEST_ASSERT(0 == memcmp(buf.space, "pretester", 9)); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 836 | } | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 837 | cxBufferDestroy(&buf); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 838 | } | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 839 | |
| 1030 
06091e067bee
add cxBufferAppend() - fixes #534
 Mike Becker <universe@uap-core.de> parents: 
1028diff
changeset | 840 | CX_TEST(test_buffer_append) { | 
| 
06091e067bee
add cxBufferAppend() - fixes #534
 Mike Becker <universe@uap-core.de> parents: 
1028diff
changeset | 841 | CxBuffer buf; | 
| 
06091e067bee
add cxBufferAppend() - fixes #534
 Mike Becker <universe@uap-core.de> parents: 
1028diff
changeset | 842 | cxBufferInit(&buf, NULL, 16, cxDefaultAllocator, CX_BUFFER_AUTO_EXTEND); | 
| 
06091e067bee
add cxBufferAppend() - fixes #534
 Mike Becker <universe@uap-core.de> parents: 
1028diff
changeset | 843 | memcpy(buf.space, "prepXXXX\0\0\0\0\0\0\0\0", 16); | 
| 
06091e067bee
add cxBufferAppend() - fixes #534
 Mike Becker <universe@uap-core.de> parents: 
1028diff
changeset | 844 | buf.capacity = 8; | 
| 
06091e067bee
add cxBufferAppend() - fixes #534
 Mike Becker <universe@uap-core.de> parents: 
1028diff
changeset | 845 | buf.size = 6; | 
| 
06091e067bee
add cxBufferAppend() - fixes #534
 Mike Becker <universe@uap-core.de> parents: 
1028diff
changeset | 846 | buf.pos = 4; | 
| 
06091e067bee
add cxBufferAppend() - fixes #534
 Mike Becker <universe@uap-core.de> parents: 
1028diff
changeset | 847 | CX_TEST_DO { | 
| 
06091e067bee
add cxBufferAppend() - fixes #534
 Mike Becker <universe@uap-core.de> parents: 
1028diff
changeset | 848 | size_t written = cxBufferAppend("testing", 1, 7, &buf); | 
| 
06091e067bee
add cxBufferAppend() - fixes #534
 Mike Becker <universe@uap-core.de> parents: 
1028diff
changeset | 849 | CX_TEST_ASSERT(written == 7); | 
| 
06091e067bee
add cxBufferAppend() - fixes #534
 Mike Becker <universe@uap-core.de> parents: 
1028diff
changeset | 850 | CX_TEST_ASSERT(buf.size == 13); | 
| 
06091e067bee
add cxBufferAppend() - fixes #534
 Mike Becker <universe@uap-core.de> parents: 
1028diff
changeset | 851 | CX_TEST_ASSERT(buf.pos == 4); | 
| 
06091e067bee
add cxBufferAppend() - fixes #534
 Mike Becker <universe@uap-core.de> parents: 
1028diff
changeset | 852 | CX_TEST_ASSERT(buf.capacity >= 13); | 
| 
06091e067bee
add cxBufferAppend() - fixes #534
 Mike Becker <universe@uap-core.de> parents: 
1028diff
changeset | 853 | CX_TEST_ASSERT(0 == memcmp(buf.space, "prepXXtesting", 13)); | 
| 
06091e067bee
add cxBufferAppend() - fixes #534
 Mike Becker <universe@uap-core.de> parents: 
1028diff
changeset | 854 | } | 
| 
06091e067bee
add cxBufferAppend() - fixes #534
 Mike Becker <universe@uap-core.de> parents: 
1028diff
changeset | 855 | cxBufferDestroy(&buf); | 
| 
06091e067bee
add cxBufferAppend() - fixes #534
 Mike Becker <universe@uap-core.de> parents: 
1028diff
changeset | 856 | } | 
| 
06091e067bee
add cxBufferAppend() - fixes #534
 Mike Becker <universe@uap-core.de> parents: 
1028diff
changeset | 857 | |
| 1131 
644f77f903b1
fix cxBufferAppend() not adjusting position after flush
 Mike Becker <universe@uap-core.de> parents: 
1129diff
changeset | 858 | CX_TEST(test_buffer_append_flush) { | 
| 
644f77f903b1
fix cxBufferAppend() not adjusting position after flush
 Mike Becker <universe@uap-core.de> parents: 
1129diff
changeset | 859 | CxBuffer buf, target; | 
| 
644f77f903b1
fix cxBufferAppend() not adjusting position after flush
 Mike Becker <universe@uap-core.de> parents: 
1129diff
changeset | 860 | cxBufferInit(&buf, NULL, 8, cxDefaultAllocator, CX_BUFFER_DEFAULT); | 
| 
644f77f903b1
fix cxBufferAppend() not adjusting position after flush
 Mike Becker <universe@uap-core.de> parents: 
1129diff
changeset | 861 | cxBufferInit(&target, NULL, 8, cxDefaultAllocator, CX_BUFFER_AUTO_EXTEND); | 
| 
644f77f903b1
fix cxBufferAppend() not adjusting position after flush
 Mike Becker <universe@uap-core.de> parents: 
1129diff
changeset | 862 | memcpy(buf.space, "prepXXXX", 8); | 
| 
644f77f903b1
fix cxBufferAppend() not adjusting position after flush
 Mike Becker <universe@uap-core.de> parents: 
1129diff
changeset | 863 | buf.capacity = 8; | 
| 
644f77f903b1
fix cxBufferAppend() not adjusting position after flush
 Mike Becker <universe@uap-core.de> parents: 
1129diff
changeset | 864 | buf.size = 6; | 
| 
644f77f903b1
fix cxBufferAppend() not adjusting position after flush
 Mike Becker <universe@uap-core.de> parents: 
1129diff
changeset | 865 | buf.pos = 4; | 
| 
644f77f903b1
fix cxBufferAppend() not adjusting position after flush
 Mike Becker <universe@uap-core.de> parents: 
1129diff
changeset | 866 | CxBufferFlushConfig flush; | 
| 
644f77f903b1
fix cxBufferAppend() not adjusting position after flush
 Mike Becker <universe@uap-core.de> parents: 
1129diff
changeset | 867 | flush.threshold = 0; | 
| 
644f77f903b1
fix cxBufferAppend() not adjusting position after flush
 Mike Becker <universe@uap-core.de> parents: 
1129diff
changeset | 868 | flush.blksize = 4; | 
| 
644f77f903b1
fix cxBufferAppend() not adjusting position after flush
 Mike Becker <universe@uap-core.de> parents: 
1129diff
changeset | 869 | flush.blkmax = 1; | 
| 
644f77f903b1
fix cxBufferAppend() not adjusting position after flush
 Mike Becker <universe@uap-core.de> parents: 
1129diff
changeset | 870 | flush.target = ⌖ | 
| 
644f77f903b1
fix cxBufferAppend() not adjusting position after flush
 Mike Becker <universe@uap-core.de> parents: 
1129diff
changeset | 871 | flush.wfunc = cxBufferWriteFunc; | 
| 
644f77f903b1
fix cxBufferAppend() not adjusting position after flush
 Mike Becker <universe@uap-core.de> parents: 
1129diff
changeset | 872 | cxBufferEnableFlushing(&buf, flush); | 
| 
644f77f903b1
fix cxBufferAppend() not adjusting position after flush
 Mike Becker <universe@uap-core.de> parents: 
1129diff
changeset | 873 | CX_TEST_DO{ | 
| 
644f77f903b1
fix cxBufferAppend() not adjusting position after flush
 Mike Becker <universe@uap-core.de> parents: 
1129diff
changeset | 874 | size_t written = cxBufferAppend("testing", 1, 7, &buf); | 
| 
644f77f903b1
fix cxBufferAppend() not adjusting position after flush
 Mike Becker <universe@uap-core.de> parents: 
1129diff
changeset | 875 | CX_TEST_ASSERT(written == 7); | 
| 
644f77f903b1
fix cxBufferAppend() not adjusting position after flush
 Mike Becker <universe@uap-core.de> parents: 
1129diff
changeset | 876 | CX_TEST_ASSERT(buf.size == 7); | 
| 
644f77f903b1
fix cxBufferAppend() not adjusting position after flush
 Mike Becker <universe@uap-core.de> parents: 
1129diff
changeset | 877 | CX_TEST_ASSERTM(buf.pos == 0, "position not correctly reset"); | 
| 
644f77f903b1
fix cxBufferAppend() not adjusting position after flush
 Mike Becker <universe@uap-core.de> parents: 
1129diff
changeset | 878 | CX_TEST_ASSERT(buf.capacity == 8); | 
| 
644f77f903b1
fix cxBufferAppend() not adjusting position after flush
 Mike Becker <universe@uap-core.de> parents: 
1129diff
changeset | 879 | CX_TEST_ASSERT(target.size == 6); | 
| 
644f77f903b1
fix cxBufferAppend() not adjusting position after flush
 Mike Becker <universe@uap-core.de> parents: 
1129diff
changeset | 880 | CX_TEST_ASSERT(target.pos == 6); | 
| 
644f77f903b1
fix cxBufferAppend() not adjusting position after flush
 Mike Becker <universe@uap-core.de> parents: 
1129diff
changeset | 881 | CX_TEST_ASSERT(0 == memcmp(buf.space, "testing", 7)); | 
| 
644f77f903b1
fix cxBufferAppend() not adjusting position after flush
 Mike Becker <universe@uap-core.de> parents: 
1129diff
changeset | 882 | CX_TEST_ASSERT(0 == memcmp(target.space, "prepXX", 6)); | 
| 
644f77f903b1
fix cxBufferAppend() not adjusting position after flush
 Mike Becker <universe@uap-core.de> parents: 
1129diff
changeset | 883 | // second test - position only shifted by one block | 
| 
644f77f903b1
fix cxBufferAppend() not adjusting position after flush
 Mike Becker <universe@uap-core.de> parents: 
1129diff
changeset | 884 | buf.pos = 6; | 
| 
644f77f903b1
fix cxBufferAppend() not adjusting position after flush
 Mike Becker <universe@uap-core.de> parents: 
1129diff
changeset | 885 | written = cxBufferAppend("foo", 1, 3, &buf); | 
| 
644f77f903b1
fix cxBufferAppend() not adjusting position after flush
 Mike Becker <universe@uap-core.de> parents: 
1129diff
changeset | 886 | CX_TEST_ASSERT(written == 3); | 
| 
644f77f903b1
fix cxBufferAppend() not adjusting position after flush
 Mike Becker <universe@uap-core.de> parents: 
1129diff
changeset | 887 | CX_TEST_ASSERT(buf.size == 6); | 
| 
644f77f903b1
fix cxBufferAppend() not adjusting position after flush
 Mike Becker <universe@uap-core.de> parents: 
1129diff
changeset | 888 | CX_TEST_ASSERTM(buf.pos == 2, "position not correctly adjusted"); | 
| 
644f77f903b1
fix cxBufferAppend() not adjusting position after flush
 Mike Becker <universe@uap-core.de> parents: 
1129diff
changeset | 889 | CX_TEST_ASSERT(buf.capacity == 8); | 
| 
644f77f903b1
fix cxBufferAppend() not adjusting position after flush
 Mike Becker <universe@uap-core.de> parents: 
1129diff
changeset | 890 | CX_TEST_ASSERT(target.size == 10); | 
| 
644f77f903b1
fix cxBufferAppend() not adjusting position after flush
 Mike Becker <universe@uap-core.de> parents: 
1129diff
changeset | 891 | CX_TEST_ASSERT(target.pos == 10); | 
| 
644f77f903b1
fix cxBufferAppend() not adjusting position after flush
 Mike Becker <universe@uap-core.de> parents: 
1129diff
changeset | 892 | CX_TEST_ASSERT(0 == memcmp(buf.space, "ingfoo", 6)); | 
| 
644f77f903b1
fix cxBufferAppend() not adjusting position after flush
 Mike Becker <universe@uap-core.de> parents: 
1129diff
changeset | 893 | CX_TEST_ASSERT(0 == memcmp(target.space, "prepXXtest", 10)); | 
| 
644f77f903b1
fix cxBufferAppend() not adjusting position after flush
 Mike Becker <universe@uap-core.de> parents: 
1129diff
changeset | 894 | } | 
| 
644f77f903b1
fix cxBufferAppend() not adjusting position after flush
 Mike Becker <universe@uap-core.de> parents: 
1129diff
changeset | 895 | cxBufferDestroy(&buf); | 
| 
644f77f903b1
fix cxBufferAppend() not adjusting position after flush
 Mike Becker <universe@uap-core.de> parents: 
1129diff
changeset | 896 | cxBufferDestroy(&target); | 
| 
644f77f903b1
fix cxBufferAppend() not adjusting position after flush
 Mike Becker <universe@uap-core.de> parents: 
1129diff
changeset | 897 | } | 
| 
644f77f903b1
fix cxBufferAppend() not adjusting position after flush
 Mike Becker <universe@uap-core.de> parents: 
1129diff
changeset | 898 | |
| 793 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 899 | CX_TEST(test_buffer_put_fit) { | 
| 1006 
8ee818fa29f7
fix stupid initialization of target buffer in tests where no flush target is used
 Mike Becker <universe@uap-core.de> parents: 
985diff
changeset | 900 | CxBuffer buf; | 
| 793 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 901 | cxBufferInit(&buf, NULL, 16, cxDefaultAllocator, CX_BUFFER_DEFAULT); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 902 | memcpy(buf.space, "prep\0\0\0\0\0\0\0\0\0\0\0\0", 16); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 903 | buf.capacity = 8; | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 904 | buf.size = buf.pos = 4; | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 905 | CX_TEST_DO { | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 906 | int c = cxBufferPut(&buf, 0x200 | 'a'); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 907 | CX_TEST_ASSERT(c == 'a'); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 908 | CX_TEST_ASSERT(buf.size == 5); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 909 | CX_TEST_ASSERT(buf.pos == 5); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 910 | CX_TEST_ASSERT(buf.capacity == 8); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 911 | CX_TEST_ASSERT(0 == memcmp(buf.space, "prepa\0", 6)); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 912 | } | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 913 | cxBufferDestroy(&buf); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 914 | } | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 915 | |
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 916 | CX_TEST(test_buffer_put_discard) { | 
| 1006 
8ee818fa29f7
fix stupid initialization of target buffer in tests where no flush target is used
 Mike Becker <universe@uap-core.de> parents: 
985diff
changeset | 917 | CxBuffer buf; | 
| 793 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 918 | cxBufferInit(&buf, NULL, 16, cxDefaultAllocator, CX_BUFFER_DEFAULT); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 919 | memcpy(buf.space, "prep\0\0\0\0\0\0\0\0\0\0\0\0", 16); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 920 | buf.capacity = 8; | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 921 | buf.size = 4; | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 922 | buf.pos = 8; | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 923 | CX_TEST_DO { | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 924 | int c = cxBufferPut(&buf, 0x200 | 'a'); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 925 | CX_TEST_ASSERT(c == EOF); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 926 | CX_TEST_ASSERT(buf.size == 4); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 927 | CX_TEST_ASSERT(buf.pos == 8); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 928 | CX_TEST_ASSERT(buf.capacity == 8); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 929 | CX_TEST_ASSERT(0 == memcmp(buf.space, "prep\0\0\0\0\0", 9)); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 930 | } | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 931 | cxBufferDestroy(&buf); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 932 | } | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 933 | |
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 934 | CX_TEST(test_buffer_put_extend) { | 
| 1006 
8ee818fa29f7
fix stupid initialization of target buffer in tests where no flush target is used
 Mike Becker <universe@uap-core.de> parents: 
985diff
changeset | 935 | CxBuffer buf; | 
| 793 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 936 | cxBufferInit(&buf, NULL, 16, cxDefaultAllocator, CX_BUFFER_DEFAULT); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 937 | memcpy(buf.space, "prep\0\0\0\0\0\0\0\0\0\0\0\0", 16); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 938 | buf.capacity = 8; | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 939 | buf.size = 4; | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 940 | buf.pos = 8; | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 941 | buf.flags |= CX_BUFFER_AUTO_EXTEND; | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 942 | CX_TEST_DO { | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 943 | int c = cxBufferPut(&buf, 0x200 | 'a'); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 944 | CX_TEST_ASSERT(c == 'a'); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 945 | CX_TEST_ASSERT(buf.size == 9); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 946 | CX_TEST_ASSERT(buf.pos == 9); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 947 | CX_TEST_ASSERT(buf.capacity >= 9); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 948 | CX_TEST_ASSERT(0 == memcmp(buf.space, "prep\0\0\0\0a", 9)); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 949 | } | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 950 | cxBufferDestroy(&buf); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 951 | } | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 952 | |
| 1024 
8f99f6c28bd3
add copy-on-write feature to UCX buffer - fixes #531
 Mike Becker <universe@uap-core.de> parents: 
1007diff
changeset | 953 | CX_TEST(test_buffer_put_copy_on_write) { | 
| 
8f99f6c28bd3
add copy-on-write feature to UCX buffer - fixes #531
 Mike Becker <universe@uap-core.de> parents: 
1007diff
changeset | 954 | CxBuffer buf; | 
| 1302 
d1cb5f107f1e
fix unnecessary explicit zero-terminator
 Mike Becker <universe@uap-core.de> parents: 
1291diff
changeset | 955 | char original[16] = "preparedXXXXXXX"; | 
| 1024 
8f99f6c28bd3
add copy-on-write feature to UCX buffer - fixes #531
 Mike Becker <universe@uap-core.de> parents: 
1007diff
changeset | 956 | cxBufferInit(&buf, original, 16, cxDefaultAllocator, CX_BUFFER_COPY_ON_WRITE); | 
| 
8f99f6c28bd3
add copy-on-write feature to UCX buffer - fixes #531
 Mike Becker <universe@uap-core.de> parents: 
1007diff
changeset | 957 | buf.capacity = 8; | 
| 
8f99f6c28bd3
add copy-on-write feature to UCX buffer - fixes #531
 Mike Becker <universe@uap-core.de> parents: 
1007diff
changeset | 958 | buf.size = 8; | 
| 
8f99f6c28bd3
add copy-on-write feature to UCX buffer - fixes #531
 Mike Becker <universe@uap-core.de> parents: 
1007diff
changeset | 959 | buf.pos = 8; | 
| 
8f99f6c28bd3
add copy-on-write feature to UCX buffer - fixes #531
 Mike Becker <universe@uap-core.de> parents: 
1007diff
changeset | 960 | CX_TEST_DO { | 
| 
8f99f6c28bd3
add copy-on-write feature to UCX buffer - fixes #531
 Mike Becker <universe@uap-core.de> parents: 
1007diff
changeset | 961 | int c = cxBufferPut(&buf, 0x200 | 'a'); | 
| 
8f99f6c28bd3
add copy-on-write feature to UCX buffer - fixes #531
 Mike Becker <universe@uap-core.de> parents: 
1007diff
changeset | 962 | CX_TEST_ASSERT(c == EOF); | 
| 
8f99f6c28bd3
add copy-on-write feature to UCX buffer - fixes #531
 Mike Becker <universe@uap-core.de> parents: 
1007diff
changeset | 963 | CX_TEST_ASSERT(buf.size == 8); | 
| 
8f99f6c28bd3
add copy-on-write feature to UCX buffer - fixes #531
 Mike Becker <universe@uap-core.de> parents: 
1007diff
changeset | 964 | CX_TEST_ASSERT(buf.pos == 8); | 
| 
8f99f6c28bd3
add copy-on-write feature to UCX buffer - fixes #531
 Mike Becker <universe@uap-core.de> parents: 
1007diff
changeset | 965 | CX_TEST_ASSERT(buf.capacity == 8); | 
| 
8f99f6c28bd3
add copy-on-write feature to UCX buffer - fixes #531
 Mike Becker <universe@uap-core.de> parents: 
1007diff
changeset | 966 | CX_TEST_ASSERT(0 == memcmp(buf.space, "prepared", 8)); | 
| 
8f99f6c28bd3
add copy-on-write feature to UCX buffer - fixes #531
 Mike Becker <universe@uap-core.de> parents: 
1007diff
changeset | 967 | // discarded, no write happend! | 
| 
8f99f6c28bd3
add copy-on-write feature to UCX buffer - fixes #531
 Mike Becker <universe@uap-core.de> parents: 
1007diff
changeset | 968 | CX_TEST_ASSERT(original == buf.space); | 
| 
8f99f6c28bd3
add copy-on-write feature to UCX buffer - fixes #531
 Mike Becker <universe@uap-core.de> parents: 
1007diff
changeset | 969 | CX_TEST_ASSERT(0 != (buf.flags & CX_BUFFER_COPY_ON_WRITE)); | 
| 
8f99f6c28bd3
add copy-on-write feature to UCX buffer - fixes #531
 Mike Becker <universe@uap-core.de> parents: 
1007diff
changeset | 970 | CX_TEST_ASSERT(0 == (buf.flags & CX_BUFFER_FREE_CONTENTS)); | 
| 
8f99f6c28bd3
add copy-on-write feature to UCX buffer - fixes #531
 Mike Becker <universe@uap-core.de> parents: 
1007diff
changeset | 971 | // now actually write somewhere | 
| 
8f99f6c28bd3
add copy-on-write feature to UCX buffer - fixes #531
 Mike Becker <universe@uap-core.de> parents: 
1007diff
changeset | 972 | buf.pos = 2; | 
| 
8f99f6c28bd3
add copy-on-write feature to UCX buffer - fixes #531
 Mike Becker <universe@uap-core.de> parents: 
1007diff
changeset | 973 | c = cxBufferPut(&buf, 0x200 | 'a'); | 
| 
8f99f6c28bd3
add copy-on-write feature to UCX buffer - fixes #531
 Mike Becker <universe@uap-core.de> parents: 
1007diff
changeset | 974 | CX_TEST_ASSERT(c == 'a'); | 
| 
8f99f6c28bd3
add copy-on-write feature to UCX buffer - fixes #531
 Mike Becker <universe@uap-core.de> parents: 
1007diff
changeset | 975 | CX_TEST_ASSERT(buf.size == 8); | 
| 
8f99f6c28bd3
add copy-on-write feature to UCX buffer - fixes #531
 Mike Becker <universe@uap-core.de> parents: 
1007diff
changeset | 976 | CX_TEST_ASSERT(buf.pos == 3); | 
| 
8f99f6c28bd3
add copy-on-write feature to UCX buffer - fixes #531
 Mike Becker <universe@uap-core.de> parents: 
1007diff
changeset | 977 | CX_TEST_ASSERT(buf.capacity == 8); | 
| 
8f99f6c28bd3
add copy-on-write feature to UCX buffer - fixes #531
 Mike Becker <universe@uap-core.de> parents: 
1007diff
changeset | 978 | CX_TEST_ASSERT(0 == memcmp(buf.space, "prapared", 8)); | 
| 
8f99f6c28bd3
add copy-on-write feature to UCX buffer - fixes #531
 Mike Becker <universe@uap-core.de> parents: 
1007diff
changeset | 979 | CX_TEST_ASSERT(original != buf.space); | 
| 
8f99f6c28bd3
add copy-on-write feature to UCX buffer - fixes #531
 Mike Becker <universe@uap-core.de> parents: 
1007diff
changeset | 980 | CX_TEST_ASSERT(0 == memcmp(original, "preparedXXXXXXX\0", 16)); | 
| 
8f99f6c28bd3
add copy-on-write feature to UCX buffer - fixes #531
 Mike Becker <universe@uap-core.de> parents: 
1007diff
changeset | 981 | CX_TEST_ASSERT(0 == (buf.flags & CX_BUFFER_COPY_ON_WRITE)); | 
| 
8f99f6c28bd3
add copy-on-write feature to UCX buffer - fixes #531
 Mike Becker <universe@uap-core.de> parents: 
1007diff
changeset | 982 | CX_TEST_ASSERT(0 != (buf.flags & CX_BUFFER_FREE_CONTENTS)); | 
| 
8f99f6c28bd3
add copy-on-write feature to UCX buffer - fixes #531
 Mike Becker <universe@uap-core.de> parents: 
1007diff
changeset | 983 | } | 
| 
8f99f6c28bd3
add copy-on-write feature to UCX buffer - fixes #531
 Mike Becker <universe@uap-core.de> parents: 
1007diff
changeset | 984 | cxBufferDestroy(&buf); | 
| 
8f99f6c28bd3
add copy-on-write feature to UCX buffer - fixes #531
 Mike Becker <universe@uap-core.de> parents: 
1007diff
changeset | 985 | } | 
| 
8f99f6c28bd3
add copy-on-write feature to UCX buffer - fixes #531
 Mike Becker <universe@uap-core.de> parents: 
1007diff
changeset | 986 | |
| 793 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 987 | CX_TEST(test_buffer_put_string_fit) { | 
| 1006 
8ee818fa29f7
fix stupid initialization of target buffer in tests where no flush target is used
 Mike Becker <universe@uap-core.de> parents: 
985diff
changeset | 988 | CxBuffer buf; | 
| 793 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 989 | cxBufferInit(&buf, NULL, 16, cxDefaultAllocator, CX_BUFFER_DEFAULT); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 990 | memcpy(buf.space, "prep\0\0\0\0\0\0\0\0\0\0\0\0", 16); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 991 | buf.capacity = 8; | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 992 | buf.size = buf.pos = 4; | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 993 | const char *data = "test"; | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 994 | CX_TEST_DO { | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 995 | size_t written = cxBufferPutString(&buf, data); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 996 | CX_TEST_ASSERT(written == 4); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 997 | CX_TEST_ASSERT(buf.size == 8); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 998 | CX_TEST_ASSERT(buf.pos == 8); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 999 | CX_TEST_ASSERT(buf.capacity == 8); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1000 | CX_TEST_ASSERT(0 == memcmp(buf.space, "preptest", 8)); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1001 | } | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1002 | cxBufferDestroy(&buf); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1003 | } | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1004 | |
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1005 | CX_TEST(test_buffer_put_string_discard) { | 
| 1006 
8ee818fa29f7
fix stupid initialization of target buffer in tests where no flush target is used
 Mike Becker <universe@uap-core.de> parents: 
985diff
changeset | 1006 | CxBuffer buf; | 
| 793 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1007 | cxBufferInit(&buf, NULL, 16, cxDefaultAllocator, CX_BUFFER_DEFAULT); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1008 | memcpy(buf.space, "prep\0\0\0\0\0\0\0\0\0\0\0\0", 16); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1009 | buf.capacity = 8; | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1010 | buf.size = buf.pos = 4; | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1011 | const char *data = "testing"; | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1012 | CX_TEST_DO { | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1013 | size_t written = cxBufferPutString(&buf, data); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1014 | CX_TEST_ASSERT(written == 4); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1015 | CX_TEST_ASSERT(buf.size == 8); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1016 | CX_TEST_ASSERT(buf.pos == 8); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1017 | CX_TEST_ASSERT(buf.capacity == 8); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1018 | CX_TEST_ASSERT(0 == memcmp(buf.space, "preptest\0", 9)); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1019 | } | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1020 | cxBufferDestroy(&buf); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1021 | } | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1022 | |
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1023 | CX_TEST(test_buffer_put_string_extend) { | 
| 1006 
8ee818fa29f7
fix stupid initialization of target buffer in tests where no flush target is used
 Mike Becker <universe@uap-core.de> parents: 
985diff
changeset | 1024 | CxBuffer buf; | 
| 793 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1025 | cxBufferInit(&buf, NULL, 16, cxDefaultAllocator, CX_BUFFER_DEFAULT); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1026 | memcpy(buf.space, "prep\0\0\0\0\0\0\0\0\0\0\0\0", 16); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1027 | buf.capacity = 8; | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1028 | buf.size = buf.pos = 4; | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1029 | buf.flags |= CX_BUFFER_AUTO_EXTEND; | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1030 | const char *data = "testing"; | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1031 | CX_TEST_DO { | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1032 | size_t written = cxBufferPutString(&buf, data); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1033 | CX_TEST_ASSERT(written == 7); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1034 | CX_TEST_ASSERT(buf.size == 11); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1035 | CX_TEST_ASSERT(buf.pos == 11); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1036 | CX_TEST_ASSERT(buf.capacity >= 11); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1037 | CX_TEST_ASSERT(0 == memcmp(buf.space, "preptesting", 11)); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1038 | } | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1039 | cxBufferDestroy(&buf); | 
| 1006 
8ee818fa29f7
fix stupid initialization of target buffer in tests where no flush target is used
 Mike Becker <universe@uap-core.de> parents: 
985diff
changeset | 1040 | } | 
| 
8ee818fa29f7
fix stupid initialization of target buffer in tests where no flush target is used
 Mike Becker <universe@uap-core.de> parents: 
985diff
changeset | 1041 | |
| 1028 
3e4905241838
add copy-on-extend feature to UCX buffer - fixes #533
 Mike Becker <universe@uap-core.de> parents: 
1026diff
changeset | 1042 | CX_TEST(test_buffer_put_string_copy_on_extend) { | 
| 
3e4905241838
add copy-on-extend feature to UCX buffer - fixes #533
 Mike Becker <universe@uap-core.de> parents: 
1026diff
changeset | 1043 | CxTestingAllocator talloc; | 
| 
3e4905241838
add copy-on-extend feature to UCX buffer - fixes #533
 Mike Becker <universe@uap-core.de> parents: 
1026diff
changeset | 1044 | cx_testing_allocator_init(&talloc); | 
| 
3e4905241838
add copy-on-extend feature to UCX buffer - fixes #533
 Mike Becker <universe@uap-core.de> parents: 
1026diff
changeset | 1045 | const CxAllocator *alloc = &talloc.base; | 
| 
3e4905241838
add copy-on-extend feature to UCX buffer - fixes #533
 Mike Becker <universe@uap-core.de> parents: 
1026diff
changeset | 1046 | CxBuffer buf; | 
| 1302 
d1cb5f107f1e
fix unnecessary explicit zero-terminator
 Mike Becker <universe@uap-core.de> parents: 
1291diff
changeset | 1047 | char original[16] = "preparedXXXXXXX"; | 
| 1028 
3e4905241838
add copy-on-extend feature to UCX buffer - fixes #533
 Mike Becker <universe@uap-core.de> parents: 
1026diff
changeset | 1048 | CX_TEST_DO { | 
| 
3e4905241838
add copy-on-extend feature to UCX buffer - fixes #533
 Mike Becker <universe@uap-core.de> parents: 
1026diff
changeset | 1049 | cxBufferInit(&buf, original, 16, alloc, CX_BUFFER_COPY_ON_EXTEND); | 
| 
3e4905241838
add copy-on-extend feature to UCX buffer - fixes #533
 Mike Becker <universe@uap-core.de> parents: 
1026diff
changeset | 1050 | buf.capacity = 8; | 
| 
3e4905241838
add copy-on-extend feature to UCX buffer - fixes #533
 Mike Becker <universe@uap-core.de> parents: 
1026diff
changeset | 1051 | buf.size = buf.pos = 4; | 
| 
3e4905241838
add copy-on-extend feature to UCX buffer - fixes #533
 Mike Becker <universe@uap-core.de> parents: 
1026diff
changeset | 1052 | size_t written = cxBufferPutString(&buf, "test"); | 
| 
3e4905241838
add copy-on-extend feature to UCX buffer - fixes #533
 Mike Becker <universe@uap-core.de> parents: 
1026diff
changeset | 1053 | CX_TEST_ASSERT(written == 4); | 
| 
3e4905241838
add copy-on-extend feature to UCX buffer - fixes #533
 Mike Becker <universe@uap-core.de> parents: 
1026diff
changeset | 1054 | CX_TEST_ASSERT(buf.size == 8); | 
| 
3e4905241838
add copy-on-extend feature to UCX buffer - fixes #533
 Mike Becker <universe@uap-core.de> parents: 
1026diff
changeset | 1055 | CX_TEST_ASSERT(buf.pos == 8); | 
| 
3e4905241838
add copy-on-extend feature to UCX buffer - fixes #533
 Mike Becker <universe@uap-core.de> parents: 
1026diff
changeset | 1056 | CX_TEST_ASSERT(buf.capacity == 8); | 
| 
3e4905241838
add copy-on-extend feature to UCX buffer - fixes #533
 Mike Becker <universe@uap-core.de> parents: 
1026diff
changeset | 1057 | CX_TEST_ASSERT(0 == memcmp(buf.space, "preptest", 8)); | 
| 
3e4905241838
add copy-on-extend feature to UCX buffer - fixes #533
 Mike Becker <universe@uap-core.de> parents: 
1026diff
changeset | 1058 | CX_TEST_ASSERT(original == buf.space); | 
| 
3e4905241838
add copy-on-extend feature to UCX buffer - fixes #533
 Mike Becker <universe@uap-core.de> parents: 
1026diff
changeset | 1059 | written = cxBufferPutString(&buf, "ing"); | 
| 
3e4905241838
add copy-on-extend feature to UCX buffer - fixes #533
 Mike Becker <universe@uap-core.de> parents: 
1026diff
changeset | 1060 | CX_TEST_ASSERT(written == 3); | 
| 
3e4905241838
add copy-on-extend feature to UCX buffer - fixes #533
 Mike Becker <universe@uap-core.de> parents: 
1026diff
changeset | 1061 | CX_TEST_ASSERT(buf.size == 11); | 
| 
3e4905241838
add copy-on-extend feature to UCX buffer - fixes #533
 Mike Becker <universe@uap-core.de> parents: 
1026diff
changeset | 1062 | CX_TEST_ASSERT(buf.pos == 11); | 
| 
3e4905241838
add copy-on-extend feature to UCX buffer - fixes #533
 Mike Becker <universe@uap-core.de> parents: 
1026diff
changeset | 1063 | CX_TEST_ASSERT(buf.capacity >= 11); | 
| 
3e4905241838
add copy-on-extend feature to UCX buffer - fixes #533
 Mike Becker <universe@uap-core.de> parents: 
1026diff
changeset | 1064 | CX_TEST_ASSERT(0 == memcmp(buf.space, "preptesting", 11)); | 
| 
3e4905241838
add copy-on-extend feature to UCX buffer - fixes #533
 Mike Becker <universe@uap-core.de> parents: 
1026diff
changeset | 1065 | CX_TEST_ASSERT(original != buf.space); | 
| 
3e4905241838
add copy-on-extend feature to UCX buffer - fixes #533
 Mike Becker <universe@uap-core.de> parents: 
1026diff
changeset | 1066 | CX_TEST_ASSERT(0 == memcmp(original, "preptestXXXXXXX\0", 16)); | 
| 
3e4905241838
add copy-on-extend feature to UCX buffer - fixes #533
 Mike Becker <universe@uap-core.de> parents: 
1026diff
changeset | 1067 | CX_TEST_ASSERT(!cx_testing_allocator_verify(&talloc)); | 
| 
3e4905241838
add copy-on-extend feature to UCX buffer - fixes #533
 Mike Becker <universe@uap-core.de> parents: 
1026diff
changeset | 1068 | cxBufferDestroy(&buf); | 
| 
3e4905241838
add copy-on-extend feature to UCX buffer - fixes #533
 Mike Becker <universe@uap-core.de> parents: 
1026diff
changeset | 1069 | CX_TEST_ASSERT(cx_testing_allocator_verify(&talloc)); | 
| 
3e4905241838
add copy-on-extend feature to UCX buffer - fixes #533
 Mike Becker <universe@uap-core.de> parents: 
1026diff
changeset | 1070 | cx_testing_allocator_destroy(&talloc); | 
| 
3e4905241838
add copy-on-extend feature to UCX buffer - fixes #533
 Mike Becker <universe@uap-core.de> parents: 
1026diff
changeset | 1071 | } | 
| 
3e4905241838
add copy-on-extend feature to UCX buffer - fixes #533
 Mike Becker <universe@uap-core.de> parents: 
1026diff
changeset | 1072 | } | 
| 
3e4905241838
add copy-on-extend feature to UCX buffer - fixes #533
 Mike Becker <universe@uap-core.de> parents: 
1026diff
changeset | 1073 | |
| 
3e4905241838
add copy-on-extend feature to UCX buffer - fixes #533
 Mike Becker <universe@uap-core.de> parents: 
1026diff
changeset | 1074 | CX_TEST(test_buffer_put_string_copy_on_write) { | 
| 1024 
8f99f6c28bd3
add copy-on-write feature to UCX buffer - fixes #531
 Mike Becker <universe@uap-core.de> parents: 
1007diff
changeset | 1075 | CxBuffer buf; | 
| 1302 
d1cb5f107f1e
fix unnecessary explicit zero-terminator
 Mike Becker <universe@uap-core.de> parents: 
1291diff
changeset | 1076 | char original[16] = "preparedXXXXXXX"; | 
| 1024 
8f99f6c28bd3
add copy-on-write feature to UCX buffer - fixes #531
 Mike Becker <universe@uap-core.de> parents: 
1007diff
changeset | 1077 | cxBufferInit(&buf, original, 16, cxDefaultAllocator, CX_BUFFER_COPY_ON_WRITE); | 
| 
8f99f6c28bd3
add copy-on-write feature to UCX buffer - fixes #531
 Mike Becker <universe@uap-core.de> parents: 
1007diff
changeset | 1078 | buf.capacity = 8; | 
| 
8f99f6c28bd3
add copy-on-write feature to UCX buffer - fixes #531
 Mike Becker <universe@uap-core.de> parents: 
1007diff
changeset | 1079 | buf.size = 8; | 
| 
8f99f6c28bd3
add copy-on-write feature to UCX buffer - fixes #531
 Mike Becker <universe@uap-core.de> parents: 
1007diff
changeset | 1080 | buf.pos = 4; | 
| 
8f99f6c28bd3
add copy-on-write feature to UCX buffer - fixes #531
 Mike Becker <universe@uap-core.de> parents: 
1007diff
changeset | 1081 | buf.flags |= CX_BUFFER_AUTO_EXTEND; | 
| 
8f99f6c28bd3
add copy-on-write feature to UCX buffer - fixes #531
 Mike Becker <universe@uap-core.de> parents: 
1007diff
changeset | 1082 | const char *data = "testing"; | 
| 
8f99f6c28bd3
add copy-on-write feature to UCX buffer - fixes #531
 Mike Becker <universe@uap-core.de> parents: 
1007diff
changeset | 1083 | CX_TEST_DO { | 
| 
8f99f6c28bd3
add copy-on-write feature to UCX buffer - fixes #531
 Mike Becker <universe@uap-core.de> parents: 
1007diff
changeset | 1084 | size_t written = cxBufferPutString(&buf, data); | 
| 
8f99f6c28bd3
add copy-on-write feature to UCX buffer - fixes #531
 Mike Becker <universe@uap-core.de> parents: 
1007diff
changeset | 1085 | CX_TEST_ASSERT(written == 7); | 
| 
8f99f6c28bd3
add copy-on-write feature to UCX buffer - fixes #531
 Mike Becker <universe@uap-core.de> parents: 
1007diff
changeset | 1086 | CX_TEST_ASSERT(buf.size == 11); | 
| 
8f99f6c28bd3
add copy-on-write feature to UCX buffer - fixes #531
 Mike Becker <universe@uap-core.de> parents: 
1007diff
changeset | 1087 | CX_TEST_ASSERT(buf.pos == 11); | 
| 
8f99f6c28bd3
add copy-on-write feature to UCX buffer - fixes #531
 Mike Becker <universe@uap-core.de> parents: 
1007diff
changeset | 1088 | CX_TEST_ASSERT(buf.capacity >= 11); | 
| 
8f99f6c28bd3
add copy-on-write feature to UCX buffer - fixes #531
 Mike Becker <universe@uap-core.de> parents: 
1007diff
changeset | 1089 | CX_TEST_ASSERT(0 == memcmp(buf.space, "preptesting", 11)); | 
| 
8f99f6c28bd3
add copy-on-write feature to UCX buffer - fixes #531
 Mike Becker <universe@uap-core.de> parents: 
1007diff
changeset | 1090 | CX_TEST_ASSERT(original != buf.space); | 
| 
8f99f6c28bd3
add copy-on-write feature to UCX buffer - fixes #531
 Mike Becker <universe@uap-core.de> parents: 
1007diff
changeset | 1091 | CX_TEST_ASSERT(0 == memcmp(original, "preparedXXXXXXX\0", 16)); | 
| 
8f99f6c28bd3
add copy-on-write feature to UCX buffer - fixes #531
 Mike Becker <universe@uap-core.de> parents: 
1007diff
changeset | 1092 | CX_TEST_ASSERT(0 == (buf.flags & CX_BUFFER_COPY_ON_WRITE)); | 
| 
8f99f6c28bd3
add copy-on-write feature to UCX buffer - fixes #531
 Mike Becker <universe@uap-core.de> parents: 
1007diff
changeset | 1093 | CX_TEST_ASSERT(0 != (buf.flags & CX_BUFFER_FREE_CONTENTS)); | 
| 
8f99f6c28bd3
add copy-on-write feature to UCX buffer - fixes #531
 Mike Becker <universe@uap-core.de> parents: 
1007diff
changeset | 1094 | } | 
| 
8f99f6c28bd3
add copy-on-write feature to UCX buffer - fixes #531
 Mike Becker <universe@uap-core.de> parents: 
1007diff
changeset | 1095 | cxBufferDestroy(&buf); | 
| 
8f99f6c28bd3
add copy-on-write feature to UCX buffer - fixes #531
 Mike Becker <universe@uap-core.de> parents: 
1007diff
changeset | 1096 | } | 
| 
8f99f6c28bd3
add copy-on-write feature to UCX buffer - fixes #531
 Mike Becker <universe@uap-core.de> parents: 
1007diff
changeset | 1097 | |
| 1006 
8ee818fa29f7
fix stupid initialization of target buffer in tests where no flush target is used
 Mike Becker <universe@uap-core.de> parents: 
985diff
changeset | 1098 | CX_TEST(test_buffer_terminate) { | 
| 
8ee818fa29f7
fix stupid initialization of target buffer in tests where no flush target is used
 Mike Becker <universe@uap-core.de> parents: 
985diff
changeset | 1099 | CxBuffer buf; | 
| 
8ee818fa29f7
fix stupid initialization of target buffer in tests where no flush target is used
 Mike Becker <universe@uap-core.de> parents: 
985diff
changeset | 1100 | cxBufferInit(&buf, NULL, 16, cxDefaultAllocator, CX_BUFFER_DEFAULT); | 
| 
8ee818fa29f7
fix stupid initialization of target buffer in tests where no flush target is used
 Mike Becker <universe@uap-core.de> parents: 
985diff
changeset | 1101 | memcpy(buf.space, "prepAAAAAA\0\0\0\0\0\0", 16); | 
| 
8ee818fa29f7
fix stupid initialization of target buffer in tests where no flush target is used
 Mike Becker <universe@uap-core.de> parents: 
985diff
changeset | 1102 | buf.capacity = 8; | 
| 
8ee818fa29f7
fix stupid initialization of target buffer in tests where no flush target is used
 Mike Becker <universe@uap-core.de> parents: 
985diff
changeset | 1103 | buf.size = buf.pos = 4; | 
| 
8ee818fa29f7
fix stupid initialization of target buffer in tests where no flush target is used
 Mike Becker <universe@uap-core.de> parents: 
985diff
changeset | 1104 | const char *data = "test"; | 
| 
8ee818fa29f7
fix stupid initialization of target buffer in tests where no flush target is used
 Mike Becker <universe@uap-core.de> parents: 
985diff
changeset | 1105 | CX_TEST_DO { | 
| 
8ee818fa29f7
fix stupid initialization of target buffer in tests where no flush target is used
 Mike Becker <universe@uap-core.de> parents: 
985diff
changeset | 1106 | size_t written = cxBufferPutString(&buf, data); | 
| 
8ee818fa29f7
fix stupid initialization of target buffer in tests where no flush target is used
 Mike Becker <universe@uap-core.de> parents: 
985diff
changeset | 1107 | CX_TEST_ASSERT(0 != cxBufferTerminate(&buf)); | 
| 
8ee818fa29f7
fix stupid initialization of target buffer in tests where no flush target is used
 Mike Becker <universe@uap-core.de> parents: 
985diff
changeset | 1108 | CX_TEST_ASSERT(written == 4); | 
| 
8ee818fa29f7
fix stupid initialization of target buffer in tests where no flush target is used
 Mike Becker <universe@uap-core.de> parents: 
985diff
changeset | 1109 | CX_TEST_ASSERT(buf.size == 8); | 
| 
8ee818fa29f7
fix stupid initialization of target buffer in tests where no flush target is used
 Mike Becker <universe@uap-core.de> parents: 
985diff
changeset | 1110 | CX_TEST_ASSERT(buf.pos == 8); | 
| 
8ee818fa29f7
fix stupid initialization of target buffer in tests where no flush target is used
 Mike Becker <universe@uap-core.de> parents: 
985diff
changeset | 1111 | CX_TEST_ASSERT(buf.capacity == 8); | 
| 
8ee818fa29f7
fix stupid initialization of target buffer in tests where no flush target is used
 Mike Becker <universe@uap-core.de> parents: 
985diff
changeset | 1112 | CX_TEST_ASSERT(0 == memcmp(buf.space, "preptestAA", 10)); | 
| 
8ee818fa29f7
fix stupid initialization of target buffer in tests where no flush target is used
 Mike Becker <universe@uap-core.de> parents: 
985diff
changeset | 1113 | buf.flags |= CX_BUFFER_AUTO_EXTEND; | 
| 
8ee818fa29f7
fix stupid initialization of target buffer in tests where no flush target is used
 Mike Becker <universe@uap-core.de> parents: 
985diff
changeset | 1114 | CX_TEST_ASSERT(0 == cxBufferTerminate(&buf)); | 
| 
8ee818fa29f7
fix stupid initialization of target buffer in tests where no flush target is used
 Mike Becker <universe@uap-core.de> parents: 
985diff
changeset | 1115 | CX_TEST_ASSERT(buf.size == 8); | 
| 1284 
b2103354baed
fix implementation of cxBufferTerminate() - fixes #631
 Mike Becker <universe@uap-core.de> parents: 
1135diff
changeset | 1116 | CX_TEST_ASSERT(buf.pos == 9); | 
| 1006 
8ee818fa29f7
fix stupid initialization of target buffer in tests where no flush target is used
 Mike Becker <universe@uap-core.de> parents: 
985diff
changeset | 1117 | CX_TEST_ASSERT(buf.capacity > 8); | 
| 1023 
989e144c912a
fix out of range access in test on platforms which are actually shrinking the buffer
 Mike Becker <universe@uap-core.de> parents: 
1007diff
changeset | 1118 | CX_TEST_ASSERT(0 == memcmp(buf.space, "preptest\0", 9)); | 
| 1006 
8ee818fa29f7
fix stupid initialization of target buffer in tests where no flush target is used
 Mike Becker <universe@uap-core.de> parents: 
985diff
changeset | 1119 | } | 
| 
8ee818fa29f7
fix stupid initialization of target buffer in tests where no flush target is used
 Mike Becker <universe@uap-core.de> parents: 
985diff
changeset | 1120 | cxBufferDestroy(&buf); | 
| 793 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1121 | } | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1122 | |
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1123 | CX_TEST(test_buffer_write_size_overflow) { | 
| 1006 
8ee818fa29f7
fix stupid initialization of target buffer in tests where no flush target is used
 Mike Becker <universe@uap-core.de> parents: 
985diff
changeset | 1124 | CxBuffer buf; | 
| 793 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1125 | cxBufferInit(&buf, NULL, 16, cxDefaultAllocator, CX_BUFFER_DEFAULT); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1126 | memcpy(buf.space, "prep\0\0\0\0\0\0\0\0\0\0\0\0", 16); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1127 | buf.capacity = 8; | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1128 | buf.size = buf.pos = 4; | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1129 | const char *data = "testing"; | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1130 | CX_TEST_DO { | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1131 | size_t written = cxBufferWrite(data, 8, SIZE_MAX / 4, &buf); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1132 | CX_TEST_ASSERT(written == 0); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1133 | CX_TEST_ASSERT(buf.capacity == 8); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1134 | CX_TEST_ASSERT(buf.pos == 4); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1135 | CX_TEST_ASSERT(buf.size == 4); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1136 | CX_TEST_ASSERT(0 == memcmp(buf.space, "prep\0", 5)); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1137 | } | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1138 | cxBufferDestroy(&buf); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1139 | } | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1140 | |
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1141 | CX_TEST(test_buffer_write_capacity_overflow) { | 
| 1006 
8ee818fa29f7
fix stupid initialization of target buffer in tests where no flush target is used
 Mike Becker <universe@uap-core.de> parents: 
985diff
changeset | 1142 | CxBuffer buf; | 
| 793 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1143 | cxBufferInit(&buf, NULL, 16, cxDefaultAllocator, CX_BUFFER_DEFAULT); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1144 | memcpy(buf.space, "prep\0\0\0\0\0\0\0\0\0\0\0\0", 16); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1145 | buf.capacity = 8; | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1146 | buf.size = buf.pos = 4; | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1147 | buf.flags |= CX_BUFFER_AUTO_EXTEND; | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1148 | const char *data = "testing"; | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1149 | CX_TEST_DO { | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1150 | size_t written = cxBufferWrite(data, 1, SIZE_MAX - 2, &buf); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1151 | CX_TEST_ASSERT(written == 0); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1152 | CX_TEST_ASSERT(buf.capacity == 8); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1153 | CX_TEST_ASSERT(buf.pos == 4); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1154 | CX_TEST_ASSERT(buf.size == 4); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1155 | CX_TEST_ASSERT(0 == memcmp(buf.space, "prep\0", 5)); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1156 | } | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1157 | cxBufferDestroy(&buf); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1158 | } | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1159 | |
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1160 | CX_TEST(test_buffer_write_only_overwrite) { | 
| 1006 
8ee818fa29f7
fix stupid initialization of target buffer in tests where no flush target is used
 Mike Becker <universe@uap-core.de> parents: 
985diff
changeset | 1161 | CxBuffer buf; | 
| 793 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1162 | cxBufferInit(&buf, NULL, 16, cxDefaultAllocator, CX_BUFFER_DEFAULT); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1163 | memcpy(buf.space, "preptest\0\0\0\0\0\0\0\0", 16); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1164 | buf.capacity = 8; | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1165 | buf.pos = 3; | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1166 | buf.size = 8; | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1167 | buf.flags |= CX_BUFFER_AUTO_EXTEND; | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1168 | CX_TEST_DO { | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1169 | size_t written = cxBufferWrite("XXX", 2, 2, &buf); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1170 | CX_TEST_ASSERT(written == 2); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1171 | CX_TEST_ASSERT(buf.capacity == 8); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1172 | CX_TEST_ASSERT(buf.size == 8); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1173 | CX_TEST_ASSERT(buf.pos == 7); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1174 | CX_TEST_ASSERT(0 == memcmp(buf.space, "preXXX\0t", 8)); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1175 | } | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1176 | cxBufferDestroy(&buf); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1177 | } | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1178 | |
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1179 | CX_TEST(test_buffer_write_flush_at_capacity) { | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1180 | CxBuffer buf, target; | 
| 1110 | 1181 | cxBufferInit(&target, NULL, 8, cxDefaultAllocator, CX_BUFFER_AUTO_EXTEND); | 
| 1182 | cxBufferInit(&buf, NULL, 8, cxDefaultAllocator, CX_BUFFER_DEFAULT); | |
| 1183 | memset(buf.space, 0, 8); | |
| 1184 | cxBufferPutString(&buf, "prep"); | |
| 793 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1185 | CX_TEST_DO { | 
| 1110 | 1186 | CxBufferFlushConfig flush; | 
| 1187 | flush.threshold = 0; | |
| 1188 | flush.blksize = 32; | |
| 1189 | flush.blkmax = 1; | |
| 1190 | flush.target = ⌖ | |
| 1112 
22dc2163fffd
add convenience macros to avoid a fptr cast for cxBufferRead and cxBufferWrite
 Mike Becker <universe@uap-core.de> parents: 
1110diff
changeset | 1191 | flush.wfunc = cxBufferWriteFunc; | 
| 1110 | 1192 | CX_TEST_ASSERT(0 == cxBufferEnableFlushing(&buf, flush)); | 
| 793 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1193 | size_t written = cxBufferWrite("foo", 1, 3, &buf); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1194 | CX_TEST_ASSERT(written == 3); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1195 | CX_TEST_ASSERT(buf.pos == 7); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1196 | CX_TEST_ASSERT(buf.size == 7); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1197 | CX_TEST_ASSERT(target.pos == 0); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1198 | CX_TEST_ASSERT(target.size == 0); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1199 | written = cxBufferWrite("hello", 1, 5, &buf); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1200 | CX_TEST_ASSERT(written == 5); | 
| 1110 | 1201 | CX_TEST_ASSERT(buf.pos == 5); | 
| 1202 | CX_TEST_ASSERT(buf.size == 5); | |
| 793 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1203 | CX_TEST_ASSERT(buf.capacity == 8); | 
| 1110 | 1204 | CX_TEST_ASSERT(target.pos == 7); | 
| 1205 | CX_TEST_ASSERT(target.size == 7); | |
| 1206 | CX_TEST_ASSERT(0 == memcmp(buf.space, "hello", 5)); | |
| 1207 | CX_TEST_ASSERT(0 == memcmp(target.space, "prepfoo", 7)); | |
| 793 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1208 | } | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1209 | cxBufferDestroy(&buf); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1210 | cxBufferDestroy(&target); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1211 | } | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1212 | |
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1213 | CX_TEST(test_buffer_write_flush_at_threshold) { | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1214 | CxBuffer buf, target; | 
| 1110 | 1215 | cxBufferInit(&target, NULL, 8, cxDefaultAllocator, CX_BUFFER_AUTO_EXTEND); | 
| 1216 | cxBufferInit(&buf, NULL, 8, cxDefaultAllocator, CX_BUFFER_AUTO_EXTEND); | |
| 1217 | cxBufferPutString(&buf, "prep"); | |
| 793 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1218 | CX_TEST_DO { | 
| 1110 | 1219 | CxBufferFlushConfig flush; | 
| 1291 
5942859fd76c
new auto-extend strategy for CxBuffer - resolves #641
 Mike Becker <universe@uap-core.de> parents: 
1290diff
changeset | 1220 | flush.threshold = 16; | 
| 1110 | 1221 | flush.blksize = 32; | 
| 1222 | flush.blkmax = 1; | |
| 1223 | flush.target = ⌖ | |
| 1112 
22dc2163fffd
add convenience macros to avoid a fptr cast for cxBufferRead and cxBufferWrite
 Mike Becker <universe@uap-core.de> parents: 
1110diff
changeset | 1224 | flush.wfunc = cxBufferWriteFunc; | 
| 1110 | 1225 | CX_TEST_ASSERT(0 == cxBufferEnableFlushing(&buf, flush)); | 
| 793 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1226 | size_t written = cxBufferWrite("foobar", 1, 6, &buf); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1227 | CX_TEST_ASSERT(written == 6); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1228 | CX_TEST_ASSERT(buf.pos == 10); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1229 | CX_TEST_ASSERT(buf.size == 10); | 
| 1291 
5942859fd76c
new auto-extend strategy for CxBuffer - resolves #641
 Mike Becker <universe@uap-core.de> parents: 
1290diff
changeset | 1230 | CX_TEST_ASSERT(buf.capacity == 16); | 
| 793 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1231 | CX_TEST_ASSERT(target.pos == 0); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1232 | CX_TEST_ASSERT(target.size == 0); | 
| 1291 
5942859fd76c
new auto-extend strategy for CxBuffer - resolves #641
 Mike Becker <universe@uap-core.de> parents: 
1290diff
changeset | 1233 | written = cxBufferWrite("hello world", 1, 11, &buf); | 
| 
5942859fd76c
new auto-extend strategy for CxBuffer - resolves #641
 Mike Becker <universe@uap-core.de> parents: 
1290diff
changeset | 1234 | CX_TEST_ASSERT(written == 11); | 
| 
5942859fd76c
new auto-extend strategy for CxBuffer - resolves #641
 Mike Becker <universe@uap-core.de> parents: 
1290diff
changeset | 1235 | CX_TEST_ASSERT(buf.pos == 11); | 
| 
5942859fd76c
new auto-extend strategy for CxBuffer - resolves #641
 Mike Becker <universe@uap-core.de> parents: 
1290diff
changeset | 1236 | CX_TEST_ASSERT(buf.size == 11); | 
| 
5942859fd76c
new auto-extend strategy for CxBuffer - resolves #641
 Mike Becker <universe@uap-core.de> parents: 
1290diff
changeset | 1237 | CX_TEST_ASSERT(buf.capacity == 16); | 
| 1110 | 1238 | CX_TEST_ASSERT(target.pos == 10); | 
| 1239 | CX_TEST_ASSERT(target.size == 10); | |
| 1240 | CX_TEST_ASSERT(0 == memcmp(buf.space, "hello", 5)); | |
| 1241 | CX_TEST_ASSERT(0 == memcmp(target.space, "prepfoobar", 10)); | |
| 793 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1242 | } | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1243 | cxBufferDestroy(&buf); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1244 | cxBufferDestroy(&target); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1245 | } | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1246 | |
| 1110 | 1247 | CX_TEST(test_buffer_write_flush_rate_limited_and_buffer_too_small) { | 
| 1248 | // the idea is that the target only accepts two bytes and | |
| 1249 | // then gives up... accepts another two bytes, gives up, etc. | |
| 1250 | // and at the same time, the written string is too large for | |
| 1251 | // the buffer (buffer can take 8, we want to write 13) | |
| 793 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1252 | CxBuffer buf, target; | 
| 1110 | 1253 | cxBufferInit(&target, NULL, 8, cxDefaultAllocator, CX_BUFFER_AUTO_EXTEND); | 
| 1254 | cxBufferInit(&buf, NULL, 8, cxDefaultAllocator, CX_BUFFER_DEFAULT); | |
| 1255 | cxBufferPutString(&buf, "prep"); | |
| 793 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1256 | CX_TEST_DO { | 
| 1110 | 1257 | CxBufferFlushConfig flush; | 
| 1258 | flush.threshold = 0; | |
| 1259 | flush.blksize = 32; | |
| 1260 | flush.blkmax = 1; | |
| 1261 | flush.target = ⌖ | |
| 1262 | flush.wfunc = (cx_write_func)mock_write_limited_rate; | |
| 1263 | CX_TEST_ASSERT(0 == cxBufferEnableFlushing(&buf, flush)); | |
| 793 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1264 | size_t written = cxBufferWrite("foo", 1, 3, &buf); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1265 | CX_TEST_ASSERT(written == 3); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1266 | CX_TEST_ASSERT(buf.pos == 7); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1267 | CX_TEST_ASSERT(buf.size == 7); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1268 | CX_TEST_ASSERT(target.pos == 0); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1269 | CX_TEST_ASSERT(target.size == 0); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1270 | written = cxBufferWrite("hello, world!", 1, 13, &buf); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1271 | // " world!" fits into this buffer, the remaining stuff is flushed out | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1272 | CX_TEST_ASSERT(written == 13); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1273 | CX_TEST_ASSERT(buf.pos == 7); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1274 | CX_TEST_ASSERT(buf.size == 7); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1275 | CX_TEST_ASSERT(buf.capacity == 8); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1276 | CX_TEST_ASSERT(0 == memcmp(buf.space, " world!", 7)); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1277 | CX_TEST_ASSERT(target.pos == 13); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1278 | CX_TEST_ASSERT(target.size == 13); | 
| 1110 | 1279 | CX_TEST_ASSERT(target.capacity >= 13); | 
| 793 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1280 | CX_TEST_ASSERT(0 == memcmp(target.space, "prepfoohello,", 13)); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1281 | } | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1282 | cxBufferDestroy(&buf); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1283 | cxBufferDestroy(&target); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1284 | } | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1285 | |
| 1129 
cc60b7d07912
fix #566 by changing the spec (pro-move 8)
 Mike Becker <universe@uap-core.de> parents: 
1112diff
changeset | 1286 | CX_TEST(test_buffer_write_flush_multibyte) { | 
| 
cc60b7d07912
fix #566 by changing the spec (pro-move 8)
 Mike Becker <universe@uap-core.de> parents: 
1112diff
changeset | 1287 | // this test case tests that flushing works correctly even when the | 
| 
cc60b7d07912
fix #566 by changing the spec (pro-move 8)
 Mike Becker <universe@uap-core.de> parents: 
1112diff
changeset | 1288 | // contents in the buffer are currently not aligned with the item size | 
| 
cc60b7d07912
fix #566 by changing the spec (pro-move 8)
 Mike Becker <universe@uap-core.de> parents: 
1112diff
changeset | 1289 | CxBuffer buf, target; | 
| 
cc60b7d07912
fix #566 by changing the spec (pro-move 8)
 Mike Becker <universe@uap-core.de> parents: 
1112diff
changeset | 1290 | cxBufferInit(&target, NULL, 8, cxDefaultAllocator, CX_BUFFER_AUTO_EXTEND); | 
| 
cc60b7d07912
fix #566 by changing the spec (pro-move 8)
 Mike Becker <universe@uap-core.de> parents: 
1112diff
changeset | 1291 | cxBufferInit(&buf, NULL, 8, cxDefaultAllocator, CX_BUFFER_DEFAULT); | 
| 
cc60b7d07912
fix #566 by changing the spec (pro-move 8)
 Mike Becker <universe@uap-core.de> parents: 
1112diff
changeset | 1292 | memset(buf.space, 0, 8); | 
| 
cc60b7d07912
fix #566 by changing the spec (pro-move 8)
 Mike Becker <universe@uap-core.de> parents: 
1112diff
changeset | 1293 | cxBufferPutString(&buf, "pre"); | 
| 
cc60b7d07912
fix #566 by changing the spec (pro-move 8)
 Mike Becker <universe@uap-core.de> parents: 
1112diff
changeset | 1294 | CX_TEST_DO { | 
| 
cc60b7d07912
fix #566 by changing the spec (pro-move 8)
 Mike Becker <universe@uap-core.de> parents: 
1112diff
changeset | 1295 | CxBufferFlushConfig flush; | 
| 
cc60b7d07912
fix #566 by changing the spec (pro-move 8)
 Mike Becker <universe@uap-core.de> parents: 
1112diff
changeset | 1296 | flush.threshold = 0; | 
| 
cc60b7d07912
fix #566 by changing the spec (pro-move 8)
 Mike Becker <universe@uap-core.de> parents: 
1112diff
changeset | 1297 | flush.blksize = 4; // test blksize that is not aligned | 
| 
cc60b7d07912
fix #566 by changing the spec (pro-move 8)
 Mike Becker <universe@uap-core.de> parents: 
1112diff
changeset | 1298 | flush.blkmax = 2; // test with two blocks | 
| 
cc60b7d07912
fix #566 by changing the spec (pro-move 8)
 Mike Becker <universe@uap-core.de> parents: 
1112diff
changeset | 1299 | flush.target = ⌖ | 
| 
cc60b7d07912
fix #566 by changing the spec (pro-move 8)
 Mike Becker <universe@uap-core.de> parents: 
1112diff
changeset | 1300 | flush.wfunc = cxBufferWriteFunc; | 
| 
cc60b7d07912
fix #566 by changing the spec (pro-move 8)
 Mike Becker <universe@uap-core.de> parents: 
1112diff
changeset | 1301 | CX_TEST_ASSERT(0 == cxBufferEnableFlushing(&buf, flush)); | 
| 
cc60b7d07912
fix #566 by changing the spec (pro-move 8)
 Mike Becker <universe@uap-core.de> parents: 
1112diff
changeset | 1302 | // first case: string fits after flush | 
| 
cc60b7d07912
fix #566 by changing the spec (pro-move 8)
 Mike Becker <universe@uap-core.de> parents: 
1112diff
changeset | 1303 | size_t written = cxBufferWrite("foobar", 3, 2, &buf); | 
| 
cc60b7d07912
fix #566 by changing the spec (pro-move 8)
 Mike Becker <universe@uap-core.de> parents: 
1112diff
changeset | 1304 | CX_TEST_ASSERT(written == 2); | 
| 
cc60b7d07912
fix #566 by changing the spec (pro-move 8)
 Mike Becker <universe@uap-core.de> parents: 
1112diff
changeset | 1305 | CX_TEST_ASSERT(buf.pos == 6); | 
| 
cc60b7d07912
fix #566 by changing the spec (pro-move 8)
 Mike Becker <universe@uap-core.de> parents: 
1112diff
changeset | 1306 | CX_TEST_ASSERT(buf.size == 6); | 
| 
cc60b7d07912
fix #566 by changing the spec (pro-move 8)
 Mike Becker <universe@uap-core.de> parents: 
1112diff
changeset | 1307 | CX_TEST_ASSERT(target.pos == 3); | 
| 
cc60b7d07912
fix #566 by changing the spec (pro-move 8)
 Mike Becker <universe@uap-core.de> parents: 
1112diff
changeset | 1308 | CX_TEST_ASSERT(target.size == 3); | 
| 
cc60b7d07912
fix #566 by changing the spec (pro-move 8)
 Mike Becker <universe@uap-core.de> parents: 
1112diff
changeset | 1309 | CX_TEST_ASSERT(0 == memcmp(buf.space, "foobar", 6)); | 
| 
cc60b7d07912
fix #566 by changing the spec (pro-move 8)
 Mike Becker <universe@uap-core.de> parents: 
1112diff
changeset | 1310 | CX_TEST_ASSERT(0 == memcmp(target.space, "pre", 3)); | 
| 
cc60b7d07912
fix #566 by changing the spec (pro-move 8)
 Mike Becker <universe@uap-core.de> parents: 
1112diff
changeset | 1311 | // second case: string does not fit, data is relayed, but only two blocks! | 
| 
cc60b7d07912
fix #566 by changing the spec (pro-move 8)
 Mike Becker <universe@uap-core.de> parents: 
1112diff
changeset | 1312 | written = cxBufferWrite("bazfooBAR", 3, 3, &buf); | 
| 
cc60b7d07912
fix #566 by changing the spec (pro-move 8)
 Mike Becker <universe@uap-core.de> parents: 
1112diff
changeset | 1313 | CX_TEST_ASSERT(written == 3); | 
| 
cc60b7d07912
fix #566 by changing the spec (pro-move 8)
 Mike Becker <universe@uap-core.de> parents: 
1112diff
changeset | 1314 | CX_TEST_ASSERT(buf.pos == 3); | 
| 
cc60b7d07912
fix #566 by changing the spec (pro-move 8)
 Mike Becker <universe@uap-core.de> parents: 
1112diff
changeset | 1315 | CX_TEST_ASSERT(buf.size == 3); | 
| 
cc60b7d07912
fix #566 by changing the spec (pro-move 8)
 Mike Becker <universe@uap-core.de> parents: 
1112diff
changeset | 1316 | CX_TEST_ASSERT(target.pos == 15); | 
| 
cc60b7d07912
fix #566 by changing the spec (pro-move 8)
 Mike Becker <universe@uap-core.de> parents: 
1112diff
changeset | 1317 | CX_TEST_ASSERT(target.size == 15); | 
| 
cc60b7d07912
fix #566 by changing the spec (pro-move 8)
 Mike Becker <universe@uap-core.de> parents: 
1112diff
changeset | 1318 | CX_TEST_ASSERT(0 == memcmp(buf.space, "BAR", 3)); | 
| 
cc60b7d07912
fix #566 by changing the spec (pro-move 8)
 Mike Becker <universe@uap-core.de> parents: 
1112diff
changeset | 1319 | CX_TEST_ASSERT(0 == memcmp(target.space, "prefoobarbazfoo", 15)); | 
| 
cc60b7d07912
fix #566 by changing the spec (pro-move 8)
 Mike Becker <universe@uap-core.de> parents: 
1112diff
changeset | 1320 | // third case: everything can be relayed, block size is large enough | 
| 
cc60b7d07912
fix #566 by changing the spec (pro-move 8)
 Mike Becker <universe@uap-core.de> parents: 
1112diff
changeset | 1321 | buf.flush->blkmax = 3; | 
| 
cc60b7d07912
fix #566 by changing the spec (pro-move 8)
 Mike Becker <universe@uap-core.de> parents: 
1112diff
changeset | 1322 | written = cxBufferWrite("abcdef012", 3, 3, &buf); | 
| 
cc60b7d07912
fix #566 by changing the spec (pro-move 8)
 Mike Becker <universe@uap-core.de> parents: 
1112diff
changeset | 1323 | CX_TEST_ASSERT(written == 3); | 
| 
cc60b7d07912
fix #566 by changing the spec (pro-move 8)
 Mike Becker <universe@uap-core.de> parents: 
1112diff
changeset | 1324 | CX_TEST_ASSERT(buf.pos == 0); | 
| 
cc60b7d07912
fix #566 by changing the spec (pro-move 8)
 Mike Becker <universe@uap-core.de> parents: 
1112diff
changeset | 1325 | CX_TEST_ASSERT(buf.size == 0); | 
| 
cc60b7d07912
fix #566 by changing the spec (pro-move 8)
 Mike Becker <universe@uap-core.de> parents: 
1112diff
changeset | 1326 | CX_TEST_ASSERT(target.pos == 27); | 
| 
cc60b7d07912
fix #566 by changing the spec (pro-move 8)
 Mike Becker <universe@uap-core.de> parents: 
1112diff
changeset | 1327 | CX_TEST_ASSERT(target.size == 27); | 
| 
cc60b7d07912
fix #566 by changing the spec (pro-move 8)
 Mike Becker <universe@uap-core.de> parents: 
1112diff
changeset | 1328 | CX_TEST_ASSERT(0 == memcmp(target.space, "prefoobarbazfooBARabcdef012", 27)); | 
| 
cc60b7d07912
fix #566 by changing the spec (pro-move 8)
 Mike Becker <universe@uap-core.de> parents: 
1112diff
changeset | 1329 | } | 
| 
cc60b7d07912
fix #566 by changing the spec (pro-move 8)
 Mike Becker <universe@uap-core.de> parents: 
1112diff
changeset | 1330 | cxBufferDestroy(&buf); | 
| 
cc60b7d07912
fix #566 by changing the spec (pro-move 8)
 Mike Becker <universe@uap-core.de> parents: 
1112diff
changeset | 1331 | cxBufferDestroy(&target); | 
| 
cc60b7d07912
fix #566 by changing the spec (pro-move 8)
 Mike Becker <universe@uap-core.de> parents: 
1112diff
changeset | 1332 | } | 
| 
cc60b7d07912
fix #566 by changing the spec (pro-move 8)
 Mike Becker <universe@uap-core.de> parents: 
1112diff
changeset | 1333 | |
| 
cc60b7d07912
fix #566 by changing the spec (pro-move 8)
 Mike Becker <universe@uap-core.de> parents: 
1112diff
changeset | 1334 | CX_TEST(test_buffer_write_flush_misaligned) { | 
| 
cc60b7d07912
fix #566 by changing the spec (pro-move 8)
 Mike Becker <universe@uap-core.de> parents: 
1112diff
changeset | 1335 | // this test case tests that flushing works correctly even when the | 
| 
cc60b7d07912
fix #566 by changing the spec (pro-move 8)
 Mike Becker <universe@uap-core.de> parents: 
1112diff
changeset | 1336 | // contents in the buffer are currently not aligned with the item size | 
| 
cc60b7d07912
fix #566 by changing the spec (pro-move 8)
 Mike Becker <universe@uap-core.de> parents: 
1112diff
changeset | 1337 | CxBuffer buf, target; | 
| 
cc60b7d07912
fix #566 by changing the spec (pro-move 8)
 Mike Becker <universe@uap-core.de> parents: 
1112diff
changeset | 1338 | cxBufferInit(&target, NULL, 8, cxDefaultAllocator, CX_BUFFER_AUTO_EXTEND); | 
| 
cc60b7d07912
fix #566 by changing the spec (pro-move 8)
 Mike Becker <universe@uap-core.de> parents: 
1112diff
changeset | 1339 | cxBufferInit(&buf, NULL, 8, cxDefaultAllocator, CX_BUFFER_DEFAULT); | 
| 
cc60b7d07912
fix #566 by changing the spec (pro-move 8)
 Mike Becker <universe@uap-core.de> parents: 
1112diff
changeset | 1340 | cxBufferPutString(&buf, "prep"); | 
| 
cc60b7d07912
fix #566 by changing the spec (pro-move 8)
 Mike Becker <universe@uap-core.de> parents: 
1112diff
changeset | 1341 | CX_TEST_DO { | 
| 
cc60b7d07912
fix #566 by changing the spec (pro-move 8)
 Mike Becker <universe@uap-core.de> parents: 
1112diff
changeset | 1342 | CxBufferFlushConfig flush; | 
| 
cc60b7d07912
fix #566 by changing the spec (pro-move 8)
 Mike Becker <universe@uap-core.de> parents: 
1112diff
changeset | 1343 | flush.threshold = 0; | 
| 
cc60b7d07912
fix #566 by changing the spec (pro-move 8)
 Mike Becker <universe@uap-core.de> parents: 
1112diff
changeset | 1344 | flush.blksize = 32; | 
| 
cc60b7d07912
fix #566 by changing the spec (pro-move 8)
 Mike Becker <universe@uap-core.de> parents: 
1112diff
changeset | 1345 | flush.blkmax = 1; | 
| 
cc60b7d07912
fix #566 by changing the spec (pro-move 8)
 Mike Becker <universe@uap-core.de> parents: 
1112diff
changeset | 1346 | flush.target = ⌖ | 
| 
cc60b7d07912
fix #566 by changing the spec (pro-move 8)
 Mike Becker <universe@uap-core.de> parents: 
1112diff
changeset | 1347 | flush.wfunc = cxBufferWriteFunc; | 
| 
cc60b7d07912
fix #566 by changing the spec (pro-move 8)
 Mike Becker <universe@uap-core.de> parents: 
1112diff
changeset | 1348 | CX_TEST_ASSERT(0 == cxBufferEnableFlushing(&buf, flush)); | 
| 
cc60b7d07912
fix #566 by changing the spec (pro-move 8)
 Mike Becker <universe@uap-core.de> parents: 
1112diff
changeset | 1349 | // first case: string fits after flush | 
| 
cc60b7d07912
fix #566 by changing the spec (pro-move 8)
 Mike Becker <universe@uap-core.de> parents: 
1112diff
changeset | 1350 | size_t written = cxBufferWrite("foobar", 3, 2, &buf); | 
| 
cc60b7d07912
fix #566 by changing the spec (pro-move 8)
 Mike Becker <universe@uap-core.de> parents: 
1112diff
changeset | 1351 | CX_TEST_ASSERT(written == 2); | 
| 
cc60b7d07912
fix #566 by changing the spec (pro-move 8)
 Mike Becker <universe@uap-core.de> parents: 
1112diff
changeset | 1352 | CX_TEST_ASSERT(buf.pos == 7); | 
| 
cc60b7d07912
fix #566 by changing the spec (pro-move 8)
 Mike Becker <universe@uap-core.de> parents: 
1112diff
changeset | 1353 | CX_TEST_ASSERT(buf.size == 7); | 
| 
cc60b7d07912
fix #566 by changing the spec (pro-move 8)
 Mike Becker <universe@uap-core.de> parents: 
1112diff
changeset | 1354 | CX_TEST_ASSERT(target.pos == 3); | 
| 
cc60b7d07912
fix #566 by changing the spec (pro-move 8)
 Mike Becker <universe@uap-core.de> parents: 
1112diff
changeset | 1355 | CX_TEST_ASSERT(target.size == 3); | 
| 
cc60b7d07912
fix #566 by changing the spec (pro-move 8)
 Mike Becker <universe@uap-core.de> parents: 
1112diff
changeset | 1356 | CX_TEST_ASSERT(0 == memcmp(buf.space, "pfoobar", 7)); | 
| 
cc60b7d07912
fix #566 by changing the spec (pro-move 8)
 Mike Becker <universe@uap-core.de> parents: 
1112diff
changeset | 1357 | CX_TEST_ASSERT(0 == memcmp(target.space, "pre", 3)); | 
| 
cc60b7d07912
fix #566 by changing the spec (pro-move 8)
 Mike Becker <universe@uap-core.de> parents: 
1112diff
changeset | 1358 | // second case: string does not fit, relaying not possible due to misalignment | 
| 1135 
f79415d974d3
add test case for flushing when target is full and fixes a bug related to that
 Mike Becker <universe@uap-core.de> parents: 
1131diff
changeset | 1359 | // string will be truncated (two items fit into buffer, the third does not) | 
| 1129 
cc60b7d07912
fix #566 by changing the spec (pro-move 8)
 Mike Becker <universe@uap-core.de> parents: 
1112diff
changeset | 1360 | written = cxBufferWrite("bazfoobar", 3, 3, &buf); | 
| 1135 
f79415d974d3
add test case for flushing when target is full and fixes a bug related to that
 Mike Becker <universe@uap-core.de> parents: 
1131diff
changeset | 1361 | CX_TEST_ASSERT(written == 2); | 
| 
f79415d974d3
add test case for flushing when target is full and fixes a bug related to that
 Mike Becker <universe@uap-core.de> parents: 
1131diff
changeset | 1362 | CX_TEST_ASSERT(buf.pos == 7); | 
| 
f79415d974d3
add test case for flushing when target is full and fixes a bug related to that
 Mike Becker <universe@uap-core.de> parents: 
1131diff
changeset | 1363 | CX_TEST_ASSERT(buf.size == 7); | 
| 1129 
cc60b7d07912
fix #566 by changing the spec (pro-move 8)
 Mike Becker <universe@uap-core.de> parents: 
1112diff
changeset | 1364 | CX_TEST_ASSERT(target.pos == 9); | 
| 
cc60b7d07912
fix #566 by changing the spec (pro-move 8)
 Mike Becker <universe@uap-core.de> parents: 
1112diff
changeset | 1365 | CX_TEST_ASSERT(target.size == 9); | 
| 1135 
f79415d974d3
add test case for flushing when target is full and fixes a bug related to that
 Mike Becker <universe@uap-core.de> parents: 
1131diff
changeset | 1366 | CX_TEST_ASSERT(0 == memcmp(buf.space, "rbazfoo", 7)); | 
| 1129 
cc60b7d07912
fix #566 by changing the spec (pro-move 8)
 Mike Becker <universe@uap-core.de> parents: 
1112diff
changeset | 1367 | CX_TEST_ASSERT(0 == memcmp(target.space, "prepfooba", 9)); | 
| 
cc60b7d07912
fix #566 by changing the spec (pro-move 8)
 Mike Becker <universe@uap-core.de> parents: 
1112diff
changeset | 1368 | } | 
| 
cc60b7d07912
fix #566 by changing the spec (pro-move 8)
 Mike Becker <universe@uap-core.de> parents: 
1112diff
changeset | 1369 | cxBufferDestroy(&buf); | 
| 
cc60b7d07912
fix #566 by changing the spec (pro-move 8)
 Mike Becker <universe@uap-core.de> parents: 
1112diff
changeset | 1370 | cxBufferDestroy(&target); | 
| 
cc60b7d07912
fix #566 by changing the spec (pro-move 8)
 Mike Becker <universe@uap-core.de> parents: 
1112diff
changeset | 1371 | } | 
| 
cc60b7d07912
fix #566 by changing the spec (pro-move 8)
 Mike Becker <universe@uap-core.de> parents: 
1112diff
changeset | 1372 | |
| 1135 
f79415d974d3
add test case for flushing when target is full and fixes a bug related to that
 Mike Becker <universe@uap-core.de> parents: 
1131diff
changeset | 1373 | CX_TEST(test_buffer_write_flush_target_full) { | 
| 
f79415d974d3
add test case for flushing when target is full and fixes a bug related to that
 Mike Becker <universe@uap-core.de> parents: 
1131diff
changeset | 1374 | CxBuffer buf, target; | 
| 
f79415d974d3
add test case for flushing when target is full and fixes a bug related to that
 Mike Becker <universe@uap-core.de> parents: 
1131diff
changeset | 1375 | // target does NOT auto-extend and can get completely full | 
| 
f79415d974d3
add test case for flushing when target is full and fixes a bug related to that
 Mike Becker <universe@uap-core.de> parents: 
1131diff
changeset | 1376 | cxBufferInit(&target, NULL, 8, cxDefaultAllocator, CX_BUFFER_DEFAULT); | 
| 
f79415d974d3
add test case for flushing when target is full and fixes a bug related to that
 Mike Becker <universe@uap-core.de> parents: 
1131diff
changeset | 1377 | cxBufferInit(&buf, NULL, 8, cxDefaultAllocator, CX_BUFFER_DEFAULT); | 
| 
f79415d974d3
add test case for flushing when target is full and fixes a bug related to that
 Mike Becker <universe@uap-core.de> parents: 
1131diff
changeset | 1378 | cxBufferPutString(&buf, "prep"); | 
| 
f79415d974d3
add test case for flushing when target is full and fixes a bug related to that
 Mike Becker <universe@uap-core.de> parents: 
1131diff
changeset | 1379 | CX_TEST_DO { | 
| 
f79415d974d3
add test case for flushing when target is full and fixes a bug related to that
 Mike Becker <universe@uap-core.de> parents: 
1131diff
changeset | 1380 | CxBufferFlushConfig flush; | 
| 
f79415d974d3
add test case for flushing when target is full and fixes a bug related to that
 Mike Becker <universe@uap-core.de> parents: 
1131diff
changeset | 1381 | flush.threshold = 0; | 
| 
f79415d974d3
add test case for flushing when target is full and fixes a bug related to that
 Mike Becker <universe@uap-core.de> parents: 
1131diff
changeset | 1382 | flush.blksize = 32; | 
| 
f79415d974d3
add test case for flushing when target is full and fixes a bug related to that
 Mike Becker <universe@uap-core.de> parents: 
1131diff
changeset | 1383 | flush.blkmax = 1; | 
| 
f79415d974d3
add test case for flushing when target is full and fixes a bug related to that
 Mike Becker <universe@uap-core.de> parents: 
1131diff
changeset | 1384 | flush.target = ⌖ | 
| 
f79415d974d3
add test case for flushing when target is full and fixes a bug related to that
 Mike Becker <universe@uap-core.de> parents: 
1131diff
changeset | 1385 | flush.wfunc = cxBufferWriteFunc; | 
| 
f79415d974d3
add test case for flushing when target is full and fixes a bug related to that
 Mike Becker <universe@uap-core.de> parents: 
1131diff
changeset | 1386 | CX_TEST_ASSERT(0 == cxBufferEnableFlushing(&buf, flush)); | 
| 
f79415d974d3
add test case for flushing when target is full and fixes a bug related to that
 Mike Becker <universe@uap-core.de> parents: 
1131diff
changeset | 1387 | // step one - flush 4 existing bytes, write 6 new bytes | 
| 
f79415d974d3
add test case for flushing when target is full and fixes a bug related to that
 Mike Becker <universe@uap-core.de> parents: 
1131diff
changeset | 1388 | size_t written = cxBufferWrite("foobar", 1, 6, &buf); | 
| 
f79415d974d3
add test case for flushing when target is full and fixes a bug related to that
 Mike Becker <universe@uap-core.de> parents: 
1131diff
changeset | 1389 | CX_TEST_ASSERT(written == 6); | 
| 
f79415d974d3
add test case for flushing when target is full and fixes a bug related to that
 Mike Becker <universe@uap-core.de> parents: 
1131diff
changeset | 1390 | CX_TEST_ASSERT(buf.pos == 6); | 
| 
f79415d974d3
add test case for flushing when target is full and fixes a bug related to that
 Mike Becker <universe@uap-core.de> parents: 
1131diff
changeset | 1391 | CX_TEST_ASSERT(buf.size == 6); | 
| 
f79415d974d3
add test case for flushing when target is full and fixes a bug related to that
 Mike Becker <universe@uap-core.de> parents: 
1131diff
changeset | 1392 | CX_TEST_ASSERT(target.pos == 4); | 
| 
f79415d974d3
add test case for flushing when target is full and fixes a bug related to that
 Mike Becker <universe@uap-core.de> parents: 
1131diff
changeset | 1393 | CX_TEST_ASSERT(target.size == 4); | 
| 
f79415d974d3
add test case for flushing when target is full and fixes a bug related to that
 Mike Becker <universe@uap-core.de> parents: 
1131diff
changeset | 1394 | CX_TEST_ASSERT(0 == memcmp(buf.space, "foobar", 6)); | 
| 
f79415d974d3
add test case for flushing when target is full and fixes a bug related to that
 Mike Becker <universe@uap-core.de> parents: 
1131diff
changeset | 1395 | CX_TEST_ASSERT(0 == memcmp(target.space, "prep", 4)); | 
| 
f79415d974d3
add test case for flushing when target is full and fixes a bug related to that
 Mike Becker <universe@uap-core.de> parents: 
1131diff
changeset | 1396 | // step two - can only flush 4 more bytes, but rest fits into buffer | 
| 
f79415d974d3
add test case for flushing when target is full and fixes a bug related to that
 Mike Becker <universe@uap-core.de> parents: 
1131diff
changeset | 1397 | written = cxBufferWrite("xyz", 1, 3, &buf); | 
| 
f79415d974d3
add test case for flushing when target is full and fixes a bug related to that
 Mike Becker <universe@uap-core.de> parents: 
1131diff
changeset | 1398 | CX_TEST_ASSERT(written == 3); | 
| 
f79415d974d3
add test case for flushing when target is full and fixes a bug related to that
 Mike Becker <universe@uap-core.de> parents: 
1131diff
changeset | 1399 | CX_TEST_ASSERT(buf.pos == 5); | 
| 
f79415d974d3
add test case for flushing when target is full and fixes a bug related to that
 Mike Becker <universe@uap-core.de> parents: 
1131diff
changeset | 1400 | CX_TEST_ASSERT(buf.size == 5); | 
| 
f79415d974d3
add test case for flushing when target is full and fixes a bug related to that
 Mike Becker <universe@uap-core.de> parents: 
1131diff
changeset | 1401 | CX_TEST_ASSERT(target.pos == 8); | 
| 
f79415d974d3
add test case for flushing when target is full and fixes a bug related to that
 Mike Becker <universe@uap-core.de> parents: 
1131diff
changeset | 1402 | CX_TEST_ASSERT(target.size == 8); | 
| 
f79415d974d3
add test case for flushing when target is full and fixes a bug related to that
 Mike Becker <universe@uap-core.de> parents: 
1131diff
changeset | 1403 | CX_TEST_ASSERT(0 == memcmp(buf.space, "arxyz", 5)); | 
| 
f79415d974d3
add test case for flushing when target is full and fixes a bug related to that
 Mike Becker <universe@uap-core.de> parents: 
1131diff
changeset | 1404 | CX_TEST_ASSERT(0 == memcmp(target.space, "prepfoob", 8)); | 
| 
f79415d974d3
add test case for flushing when target is full and fixes a bug related to that
 Mike Becker <universe@uap-core.de> parents: 
1131diff
changeset | 1405 | // step three - cannot flush more, but can write 3 more bytes | 
| 
f79415d974d3
add test case for flushing when target is full and fixes a bug related to that
 Mike Becker <universe@uap-core.de> parents: 
1131diff
changeset | 1406 | written = cxBufferWrite("123456", 1, 6, &buf); | 
| 
f79415d974d3
add test case for flushing when target is full and fixes a bug related to that
 Mike Becker <universe@uap-core.de> parents: 
1131diff
changeset | 1407 | CX_TEST_ASSERT(written == 3); | 
| 
f79415d974d3
add test case for flushing when target is full and fixes a bug related to that
 Mike Becker <universe@uap-core.de> parents: 
1131diff
changeset | 1408 | CX_TEST_ASSERT(buf.pos == 8); | 
| 
f79415d974d3
add test case for flushing when target is full and fixes a bug related to that
 Mike Becker <universe@uap-core.de> parents: 
1131diff
changeset | 1409 | CX_TEST_ASSERT(buf.size == 8); | 
| 
f79415d974d3
add test case for flushing when target is full and fixes a bug related to that
 Mike Becker <universe@uap-core.de> parents: 
1131diff
changeset | 1410 | CX_TEST_ASSERT(target.pos == 8); | 
| 
f79415d974d3
add test case for flushing when target is full and fixes a bug related to that
 Mike Becker <universe@uap-core.de> parents: 
1131diff
changeset | 1411 | CX_TEST_ASSERT(target.size == 8); | 
| 
f79415d974d3
add test case for flushing when target is full and fixes a bug related to that
 Mike Becker <universe@uap-core.de> parents: 
1131diff
changeset | 1412 | CX_TEST_ASSERT(0 == memcmp(buf.space, "arxyz123", 8)); | 
| 
f79415d974d3
add test case for flushing when target is full and fixes a bug related to that
 Mike Becker <universe@uap-core.de> parents: 
1131diff
changeset | 1413 | CX_TEST_ASSERT(0 == memcmp(target.space, "prepfoob", 8)); | 
| 
f79415d974d3
add test case for flushing when target is full and fixes a bug related to that
 Mike Becker <universe@uap-core.de> parents: 
1131diff
changeset | 1414 | // final test, cannot write anything more | 
| 
f79415d974d3
add test case for flushing when target is full and fixes a bug related to that
 Mike Becker <universe@uap-core.de> parents: 
1131diff
changeset | 1415 | written = cxBufferWrite("baz", 1, 3, &buf); | 
| 
f79415d974d3
add test case for flushing when target is full and fixes a bug related to that
 Mike Becker <universe@uap-core.de> parents: 
1131diff
changeset | 1416 | CX_TEST_ASSERT(written == 0); | 
| 
f79415d974d3
add test case for flushing when target is full and fixes a bug related to that
 Mike Becker <universe@uap-core.de> parents: 
1131diff
changeset | 1417 | CX_TEST_ASSERT(buf.pos == 8); | 
| 
f79415d974d3
add test case for flushing when target is full and fixes a bug related to that
 Mike Becker <universe@uap-core.de> parents: 
1131diff
changeset | 1418 | CX_TEST_ASSERT(buf.size == 8); | 
| 
f79415d974d3
add test case for flushing when target is full and fixes a bug related to that
 Mike Becker <universe@uap-core.de> parents: 
1131diff
changeset | 1419 | CX_TEST_ASSERT(target.pos == 8); | 
| 
f79415d974d3
add test case for flushing when target is full and fixes a bug related to that
 Mike Becker <universe@uap-core.de> parents: 
1131diff
changeset | 1420 | CX_TEST_ASSERT(target.size == 8); | 
| 
f79415d974d3
add test case for flushing when target is full and fixes a bug related to that
 Mike Becker <universe@uap-core.de> parents: 
1131diff
changeset | 1421 | CX_TEST_ASSERT(0 == memcmp(buf.space, "arxyz123", 8)); | 
| 
f79415d974d3
add test case for flushing when target is full and fixes a bug related to that
 Mike Becker <universe@uap-core.de> parents: 
1131diff
changeset | 1422 | CX_TEST_ASSERT(0 == memcmp(target.space, "prepfoob", 8)); | 
| 
f79415d974d3
add test case for flushing when target is full and fixes a bug related to that
 Mike Becker <universe@uap-core.de> parents: 
1131diff
changeset | 1423 | } | 
| 
f79415d974d3
add test case for flushing when target is full and fixes a bug related to that
 Mike Becker <universe@uap-core.de> parents: 
1131diff
changeset | 1424 | cxBufferDestroy(&buf); | 
| 
f79415d974d3
add test case for flushing when target is full and fixes a bug related to that
 Mike Becker <universe@uap-core.de> parents: 
1131diff
changeset | 1425 | cxBufferDestroy(&target); | 
| 
f79415d974d3
add test case for flushing when target is full and fixes a bug related to that
 Mike Becker <universe@uap-core.de> parents: 
1131diff
changeset | 1426 | } | 
| 
f79415d974d3
add test case for flushing when target is full and fixes a bug related to that
 Mike Becker <universe@uap-core.de> parents: 
1131diff
changeset | 1427 | |
| 1110 | 1428 | CX_TEST(test_buffer_flush) { | 
| 1429 | CxBuffer buf, target; | |
| 1430 | cxBufferInit(&target, NULL, 8, cxDefaultAllocator, CX_BUFFER_AUTO_EXTEND); | |
| 1431 | cxBufferInit(&buf, NULL, 8, cxDefaultAllocator, CX_BUFFER_DEFAULT); | |
| 1432 | cxBufferPutString(&buf, "prepare"); | |
| 1433 | CX_TEST_DO { | |
| 1434 | CxBufferFlushConfig flush; | |
| 1435 | flush.threshold = 0; | |
| 1436 | flush.blksize = 2; | |
| 1437 | flush.blkmax = 2; | |
| 1438 | flush.target = ⌖ | |
| 1112 
22dc2163fffd
add convenience macros to avoid a fptr cast for cxBufferRead and cxBufferWrite
 Mike Becker <universe@uap-core.de> parents: 
1110diff
changeset | 1439 | flush.wfunc = cxBufferWriteFunc; | 
| 1110 | 1440 | CX_TEST_ASSERT(0 == cxBufferEnableFlushing(&buf, flush)); | 
| 1441 | CX_TEST_ASSERT(buf.size == 7); | |
| 1442 | buf.pos = 5; | |
| 1443 | size_t flushed = cxBufferFlush(&buf); | |
| 1444 | CX_TEST_ASSERT(flushed == flush.blkmax * flush.blksize); | |
| 1445 | CX_TEST_ASSERT(buf.pos == 1); | |
| 1446 | CX_TEST_ASSERT(buf.size == 3); | |
| 1447 | CX_TEST_ASSERT(target.pos == 4); | |
| 1448 | CX_TEST_ASSERT(target.size == 4); | |
| 1449 | CX_TEST_ASSERT(0 == memcmp(buf.space, "are", 3)); | |
| 1450 | CX_TEST_ASSERT(0 == memcmp(target.space, "prep", 4)); | |
| 1451 | flushed = cxBufferFlush(&buf); | |
| 1452 | CX_TEST_ASSERT(flushed == 1); | |
| 1453 | CX_TEST_ASSERT(buf.pos == 0); | |
| 1454 | CX_TEST_ASSERT(buf.size == 2); | |
| 1455 | CX_TEST_ASSERT(target.pos == 5); | |
| 1456 | CX_TEST_ASSERT(target.size == 5); | |
| 1457 | CX_TEST_ASSERT(0 == memcmp(buf.space, "re", 2)); | |
| 1458 | CX_TEST_ASSERT(0 == memcmp(target.space, "prepa", 5)); | |
| 1459 | } | |
| 1460 | cxBufferDestroy(&buf); | |
| 1461 | cxBufferDestroy(&target); | |
| 1462 | } | |
| 1463 | ||
| 793 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1464 | CX_TEST(test_buffer_get) { | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1465 | CxBuffer buf; | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1466 | cxBufferInit(&buf, NULL, 16, cxDefaultAllocator, CX_BUFFER_DEFAULT); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1467 | memcpy(buf.space, "some data\0\0\0\0\0\0\0", 16); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1468 | buf.capacity = 12; | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1469 | buf.size = 9; | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1470 | buf.pos = 2; | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1471 | CX_TEST_DO { | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1472 | CX_TEST_ASSERT(cxBufferGet(&buf) == 'm'); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1473 | CX_TEST_ASSERT(cxBufferGet(&buf) == 'e'); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1474 | CX_TEST_ASSERT(cxBufferGet(&buf) == ' '); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1475 | CX_TEST_ASSERT(cxBufferGet(&buf) == 'd'); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1476 | CX_TEST_ASSERT(buf.pos == 6); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1477 | } | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1478 | cxBufferDestroy(&buf); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1479 | } | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1480 | |
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1481 | CX_TEST(test_buffer_get_eof) { | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1482 | CxBuffer buf; | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1483 | cxBufferInit(&buf, NULL, 16, cxDefaultAllocator, CX_BUFFER_DEFAULT); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1484 | memcpy(buf.space, "some data\0\0\0\0\0\0\0", 16); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1485 | buf.capacity = 12; | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1486 | buf.pos = buf.size = 9; | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1487 | CX_TEST_DO { | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1488 | CX_TEST_ASSERT(cxBufferGet(&buf) == EOF); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1489 | } | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1490 | cxBufferDestroy(&buf); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1491 | } | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1492 | |
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1493 | CX_TEST(test_buffer_read) { | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1494 | CxBuffer buf; | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1495 | cxBufferInit(&buf, NULL, 16, cxDefaultAllocator, CX_BUFFER_DEFAULT); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1496 | memcpy(buf.space, "some data\0\0\0\0\0\0\0", 16); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1497 | buf.capacity = 12; | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1498 | buf.size = 9; | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1499 | buf.pos = 2; | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1500 | CX_TEST_DO { | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1501 | char target[4]; | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1502 | size_t read = cxBufferRead(&target, 1, 4, &buf); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1503 | CX_TEST_ASSERT(read == 4); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1504 | CX_TEST_ASSERT(0 == memcmp(&target, "me d", 4)); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1505 | CX_TEST_ASSERT(buf.pos == 6); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1506 | } | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1507 | cxBufferDestroy(&buf); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1508 | } | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1509 | |
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1510 | CX_TEST(test_buffer_read_oob) { | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1511 | CxBuffer buf; | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1512 | cxBufferInit(&buf, NULL, 16, cxDefaultAllocator, CX_BUFFER_DEFAULT); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1513 | memcpy(buf.space, "some data\0\0\0\0\0\0\0", 16); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1514 | buf.capacity = 12; | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1515 | buf.size = 9; | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1516 | buf.pos = 6; | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1517 | CX_TEST_DO { | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1518 | char target[4]; | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1519 | size_t read = cxBufferRead(&target, 1, 4, &buf); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1520 | CX_TEST_ASSERT(read == 3); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1521 | CX_TEST_ASSERT(0 == memcmp(&target, "ata", 3)); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1522 | CX_TEST_ASSERT(buf.pos == 9); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1523 | } | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1524 | cxBufferDestroy(&buf); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1525 | } | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1526 | |
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1527 | CX_TEST(test_buffer_read_oob_multibyte) { | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1528 | CxBuffer buf; | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1529 | cxBufferInit(&buf, NULL, 16, cxDefaultAllocator, CX_BUFFER_DEFAULT); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1530 | memcpy(buf.space, "some data\0\0\0\0\0\0\0", 16); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1531 | buf.capacity = 12; | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1532 | buf.size = 9; | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1533 | buf.pos = 6; | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1534 | CX_TEST_DO { | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1535 | char target[4]; | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1536 | target[2] = '\0'; | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1537 | size_t read = cxBufferRead(&target, 2, 2, &buf); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1538 | CX_TEST_ASSERT(read == 1); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1539 | CX_TEST_ASSERT(0 == memcmp(&target, "at\0", 3)); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1540 | CX_TEST_ASSERT(buf.pos == 8); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1541 | } | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1542 | cxBufferDestroy(&buf); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1543 | } | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1544 | |
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1545 | CX_TEST(test_buffer_read_eof) { | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1546 | CxBuffer buf; | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1547 | cxBufferInit(&buf, NULL, 16, cxDefaultAllocator, CX_BUFFER_DEFAULT); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1548 | memcpy(buf.space, "some data\0\0\0\0\0\0\0", 16); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1549 | buf.capacity = 12; | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1550 | buf.size = buf.pos = 9; | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1551 | CX_TEST_DO { | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1552 | char target[4]; | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1553 | size_t read = cxBufferRead(&target, 1, 1, &buf); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1554 | CX_TEST_ASSERT(read == 0); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1555 | CX_TEST_ASSERT(buf.pos == 9); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1556 | } | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1557 | cxBufferDestroy(&buf); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1558 | } | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1559 | |
| 789 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 1560 | CxTestSuite *cx_test_suite_buffer(void) { | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 1561 | CxTestSuite *suite = cx_test_suite_new("buffer"); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 1562 | |
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 1563 | cx_test_register(suite, test_buffer_init_wrap_space); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 1564 | cx_test_register(suite, test_buffer_init_wrap_space_auto_extend); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 1565 | cx_test_register(suite, test_buffer_init_wrap_space_auto_free); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 1566 | cx_test_register(suite, test_buffer_init_fresh_space); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 1567 | cx_test_register(suite, test_buffer_init_on_heap); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 1568 | cx_test_register(suite, test_buffer_minimum_capacity_sufficient); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 1569 | cx_test_register(suite, test_buffer_minimum_capacity_extend); | 
| 1290 
4ac889e14211
adds cxBufferShrink() - resolves #626
 Mike Becker <universe@uap-core.de> parents: 
1284diff
changeset | 1570 | cx_test_register(suite, test_buffer_shrink); | 
| 
4ac889e14211
adds cxBufferShrink() - resolves #626
 Mike Becker <universe@uap-core.de> parents: 
1284diff
changeset | 1571 | cx_test_register(suite, test_buffer_shrink_copy_on_write); | 
| 
4ac889e14211
adds cxBufferShrink() - resolves #626
 Mike Becker <universe@uap-core.de> parents: 
1284diff
changeset | 1572 | cx_test_register(suite, test_buffer_shrink_copy_on_extend); | 
| 789 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 1573 | cx_test_register(suite, test_buffer_clear); | 
| 1024 
8f99f6c28bd3
add copy-on-write feature to UCX buffer - fixes #531
 Mike Becker <universe@uap-core.de> parents: 
1007diff
changeset | 1574 | cx_test_register(suite, test_buffer_clear_copy_on_write); | 
| 789 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 1575 | cx_test_register(suite, test_buffer_reset); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 1576 | cx_test_register(suite, test_buffer_seek_set_zero); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 1577 | cx_test_register(suite, test_buffer_seek_set_valid); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 1578 | cx_test_register(suite, test_buffer_seek_set_invalid); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 1579 | cx_test_register(suite, test_buffer_seek_cur_zero); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 1580 | cx_test_register(suite, test_buffer_seek_cur_valid_positive); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 1581 | cx_test_register(suite, test_buffer_seek_cur_valid_negative); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 1582 | cx_test_register(suite, test_buffer_seek_cur_invalid_positive); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 1583 | cx_test_register(suite, test_buffer_seek_cur_invalid_negative); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 1584 | cx_test_register(suite, test_buffer_seek_end_zero); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 1585 | cx_test_register(suite, test_buffer_seek_end_valid); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 1586 | cx_test_register(suite, test_buffer_seek_end_invalid); | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 1587 | cx_test_register(suite, test_buffer_seek_whence_invalid); | 
| 792 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 1588 | cx_test_register(suite, test_buffer_eof_reached); | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 1589 | cx_test_register(suite, test_buffer_eof_not_reached); | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 1590 | cx_test_register(suite, test_buffer_shift_left_zero); | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 1591 | cx_test_register(suite, test_buffer_shift_left_zero_offset_interface); | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 1592 | cx_test_register(suite, test_buffer_shift_left_standard); | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 1593 | cx_test_register(suite, test_buffer_shift_left_overshift); | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 1594 | cx_test_register(suite, test_buffer_shift_left_overshift_pos_only); | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 1595 | cx_test_register(suite, test_buffer_shift_left_offset_interface); | 
| 1024 
8f99f6c28bd3
add copy-on-write feature to UCX buffer - fixes #531
 Mike Becker <universe@uap-core.de> parents: 
1007diff
changeset | 1596 | cx_test_register(suite, test_buffer_shift_left_copy_on_write); | 
| 792 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 1597 | cx_test_register(suite, test_buffer_shift_right_zero); | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 1598 | cx_test_register(suite, test_buffer_shift_right_zero_offset_interface); | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 1599 | cx_test_register(suite, test_buffer_shift_right_standard); | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 1600 | cx_test_register(suite, test_buffer_shift_right_overshift_discard); | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 1601 | cx_test_register(suite, test_buffer_shift_right_overshift_extend); | 
| 
3ca984931e1d
migrate more buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
789diff
changeset | 1602 | cx_test_register(suite, test_buffer_shift_right_offset_interface); | 
| 1024 
8f99f6c28bd3
add copy-on-write feature to UCX buffer - fixes #531
 Mike Becker <universe@uap-core.de> parents: 
1007diff
changeset | 1603 | cx_test_register(suite, test_buffer_shift_right_copy_on_write); | 
| 793 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1604 | cx_test_register(suite, test_buffer_write_size_one_fit); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1605 | cx_test_register(suite, test_buffer_write_size_one_discard); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1606 | cx_test_register(suite, test_buffer_write_size_one_extend); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1607 | cx_test_register(suite, test_buffer_write_multibyte_fit); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1608 | cx_test_register(suite, test_buffer_write_multibyte_discard); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1609 | cx_test_register(suite, test_buffer_write_multibyte_extend); | 
| 1024 
8f99f6c28bd3
add copy-on-write feature to UCX buffer - fixes #531
 Mike Becker <universe@uap-core.de> parents: 
1007diff
changeset | 1610 | cx_test_register(suite, test_buffer_write_copy_on_write); | 
| 1030 
06091e067bee
add cxBufferAppend() - fixes #534
 Mike Becker <universe@uap-core.de> parents: 
1028diff
changeset | 1611 | cx_test_register(suite, test_buffer_append); | 
| 1131 
644f77f903b1
fix cxBufferAppend() not adjusting position after flush
 Mike Becker <universe@uap-core.de> parents: 
1129diff
changeset | 1612 | cx_test_register(suite, test_buffer_append_flush); | 
| 793 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1613 | cx_test_register(suite, test_buffer_put_fit); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1614 | cx_test_register(suite, test_buffer_put_discard); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1615 | cx_test_register(suite, test_buffer_put_extend); | 
| 1024 
8f99f6c28bd3
add copy-on-write feature to UCX buffer - fixes #531
 Mike Becker <universe@uap-core.de> parents: 
1007diff
changeset | 1616 | cx_test_register(suite, test_buffer_put_copy_on_write); | 
| 793 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1617 | cx_test_register(suite, test_buffer_put_string_fit); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1618 | cx_test_register(suite, test_buffer_put_string_discard); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1619 | cx_test_register(suite, test_buffer_put_string_extend); | 
| 1028 
3e4905241838
add copy-on-extend feature to UCX buffer - fixes #533
 Mike Becker <universe@uap-core.de> parents: 
1026diff
changeset | 1620 | cx_test_register(suite, test_buffer_put_string_copy_on_extend); | 
| 
3e4905241838
add copy-on-extend feature to UCX buffer - fixes #533
 Mike Becker <universe@uap-core.de> parents: 
1026diff
changeset | 1621 | cx_test_register(suite, test_buffer_put_string_copy_on_write); | 
| 1006 
8ee818fa29f7
fix stupid initialization of target buffer in tests where no flush target is used
 Mike Becker <universe@uap-core.de> parents: 
985diff
changeset | 1622 | cx_test_register(suite, test_buffer_terminate); | 
| 793 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1623 | cx_test_register(suite, test_buffer_write_size_overflow); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1624 | cx_test_register(suite, test_buffer_write_capacity_overflow); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1625 | cx_test_register(suite, test_buffer_write_only_overwrite); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1626 | cx_test_register(suite, test_buffer_write_flush_at_capacity); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1627 | cx_test_register(suite, test_buffer_write_flush_at_threshold); | 
| 1110 | 1628 | cx_test_register(suite, test_buffer_write_flush_rate_limited_and_buffer_too_small); | 
| 1129 
cc60b7d07912
fix #566 by changing the spec (pro-move 8)
 Mike Becker <universe@uap-core.de> parents: 
1112diff
changeset | 1629 | cx_test_register(suite, test_buffer_write_flush_multibyte); | 
| 
cc60b7d07912
fix #566 by changing the spec (pro-move 8)
 Mike Becker <universe@uap-core.de> parents: 
1112diff
changeset | 1630 | cx_test_register(suite, test_buffer_write_flush_misaligned); | 
| 1135 
f79415d974d3
add test case for flushing when target is full and fixes a bug related to that
 Mike Becker <universe@uap-core.de> parents: 
1131diff
changeset | 1631 | cx_test_register(suite, test_buffer_write_flush_target_full); | 
| 1110 | 1632 | cx_test_register(suite, test_buffer_flush); | 
| 793 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1633 | cx_test_register(suite, test_buffer_get); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1634 | cx_test_register(suite, test_buffer_get_eof); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1635 | cx_test_register(suite, test_buffer_read); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1636 | cx_test_register(suite, test_buffer_read_oob); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1637 | cx_test_register(suite, test_buffer_read_oob_multibyte); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1638 | cx_test_register(suite, test_buffer_read_eof); | 
| 
db1c8dfe403a
migrate remaining buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: 
792diff
changeset | 1639 | |
| 789 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 1640 | return suite; | 
| 
9b2f5661bebd
begin migration of buffer tests - relates to #342
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 1641 | } |