changeset 848:8371ff905869

buffer: test appending 1 MB in 1 kB chunks Signed-off-by: Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
author Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
date Wed, 13 Oct 2021 19:35:23 -0400
parents 8f12be21f7db
children 1c4d7ff0a682
files tests/test_buffer.c
diffstat 1 files changed, 22 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/tests/test_buffer.c	Wed Oct 13 19:26:11 2021 -0400
+++ b/tests/test_buffer.c	Wed Oct 13 19:35:23 2021 -0400
@@ -242,12 +242,14 @@
 {
 	struct buffer *buffer;
 	size_t startsize;
+	size_t i;
 
+	/* append 1 char at a time */
 	for (startsize = 0; startsize < 300; startsize++) {
 		uint8_t data[256];
 
-		fprintf(stderr, "%s(%p): iter = %3zu...", __func__, _buffer,
-			startsize);
+		fprintf(stderr, "%s(%p): 1 char, iter = %3zu...", __func__,
+			_buffer, startsize);
 
 		buffer = alloc_heap_buffer(_buffer, startsize);
 
@@ -262,6 +264,24 @@
 
 		fprintf(stderr, "ok.\n");
 	}
+
+	/* append 1 MB total, 1 kB at a time */
+	buffer = alloc_heap_buffer(_buffer, 0);
+
+	for (i = 0; i < 1024; i++) {
+		fprintf(stderr, "%s(%p): 1 kB, iter = %3zu...", __func__,
+			_buffer, i);
+
+		check_data(buffer);
+		check_used(buffer, sizeof(data_1k) * i);
+		check_append(buffer, data_1k, sizeof(data_1k));
+		check_data(buffer);
+		check_used(buffer, sizeof(data_1k) * (i + 1));
+
+		fprintf(stderr, "ok.\n");
+	}
+
+	buffer_free(buffer);
 }
 
 static void test_truncate_grow(struct buffer *_buffer)