summaryrefslogtreecommitdiffstats
path: root/test/midi_ringbuffer_test.cpp
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2010-01-07 21:27:39 +0000
committerDavid Robillard <d@drobilla.net>2010-01-07 21:27:39 +0000
commit0d009a4e980e40dc8a9c9b5e3d25c3fafb363e95 (patch)
tree4d41dea009f1647519af8df10f114cd7a6165792 /test/midi_ringbuffer_test.cpp
parent61ac4a41f0aea63f45d7b27be3ef2e0554e93ece (diff)
downloadraul-0d009a4e980e40dc8a9c9b5e3d25c3fafb363e95.tar.gz
raul-0d009a4e980e40dc8a9c9b5e3d25c3fafb363e95.tar.bz2
raul-0d009a4e980e40dc8a9c9b5e3d25c3fafb363e95.zip
Move unit testing and coverage framework into autowaf.
Make raul tests return 0 on success, 1 on failure. Test coverage for Raul. git-svn-id: http://svn.drobilla.net/lad/trunk/raul@2368 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'test/midi_ringbuffer_test.cpp')
-rw-r--r--test/midi_ringbuffer_test.cpp43
1 files changed, 43 insertions, 0 deletions
diff --git a/test/midi_ringbuffer_test.cpp b/test/midi_ringbuffer_test.cpp
new file mode 100644
index 0000000..f75cfd5
--- /dev/null
+++ b/test/midi_ringbuffer_test.cpp
@@ -0,0 +1,43 @@
+#include <iostream>
+#include <cstring>
+#include <cstdio>
+#include <stdio.h>
+#include "raul/TimeStamp.hpp"
+#include "raul/EventRingBuffer.hpp"
+#include "raul/midi_names.h"
+
+using namespace std;
+using namespace Raul;
+
+int
+read_write_test(EventRingBuffer& rb, unsigned offset)
+{
+ TimeStamp t(TimeUnit(TimeUnit::FRAMES, 48000), 0, 0);
+ size_t size;
+ unsigned char write_buf[5];
+ unsigned char read_buf[5];
+
+ snprintf((char*)write_buf, 5, "%d", offset);
+ size = strlen((char*)write_buf);
+
+ const size_t written = rb.write(t, size, write_buf);
+ assert(written == size);
+
+ rb.read(&t, &size, read_buf);
+
+ return (strncmp((const char*)write_buf, (const char*)read_buf, size));
+}
+
+
+int
+main()
+{
+ EventRingBuffer rb(32);
+
+ for (size_t i = 0; i < 1000000; ++i)
+ if (read_write_test(rb, i))
+ return 1;
+
+ return 0;
+}
+