test/buffer_tests.c

changeset 62
6814aea8462d
parent 61
fb07a0ab9a17
child 63
1d3500806565
     1.1 --- a/test/buffer_tests.c	Wed Oct 10 10:04:01 2012 +0200
     1.2 +++ b/test/buffer_tests.c	Wed Oct 10 10:46:20 2012 +0200
     1.3 @@ -62,7 +62,8 @@
     1.4      ucx_buffer_putc(b, 48); ucx_buffer_putc(b, 48); ucx_buffer_putc(b, 48);
     1.5      UCX_TEST_ASSERT(ucx_buffer_tell(b) == 16, "pos wrong after last 3 puts");
     1.6      UCX_TEST_ASSERT(ucx_buffer_eof(b), "eof not set");
     1.7 -    UCX_TEST_ASSERT(ucx_buffer_putc(b, 48) == EOF, "put shall return EOF on memof");
     1.8 +    UCX_TEST_ASSERT(ucx_buffer_putc(b, 48) == EOF,
     1.9 +            "put shall return EOF when buffer is full");
    1.10      UCX_TEST_ASSERT(memcmp(buffer, "000          000", 16) == 0,
    1.11              "buffer contains incorrect content");
    1.12  
    1.13 @@ -184,3 +185,28 @@
    1.14      ucx_buffer_free(b);
    1.15      free(buffer);
    1.16  }
    1.17 +
    1.18 +UCX_TEST_IMPLEMENT(test_ucx_buffer_extract) {
    1.19 +    char *buffer = malloc(16);
    1.20 +    strcpy(buffer, "this is a test!");
    1.21 +
    1.22 +    UcxBuffer *src = ucx_buffer_new(buffer, 16, UCX_BUFFER_AUTOFREE),
    1.23 +            *dst = ucx_buffer_extract(src, 5, 5, UCX_BUFFER_DEFAULT);
    1.24 +
    1.25 +    UCX_TEST_BEGIN
    1.26 +    UCX_TEST_ASSERT(ucx_buffer_testflags(dst, UCX_BUFFER_AUTOFREE),
    1.27 +            "autofree flag shall be enforced");
    1.28 +    UCX_TEST_ASSERT(ucx_buffer_size(dst) == 5, "wrong size for new buffer");
    1.29 +    char rb[5];
    1.30 +    ucx_buffer_read(rb, 1, 5, dst);
    1.31 +    UCX_TEST_ASSERT(memcmp(rb, "is a ", 5) == 0,
    1.32 +            "new buffer has incorrect content");
    1.33 +
    1.34 +    UCX_TEST_ASSERT(ucx_buffer_extract(dst, 3, 3, UCX_BUFFER_DEFAULT) == NULL,
    1.35 +            "extract shall fail on invalid bounds");
    1.36 +
    1.37 +    UCX_TEST_END
    1.38 +
    1.39 +    ucx_buffer_free(dst);
    1.40 +    ucx_buffer_free(src);
    1.41 +}

mercurial