summaryrefslogtreecommitdiffstats
path: root/src/test-bufferq.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/test-bufferq.c')
-rw-r--r--src/test-bufferq.c42
1 files changed, 42 insertions, 0 deletions
diff --git a/src/test-bufferq.c b/src/test-bufferq.c
new file mode 100644
index 0000000..45d65eb
--- /dev/null
+++ b/src/test-bufferq.c
@@ -0,0 +1,42 @@
+#include "bufferq.h"
+#include "malloc.h"
+
+int main(int argc, char *argv[]) {
+
+ sa_bufferq_t q;
+
+ sa_bufferq_init(&q, 1, 1);
+
+ sa_bufferq_push(&q, 0, "{AAAAAAAA}", 10, 0, SA_SEEK_RELATIVE, SA_BUFFERQ_ITEM_STATIC);
+ sa_bufferq_push(&q, 0, "<BBBBBBBB>", 10, 5, SA_SEEK_RELATIVE, SA_BUFFERQ_ITEM_STATIC);
+ sa_bufferq_push(&q, 0, "[CCCC]", 6, -18, SA_SEEK_RELATIVE, SA_BUFFERQ_ITEM_STATIC);
+ sa_bufferq_push(&q, 0, "(DDDD)", 6, -3, SA_SEEK_ABSOLUTE, SA_BUFFERQ_ITEM_STATIC);
+ sa_bufferq_push(&q, 0, sa_strdup("XXX"), 3, 10, SA_SEEK_RELATIVE_END, SA_BUFFERQ_ITEM_DYNAMIC);
+ sa_bufferq_push(&q, 0, "YYYYY", 5, -4, SA_SEEK_RELATIVE, SA_BUFFERQ_ITEM_CONCATENATED);
+
+ sa_bufferq_realloc(&q);
+
+ for (;;) {
+ void *b[1];
+ size_t size;
+
+ sa_bufferq_get(&q, b, &size);
+
+ if (size == 0)
+ break;
+
+ printf("Got %u bytes: ", size);
+ if (b[0])
+ fwrite(b[0], size, 1, stdout);
+ else
+ printf("empty");
+
+ printf("\n");
+
+ sa_bufferq_drop(&q, size);
+ }
+
+ sa_bufferq_done(&q);
+
+ return 0;
+}