|
@@ -4,66 +4,66 @@
|
|
|
|
|
|
static void testReadAndWrite(Test& test) {
|
|
|
RingBuffer<int, 5> buffer;
|
|
|
- test.checkEqual(false, buffer.canRead(), "no read from empty buffer");
|
|
|
- buffer.write(4);
|
|
|
- test.checkEqual(true, buffer.canRead(), "can read from buffer with value");
|
|
|
- test.checkEqual(4, buffer.read(), "can read value");
|
|
|
- test.checkEqual(false, buffer.canRead(), "value is gone after read");
|
|
|
+ test.checkFalse(buffer.canRemove(), "no read from empty buffer");
|
|
|
+ buffer.add(4);
|
|
|
+ test.checkTrue(buffer.canRemove(), "can read from buffer with value");
|
|
|
+ test.checkEqual(4, buffer[0], "can read value");
|
|
|
+ test.checkFalse(buffer.remove(), "can remove value");
|
|
|
+ test.checkFalse(buffer.canRemove(), "value is gone after read");
|
|
|
}
|
|
|
|
|
|
static void testOverflow(Test& test) {
|
|
|
RingBuffer<int, 3> buffer;
|
|
|
- bool r1 = buffer.write(1);
|
|
|
- bool r2 = buffer.write(2);
|
|
|
- bool r3 = buffer.write(3);
|
|
|
- bool r4 = buffer.write(4);
|
|
|
- bool r5 = buffer.write(5);
|
|
|
- test.checkEqual(false, r1, "check buffer write return value 1");
|
|
|
- test.checkEqual(false, r2, "check buffer write return value 2");
|
|
|
- test.checkEqual(false, r3, "check buffer write return value 3");
|
|
|
- test.checkEqual(true, r4, "check buffer write return value 4");
|
|
|
- test.checkEqual(true, r5, "check buffer write return value 5");
|
|
|
- test.checkEqual(1, buffer.read(),
|
|
|
- "can read value from overflowed buffer 1");
|
|
|
- test.checkEqual(2, buffer.read(),
|
|
|
- "can read value from overflowed buffer 2");
|
|
|
- test.checkEqual(3, buffer.read(),
|
|
|
- "can read value from overflowed buffer 3");
|
|
|
- test.checkEqual(false, buffer.canRead(), "values are gone after full read");
|
|
|
+ bool r1 = buffer.add(1);
|
|
|
+ bool r2 = buffer.add(2);
|
|
|
+ bool r3 = buffer.add(3);
|
|
|
+ bool r4 = buffer.add(4);
|
|
|
+ bool r5 = buffer.add(5);
|
|
|
+ test.checkFalse(r1, "check buffer write return value 1");
|
|
|
+ test.checkFalse(r2, "check buffer write return value 2");
|
|
|
+ test.checkFalse(r3, "check buffer write return value 3");
|
|
|
+ test.checkTrue(r4, "check buffer write return value 4");
|
|
|
+ test.checkTrue(r5, "check buffer write return value 5");
|
|
|
+ test.checkEqual(1, buffer[0], "can read value from overflowed buffer 1");
|
|
|
+ test.checkFalse(buffer.remove(), "can remove from overflowed buffer 1");
|
|
|
+ test.checkEqual(2, buffer[0], "can read value from overflowed buffer 2");
|
|
|
+ test.checkFalse(buffer.remove(), "can remove from overflowed buffer 2");
|
|
|
+ test.checkEqual(3, buffer[0], "can read value from overflowed buffer 3");
|
|
|
+ test.checkFalse(buffer.remove(), "can read value from overflowed buffer 3");
|
|
|
+ test.checkFalse(buffer.canRemove(), "values are gone after full read");
|
|
|
}
|
|
|
|
|
|
static void testRefill(Test& test) {
|
|
|
RingBuffer<int, 3> buffer;
|
|
|
- buffer.write(1);
|
|
|
- buffer.write(2);
|
|
|
- buffer.write(3);
|
|
|
- buffer.write(4);
|
|
|
- test.checkEqual(true, buffer.canRead(), "values are ready to be read 2");
|
|
|
- test.checkEqual(1, buffer.read(),
|
|
|
- "can read value from overflowed buffer 1");
|
|
|
- test.checkEqual(2, buffer.read(),
|
|
|
- "can read value from overflowed buffer 2");
|
|
|
- test.checkEqual(3, buffer.read(),
|
|
|
- "can read value from overflowed buffer 3");
|
|
|
- test.checkEqual(false, buffer.canRead(),
|
|
|
- "values are gone after full read 1");
|
|
|
- buffer.write(5);
|
|
|
- buffer.write(6);
|
|
|
- test.checkEqual(true, buffer.canRead(), "values are ready to be read 2");
|
|
|
- test.checkEqual(5, buffer.read(),
|
|
|
- "can read value from overflowed buffer 4");
|
|
|
- test.checkEqual(6, buffer.read(),
|
|
|
- "can read value from overflowed buffer 5");
|
|
|
- test.checkEqual(false, buffer.canRead(),
|
|
|
- "values are gone after full read 1");
|
|
|
+ buffer.add(1);
|
|
|
+ buffer.add(2);
|
|
|
+ buffer.add(3);
|
|
|
+ buffer.add(4);
|
|
|
+ test.checkTrue(buffer.canRemove(), "values are ready to be read 2");
|
|
|
+ test.checkEqual(1, buffer[0], "can read value from overflowed buffer 1");
|
|
|
+ test.checkFalse(buffer.remove(), "can remove from overflowed buffer 1");
|
|
|
+ test.checkEqual(2, buffer[0], "can read value from overflowed buffer 2");
|
|
|
+ test.checkFalse(buffer.remove(), "can remove from overflowed buffer 2");
|
|
|
+ test.checkEqual(3, buffer[0], "can read value from overflowed buffer 3");
|
|
|
+ test.checkFalse(buffer.remove(), "can read value from overflowed buffer 3");
|
|
|
+
|
|
|
+ test.checkFalse(buffer.canRemove(), "values are gone after full read 1");
|
|
|
+ buffer.add(5);
|
|
|
+ buffer.add(6);
|
|
|
+ test.checkTrue(buffer.canRemove(), "values are ready to be read 2");
|
|
|
+ test.checkEqual(5, buffer[0], "can read value from overflowed buffer 4");
|
|
|
+ test.checkFalse(buffer.remove(), "can remove from overflowed buffer 4");
|
|
|
+ test.checkEqual(6, buffer[0], "can read value from overflowed buffer 5");
|
|
|
+ test.checkFalse(buffer.remove(), "can read value from overflowed buffer 5");
|
|
|
+ test.checkFalse(buffer.canRemove(), "values are gone after full read 1");
|
|
|
}
|
|
|
|
|
|
static void testClear(Test& test) {
|
|
|
RingBuffer<int, 3> buffer;
|
|
|
- buffer.write(1);
|
|
|
- buffer.write(2);
|
|
|
+ buffer.add(1);
|
|
|
+ buffer.add(2);
|
|
|
buffer.clear();
|
|
|
- test.checkEqual(false, buffer.canRead(), "no read after clear");
|
|
|
+ test.checkFalse(buffer.canRemove(), "no read after clear");
|
|
|
}
|
|
|
|
|
|
void RingBufferTests::test() {
|