test/buffer_tests.c

changeset 64
16590c9c497c
parent 63
1d3500806565
child 69
fb59270b1de3
     1.1 --- a/test/buffer_tests.c	Wed Oct 10 13:58:51 2012 +0200
     1.2 +++ b/test/buffer_tests.c	Wed Oct 10 14:18:06 2012 +0200
     1.3 @@ -145,6 +145,30 @@
     1.4      free(buffer);
     1.5  }
     1.6  
     1.7 +UCX_TEST_IMPLEMENT(test_ucx_buffer_write_ax) {
     1.8 +    char *buffer = malloc(4);
     1.9 +
    1.10 +    UcxBuffer *b = ucx_buffer_new(buffer, 16,
    1.11 +            UCX_BUFFER_AUTOEXTEND | UCX_BUFFER_AUTOFREE);
    1.12 +    int r;
    1.13 +
    1.14 +    UCX_TEST_BEGIN
    1.15 +
    1.16 +    char* teststring = "this is way too much";
    1.17 +    r = ucx_buffer_write(teststring, 1, 20, b);
    1.18 +    buffer = b->space; /* autoextend is enabled, so we MUST retrieve pointer */
    1.19 +    UCX_TEST_ASSERT(r == 20, "not all characters written");
    1.20 +    UCX_TEST_ASSERT(b->size == 32, "buffer not properly extended");
    1.21 +    UCX_TEST_ASSERT(b->pos == 20, "position incorrect");
    1.22 +    UCX_TEST_ASSERT(memcmp(buffer,
    1.23 +            "this is way too much\0\0\0\0\0\0\0\0\0\0\0\0", 32) == 0,
    1.24 +            "incorrect buffer content");
    1.25 +
    1.26 +    UCX_TEST_END
    1.27 +
    1.28 +    ucx_buffer_free(b);
    1.29 +}
    1.30 +
    1.31  UCX_TEST_IMPLEMENT(test_ucx_buffer_read) {
    1.32      char *buffer = malloc(16);
    1.33      memset(buffer, 56, 8);

mercurial