test/buffer_tests.c

changeset 62
6814aea8462d
parent 61
fb07a0ab9a17
child 63
1d3500806565
equal deleted inserted replaced
61:fb07a0ab9a17 62:6814aea8462d
60 UCX_TEST_ASSERT(ucx_buffer_tell(b) == 3, "pos wrong after first 3 puts"); 60 UCX_TEST_ASSERT(ucx_buffer_tell(b) == 3, "pos wrong after first 3 puts");
61 ucx_buffer_seek(b, 10, SEEK_CUR); 61 ucx_buffer_seek(b, 10, SEEK_CUR);
62 ucx_buffer_putc(b, 48); ucx_buffer_putc(b, 48); ucx_buffer_putc(b, 48); 62 ucx_buffer_putc(b, 48); ucx_buffer_putc(b, 48); ucx_buffer_putc(b, 48);
63 UCX_TEST_ASSERT(ucx_buffer_tell(b) == 16, "pos wrong after last 3 puts"); 63 UCX_TEST_ASSERT(ucx_buffer_tell(b) == 16, "pos wrong after last 3 puts");
64 UCX_TEST_ASSERT(ucx_buffer_eof(b), "eof not set"); 64 UCX_TEST_ASSERT(ucx_buffer_eof(b), "eof not set");
65 UCX_TEST_ASSERT(ucx_buffer_putc(b, 48) == EOF, "put shall return EOF on memof"); 65 UCX_TEST_ASSERT(ucx_buffer_putc(b, 48) == EOF,
66 "put shall return EOF when buffer is full");
66 UCX_TEST_ASSERT(memcmp(buffer, "000 000", 16) == 0, 67 UCX_TEST_ASSERT(memcmp(buffer, "000 000", 16) == 0,
67 "buffer contains incorrect content"); 68 "buffer contains incorrect content");
68 69
69 UCX_TEST_END 70 UCX_TEST_END
70 71
182 UCX_TEST_END 183 UCX_TEST_END
183 184
184 ucx_buffer_free(b); 185 ucx_buffer_free(b);
185 free(buffer); 186 free(buffer);
186 } 187 }
188
189 UCX_TEST_IMPLEMENT(test_ucx_buffer_extract) {
190 char *buffer = malloc(16);
191 strcpy(buffer, "this is a test!");
192
193 UcxBuffer *src = ucx_buffer_new(buffer, 16, UCX_BUFFER_AUTOFREE),
194 *dst = ucx_buffer_extract(src, 5, 5, UCX_BUFFER_DEFAULT);
195
196 UCX_TEST_BEGIN
197 UCX_TEST_ASSERT(ucx_buffer_testflags(dst, UCX_BUFFER_AUTOFREE),
198 "autofree flag shall be enforced");
199 UCX_TEST_ASSERT(ucx_buffer_size(dst) == 5, "wrong size for new buffer");
200 char rb[5];
201 ucx_buffer_read(rb, 1, 5, dst);
202 UCX_TEST_ASSERT(memcmp(rb, "is a ", 5) == 0,
203 "new buffer has incorrect content");
204
205 UCX_TEST_ASSERT(ucx_buffer_extract(dst, 3, 3, UCX_BUFFER_DEFAULT) == NULL,
206 "extract shall fail on invalid bounds");
207
208 UCX_TEST_END
209
210 ucx_buffer_free(dst);
211 ucx_buffer_free(src);
212 }

mercurial