summaryrefslogtreecommitdiffstats
path: root/test-bufferq.c
diff options
context:
space:
mode:
Diffstat (limited to 'test-bufferq.c')
-rw-r--r--test-bufferq.c39
1 files changed, 39 insertions, 0 deletions
diff --git a/test-bufferq.c b/test-bufferq.c
new file mode 100644
index 0000000..d4585e2
--- /dev/null
+++ b/test-bufferq.c
@@ -0,0 +1,39 @@
+#include "bufferq.h"
+
+int main(int argc, char *argv[]) {
+
+ bufferq_t q;
+
+ bufferq_init(&q, 1, 1);
+
+ bufferq_push(&q, 0, "{AAAAAAAA}", 10, 0, SA_SEEK_RELATIVE);
+ bufferq_push(&q, 0, "<BBBBBBBB>", 10, 5, SA_SEEK_RELATIVE);
+ bufferq_push(&q, 0, "[CCCC]", 6, -18, SA_SEEK_RELATIVE);
+ bufferq_push(&q, 0, "(DDDD)", 6, -3, SA_SEEK_ABSOLUTE);
+ bufferq_push(&q, 0, "XXX", 3, 10, SA_SEEK_RELATIVE_END);
+ bufferq_push(&q, 0, "YYYYY", 5, -4, SA_SEEK_RELATIVE);
+
+ for (;;) {
+ void *b[1];
+ size_t size;
+
+ 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");
+
+ bufferq_drop(&q, size);
+ }
+
+ bufferq_done(&q);
+
+ return 0;
+}