/* Reset the buffer. used size and it's contents are zeroed. */
void buffer_reset(buffer_t *buf);
-/* Write data to buffer at specified position. */
+/* Write data to buffer at specified position. If pos is beyond the buffer's
+ current size, it is zero-filled up to that point (even if data_size==0). */
void buffer_write(buffer_t *buf, size_t pos,
const void *data, size_t data_size);
/* Append data to buffer. */
buffer_free(&buf);
}
+static void test_buffer_write(void)
+{
+ buffer_t *buf;
+
+ test_begin("buffer_write");
+ buf = buffer_create_dynamic(pool_datastack_create(), 8);
+ buffer_write(buf, 5, buf, 0);
+ test_assert(buf->used == 5);
+ test_end();
+}
+
static void test_buffer_set_used_size(void)
{
buffer_t *buf;
void test_buffer(void)
{
test_buffer_random();
+ test_buffer_write();
test_buffer_set_used_size();
test_buffer_truncate_bits();
}