Skip to content

Commit

Permalink
lib: Updated buffer_set_used_size() comment and added unit test.
Browse files Browse the repository at this point in the history
  • Loading branch information
sirainen authored and GitLab committed May 18, 2016
1 parent d04f3e0 commit 94a6b3d
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 3 deletions.
4 changes: 3 additions & 1 deletion src/lib/buffer.h
Expand Up @@ -86,7 +86,9 @@ void *buffer_get_modifiable_data(const buffer_t *buf, size_t *used_size_r)
ATTR_NULL(2);

/* Set the "used size" of buffer, ie. 0 would set the buffer empty.
Must not be used to grow buffer. */
Must not be used to grow buffer. The data after the buffer's new size will
be effectively lost, because e.g. buffer_get_space_unsafe() will zero out
the contents. */
void buffer_set_used_size(buffer_t *buf, size_t used_size);

/* Returns the current buffer size. */
Expand Down
26 changes: 24 additions & 2 deletions src/lib/test-buffer.c
Expand Up @@ -3,8 +3,7 @@
#include "test-lib.h"
#include "buffer.h"


void test_buffer(void)
static void test_buffer_random(void)
{
#define BUF_TEST_SIZE (1024*2)
#define BUF_TEST_COUNT 1000
Expand Down Expand Up @@ -131,3 +130,26 @@ void test_buffer(void)
}
buffer_free(&buf);
}

static void test_buffer_set_used_size(void)
{
buffer_t *buf;

test_begin("buffer_set_used_size");
buf = buffer_create_dynamic(pool_datastack_create(), 8);
memset(buffer_append_space_unsafe(buf, 7), 'a', 7);
buffer_set_used_size(buf, 4);
test_assert(memcmp(buffer_get_space_unsafe(buf, 0, 7), "aaaa\0\0\0", 7) == 0);
memset(buffer_get_space_unsafe(buf, 4, 7), 'b', 7);
buffer_set_used_size(buf, 10);
test_assert(memcmp(buffer_append_space_unsafe(buf, 1), "\0", 1) == 0);
buffer_set_used_size(buf, 11);
test_assert(memcmp(buffer_get_space_unsafe(buf, 0, 11), "aaaabbbbbb\0", 11) == 0);
test_end();
}

void test_buffer(void)
{
test_buffer_random();
test_buffer_set_used_size();
}

0 comments on commit 94a6b3d

Please sign in to comment.