Tests for the circular buffer library

Dependencies:   CircularBuffer TestSupportLite mbed

Uses TestSupportLite and implements tests for CircularBuffer library. Output looks something like:

[001] {X} Empty buffer: getSize()
[002] {X} Empty buffer: read()
[003] {X} Empty buffer: peek()
[004] {X} Empty buffer: isEmpty()
[005] {X} Empty buffer: isFull()
[006] {X} Empty buffer: capacity()
[007] {X} Empty buffer: write() single byte
[008] {X} Single-byte buffer: getSize()
[009] {X} Single-byte buffer: peek()
[010] {X} Single-byte buffer: isEmpty()
[011] {X} Single-byte buffer: isFull()
[012] {X} Single-byte buffer: capacity()
[013] {X} Single-byte buffer: read()
[014] {X} Empty buffer: getSize()
[015] {X} Empty buffer: read()
[016] {X} Empty buffer: peek()
[017] {X} Empty buffer: isEmpty()
[018] {X} Empty buffer: isFull()
[019] {X} Empty buffer: capacity()
----- [19 tests run, 19 passed]
Revision:
0:6383f958c806
Child:
1:0b6bc5c2c913
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Sun Jan 19 17:18:55 2014 +0000
@@ -0,0 +1,45 @@
+#include "mbed.h"
+#include "CircularBuffer.h"
+#include "TestSupportSimple.hpp" 
+ 
+#define TEST_BUFFER_SIZE 16
+
+CircularBuffer<TEST_BUFFER_SIZE> buffer;
+uint8_t temp_buffer[ TEST_BUFFER_SIZE ];
+
+void check_empty( void )
+{
+    /* A buffer which is empty should pass all of these tests */
+    
+    TST_EQ( buffer.getSize(), 0, "Empty buffer: getSize()" );
+    TST_EQ( buffer.read( temp_buffer, TEST_BUFFER_SIZE ), 0, "Empty buffer: read()" );
+    TST_EQ( buffer.peek( temp_buffer, TEST_BUFFER_SIZE ), 0, "Empty buffer: peek()" );
+    TST_TRUE( buffer.isEmpty(), "Empty buffer: isEmpty()" );
+    TST_FALSE( buffer.isFull(), "Empty buffer: isFull()" );
+    TST_EQ( buffer.getCapacity(), TEST_BUFFER_SIZE, "Empty buffer: capacity()" );
+}
+ 
+int main()
+{
+    check_empty();
+    temp_buffer[ 0 ] = 0x55;
+    
+    /* Write a single byte into the buffer then call various methods */
+    TST_EQ( buffer.write( temp_buffer, 1 ), 1, "Empty buffer: write() single byte" );
+    TST_EQ( buffer.getSize(), 1, "Single-byte buffer: getSize()" );
+    TST_EQ( buffer.peek( temp_buffer, TEST_BUFFER_SIZE ), 1, "Single-byte buffer: peek()" );
+    TST_FALSE( buffer.isEmpty(), "Single-byte buffer: isEmpty()" );
+    TST_FALSE( buffer.isFull(), "Single-byte buffer: isFull()" );
+    TST_EQ( buffer.getCapacity(), TEST_BUFFER_SIZE, "Single-byte buffer: capacity()" );
+    // This test is last as it will empty the buffer again
+    TST_EQ( buffer.read( temp_buffer, TEST_BUFFER_SIZE ), 1, "Single-byte buffer: read()" );
+    
+    /* Now that the buffer is empty again, run the tests to make sure that method returns 
+       are again consistent with this */
+    check_empty();
+    
+    /* TODO: Finish off writing tests! */
+    
+    TST_DONE();
+    return 0;
+}