summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2008-03-15 15:21:26 +0000
committerLennart Poettering <lennart@poettering.net>2008-03-15 15:21:26 +0000
commitebecf3d3e19ac56f507ce771d5c455198280a80c (patch)
treeec61448feef22594da0ba402e9147d59b74bc7b4
parent12c01e942d23bd477e14b467e66352e6ce0557a9 (diff)
commit glitch-free work
git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/glitch-free@2123 fefdeb5f-60dc-0310-8127-8f9354f1896f
-rw-r--r--src/tests/memblockq-test.c59
1 files changed, 35 insertions, 24 deletions
diff --git a/src/tests/memblockq-test.c b/src/tests/memblockq-test.c
index 25ea399b..402c8579 100644
--- a/src/tests/memblockq-test.c
+++ b/src/tests/memblockq-test.c
@@ -31,6 +31,30 @@
#include <pulsecore/memblockq.h>
#include <pulsecore/log.h>
+static void dump(pa_memblockq *bq) {
+ printf(">");
+
+ for (;;) {
+ pa_memchunk out;
+ char *e;
+ size_t n;
+ void *q;
+
+ if (pa_memblockq_peek(bq, &out) < 0)
+ break;
+
+ q = pa_memblock_acquire(out.memblock);
+ for (e = (char*) q + out.index, n = 0; n < out.length; n++)
+ printf("%c", *e);
+ pa_memblock_release(out.memblock);
+
+ pa_memblock_unref(out.memblock);
+ pa_memblockq_drop(bq, out.length);
+ }
+
+ printf("<\n");
+}
+
int main(int argc, char *argv[]) {
int ret;
@@ -46,7 +70,7 @@ int main(int argc, char *argv[]) {
silence = pa_memblock_new_fixed(p, (char*) "__", 2, 1);
assert(silence);
- bq = pa_memblockq_new(0, 40, 10, 2, 4, 4, silence);
+ bq = pa_memblockq_new(0, 40, 10, 2, 4, 4, 40, silence);
assert(bq);
chunk1.memblock = pa_memblock_new_fixed(p, (char*) "11", 2, 1);
@@ -72,13 +96,13 @@ int main(int argc, char *argv[]) {
ret = pa_memblockq_push(bq, &chunk1);
assert(ret == 0);
- ret = pa_memblockq_push(bq, &chunk1);
+ ret = pa_memblockq_push(bq, &chunk2);
assert(ret == 0);
- ret = pa_memblockq_push(bq, &chunk2);
+ ret = pa_memblockq_push(bq, &chunk3);
assert(ret == 0);
- ret = pa_memblockq_push(bq, &chunk2);
+ ret = pa_memblockq_push(bq, &chunk4);
assert(ret == 0);
pa_memblockq_seek(bq, -6, 0);
@@ -86,7 +110,7 @@ int main(int argc, char *argv[]) {
assert(ret == 0);
pa_memblockq_seek(bq, -2, 0);
- ret = pa_memblockq_push(bq, &chunk3);
+ ret = pa_memblockq_push(bq, &chunk1);
assert(ret == 0);
pa_memblockq_seek(bq, -10, 0);
@@ -119,28 +143,13 @@ int main(int argc, char *argv[]) {
ret = pa_memblockq_push(bq, &chunk3);
assert(ret == 0);
- pa_memblockq_shorten(bq, pa_memblockq_get_length(bq)-2);
-
- printf(">");
-
- for (;;) {
- pa_memchunk out;
- char *e;
- size_t n;
-
- if (pa_memblockq_peek(bq, &out) < 0)
- break;
+ pa_memblockq_seek(bq, 30, PA_SEEK_RELATIVE);
- p = pa_memblock_acquire(out.memblock);
- for (e = (char*) p + out.index, n = 0; n < out.length; n++)
- printf("%c", *e);
- pa_memblock_release(out.memblock);
+ dump(bq);
- pa_memblock_unref(out.memblock);
- pa_memblockq_drop(bq, out.length);
- }
+ pa_memblockq_rewind(bq, 52);
- printf("<\n");
+ dump(bq);
pa_memblockq_free(bq);
pa_memblock_unref(silence);
@@ -149,5 +158,7 @@ int main(int argc, char *argv[]) {
pa_memblock_unref(chunk3.memblock);
pa_memblock_unref(chunk4.memblock);
+ pa_mempool_free(p);
+
return 0;
}