A library for talking to Multi-Tech's Cellular SocketModem Devices.

Dependents:   M2X_dev axeda_wrapper_dev MTS_M2x_Example1 MTS_Cellular_Connect_Example ... more

Committer:
mfiore
Date:
Fri Dec 20 21:36:53 2013 +0000
Revision:
60:ee9c7a700330
Parent:
0:563b70517320
Child:
67:1003b410f781
update circular buffer tests; very minute circular buffer improvements

Who changed what in which revision?

UserRevisionLine numberNew contents of line
jengbrecht 0:563b70517320 1 #ifndef TESTMTSCIRCULARBUFFER_H
jengbrecht 0:563b70517320 2 #define TESTMTSCIRCULARBUFFER_H
jengbrecht 0:563b70517320 3
jengbrecht 0:563b70517320 4 #include "MTSCircularBuffer.h"
jengbrecht 0:563b70517320 5 #include "Vars.h"
jengbrecht 0:563b70517320 6
mfiore 60:ee9c7a700330 7 using namespace mts;
mfiore 60:ee9c7a700330 8
jengbrecht 0:563b70517320 9 int capacity = 0;
jengbrecht 0:563b70517320 10 MTSCircularBuffer* buffer = new MTSCircularBuffer(5);
jengbrecht 0:563b70517320 11
jengbrecht 0:563b70517320 12 void callback()
jengbrecht 0:563b70517320 13 {
jengbrecht 0:563b70517320 14 capacity = buffer->capacity();
jengbrecht 0:563b70517320 15 }
jengbrecht 0:563b70517320 16
jengbrecht 0:563b70517320 17 int testMTSCircularBuffer()
jengbrecht 0:563b70517320 18 {
mfiore 60:ee9c7a700330 19 printf("Testing: MTSCircularBuffer\n\r");
jengbrecht 0:563b70517320 20 int failed = 0;
mfiore 60:ee9c7a700330 21 char byte;
jengbrecht 0:563b70517320 22
jengbrecht 0:563b70517320 23
jengbrecht 0:563b70517320 24 //Test getSize method
jengbrecht 0:563b70517320 25 if (buffer->getSize() != 5) {
mfiore 60:ee9c7a700330 26 printf("Failed: getSize()\n\r");
jengbrecht 0:563b70517320 27 failed++;
jengbrecht 0:563b70517320 28 }
jengbrecht 0:563b70517320 29
jengbrecht 0:563b70517320 30 //Test clear function
jengbrecht 0:563b70517320 31 buffer->write("AT", 2);
jengbrecht 0:563b70517320 32 buffer->clear();
jengbrecht 0:563b70517320 33 if (buffer->available() != 0) {
mfiore 60:ee9c7a700330 34 printf("Failed: clear()\n\r");
jengbrecht 0:563b70517320 35 failed++;
jengbrecht 0:563b70517320 36 }
jengbrecht 0:563b70517320 37
jengbrecht 0:563b70517320 38 /* The next set of test all rely on an empty buffer!!! */
jengbrecht 0:563b70517320 39
jengbrecht 0:563b70517320 40 //Test isEmpty method - empty buffer
jengbrecht 0:563b70517320 41 if (buffer->isEmpty() != true) {
mfiore 60:ee9c7a700330 42 printf("Failed: isEmpty() - empty\n\r");
jengbrecht 0:563b70517320 43 failed++;
jengbrecht 0:563b70517320 44 }
jengbrecht 0:563b70517320 45
jengbrecht 0:563b70517320 46 //Test isFull method - empty buffer
jengbrecht 0:563b70517320 47 if (buffer->isFull() == true) {
mfiore 60:ee9c7a700330 48 printf("Failed: isFull() - empty\n\r");
jengbrecht 0:563b70517320 49 failed++;
jengbrecht 0:563b70517320 50 }
jengbrecht 0:563b70517320 51
jengbrecht 0:563b70517320 52 //Test capacity method - empty buffer
jengbrecht 0:563b70517320 53 if (buffer->capacity() != 5) {
mfiore 60:ee9c7a700330 54 printf("Failed: capacity() - empty\n\r");
jengbrecht 0:563b70517320 55 failed++;
jengbrecht 0:563b70517320 56 }
jengbrecht 0:563b70517320 57
jengbrecht 0:563b70517320 58 //Test available method - empty buffer
jengbrecht 0:563b70517320 59 if (buffer->available() != 0) {
mfiore 60:ee9c7a700330 60 printf("Failed: available() - empty\n\r");
jengbrecht 0:563b70517320 61 failed++;
jengbrecht 0:563b70517320 62 }
jengbrecht 0:563b70517320 63
jengbrecht 0:563b70517320 64 /* The next set of tests all rely on a full buffer */
jengbrecht 0:563b70517320 65
jengbrecht 0:563b70517320 66 //Test bulk write method
jengbrecht 0:563b70517320 67 int tmp = buffer->write("Test", 5);
mfiore 60:ee9c7a700330 68 if (tmp != 5) {
mfiore 60:ee9c7a700330 69 printf("Failed: bulk write()\n\r");
jengbrecht 0:563b70517320 70 failed++;
jengbrecht 0:563b70517320 71 }
jengbrecht 0:563b70517320 72
jengbrecht 0:563b70517320 73 //Test isEmpty method - full buffer
jengbrecht 0:563b70517320 74 if (buffer->isEmpty() == true) {
mfiore 60:ee9c7a700330 75 printf("Failed: isEmpty() - full\n\r");
jengbrecht 0:563b70517320 76 failed++;
jengbrecht 0:563b70517320 77 }
jengbrecht 0:563b70517320 78
jengbrecht 0:563b70517320 79 //Test isFull method - full buffer
jengbrecht 0:563b70517320 80 if (buffer->isFull() == false) {
mfiore 60:ee9c7a700330 81 printf("Failed: isFull() - full\n\r");
jengbrecht 0:563b70517320 82 failed++;
jengbrecht 0:563b70517320 83 }
jengbrecht 0:563b70517320 84
jengbrecht 0:563b70517320 85 //Test capacity method - full buffer
jengbrecht 0:563b70517320 86 if (buffer->capacity() != 0) {
mfiore 60:ee9c7a700330 87 printf("Failed: capacity() - full\n\r");
jengbrecht 0:563b70517320 88 failed++;
jengbrecht 0:563b70517320 89 }
jengbrecht 0:563b70517320 90
jengbrecht 0:563b70517320 91 //Test available method - full buffer
jengbrecht 0:563b70517320 92 if (buffer->available() != 5) {
mfiore 60:ee9c7a700330 93 printf("Failed: available() - full\n\r");
jengbrecht 0:563b70517320 94 failed++;
jengbrecht 0:563b70517320 95 }
jengbrecht 0:563b70517320 96
jengbrecht 0:563b70517320 97 //Test single overwrite method
mfiore 60:ee9c7a700330 98 if (buffer->write('A') != 0) {
mfiore 60:ee9c7a700330 99 printf("Failed: write() - overwrite\n\r");
jengbrecht 0:563b70517320 100 failed++;
jengbrecht 0:563b70517320 101 }
jengbrecht 0:563b70517320 102
jengbrecht 0:563b70517320 103 //Test bulk overwrite method
mfiore 60:ee9c7a700330 104 if (buffer->write("Test", 5) != 0) {
mfiore 60:ee9c7a700330 105 printf("Failed: bulk write() - overflow\n\r");
jengbrecht 0:563b70517320 106 failed++;
jengbrecht 0:563b70517320 107 }
jengbrecht 0:563b70517320 108
jengbrecht 0:563b70517320 109 //Test single read method
mfiore 60:ee9c7a700330 110 if ((buffer->read(byte) < 1 && byte != 'T') || buffer->capacity() != 1) {
mfiore 60:ee9c7a700330 111 printf("Failed: single read()\n\r");
jengbrecht 0:563b70517320 112 failed++;
jengbrecht 0:563b70517320 113 }
jengbrecht 0:563b70517320 114
jengbrecht 0:563b70517320 115 //Test bulk read method
jengbrecht 0:563b70517320 116 char data[5];
mfiore 60:ee9c7a700330 117 if (buffer->read(data, 4) != 4 || data[0] != 'e' || data[1] != 's' || data[2] != 't' || data[3] != '\0') {
mfiore 60:ee9c7a700330 118 printf("Failed: bulk read()\n\r");
jengbrecht 0:563b70517320 119 failed++;
jengbrecht 0:563b70517320 120 }
jengbrecht 0:563b70517320 121
jengbrecht 0:563b70517320 122 //Test wrap write/read methods
mfiore 60:ee9c7a700330 123 tmp = buffer->write("AT", 3);
mfiore 60:ee9c7a700330 124 if (tmp != 3 || (buffer->read(byte) < 1 && byte != 'A') || (buffer->read(byte) < 1 && byte != 'T')) {
mfiore 60:ee9c7a700330 125 printf("Failed: wrap write()/read()\n\r");
jengbrecht 0:563b70517320 126 failed++;
jengbrecht 0:563b70517320 127 }
jengbrecht 0:563b70517320 128 buffer->clear();
jengbrecht 0:563b70517320 129
jengbrecht 0:563b70517320 130 /* The next set of test are focused all on the attach methods */
jengbrecht 0:563b70517320 131
jengbrecht 0:563b70517320 132 //Test attach with greater than below level
jengbrecht 0:563b70517320 133 buffer->attach(&callback, 3, Vars::GREATER);
jengbrecht 0:563b70517320 134 buffer->write("ABC", 3);
jengbrecht 0:563b70517320 135 if (capacity != 0) {
mfiore 60:ee9c7a700330 136 printf("Failed: attach() - greater/below\n\r");
jengbrecht 0:563b70517320 137 failed++;
jengbrecht 0:563b70517320 138 }
jengbrecht 0:563b70517320 139
jengbrecht 0:563b70517320 140 //Test attach with greater than above level
jengbrecht 0:563b70517320 141 buffer->write('T');
jengbrecht 0:563b70517320 142 if (capacity != 1) {
mfiore 60:ee9c7a700330 143 printf("Failed: attach() - greater/above\n\r");
jengbrecht 0:563b70517320 144 failed++;
jengbrecht 0:563b70517320 145 }
jengbrecht 0:563b70517320 146 buffer->clear();
jengbrecht 0:563b70517320 147 capacity = 0;
jengbrecht 0:563b70517320 148
jengbrecht 0:563b70517320 149 //Test attach with greater equal than below level
jengbrecht 0:563b70517320 150 buffer->attach(&callback, 3, Vars::GREATER_EQUAL);
jengbrecht 0:563b70517320 151 buffer->write("AB", 2);
jengbrecht 0:563b70517320 152 if (capacity != 0) {
mfiore 60:ee9c7a700330 153 printf("Failed: attach() - greater equal/below\n\r");
jengbrecht 0:563b70517320 154 failed++;
jengbrecht 0:563b70517320 155 }
jengbrecht 0:563b70517320 156
jengbrecht 0:563b70517320 157 //Test attach with greater equal than above level
jengbrecht 0:563b70517320 158 buffer->write('T');
jengbrecht 0:563b70517320 159 if (capacity != 2) {
mfiore 60:ee9c7a700330 160 printf("Failed: attach() - greater equal/above\n\r");
jengbrecht 0:563b70517320 161 failed++;
jengbrecht 0:563b70517320 162 }
jengbrecht 0:563b70517320 163
jengbrecht 0:563b70517320 164 //Test attach with less than above level
jengbrecht 0:563b70517320 165 buffer->clear();
jengbrecht 0:563b70517320 166 buffer->write("ABC", 3);
jengbrecht 0:563b70517320 167 capacity = 0;
jengbrecht 0:563b70517320 168 buffer->attach(&callback, 2, Vars::LESS);
mfiore 60:ee9c7a700330 169 buffer->read(byte);
jengbrecht 0:563b70517320 170 if (capacity != 0) {
mfiore 60:ee9c7a700330 171 printf("Failed: attach() - less_equal/above\n\r");
jengbrecht 0:563b70517320 172 failed++;
jengbrecht 0:563b70517320 173 }
jengbrecht 0:563b70517320 174
jengbrecht 0:563b70517320 175 //Test attach with less than below level
mfiore 60:ee9c7a700330 176 buffer->read(byte);
jengbrecht 0:563b70517320 177 if (capacity != 4) {
mfiore 60:ee9c7a700330 178 printf("Failed: attach() - less_equal/below%d\n\r", capacity);
jengbrecht 0:563b70517320 179 failed++;
jengbrecht 0:563b70517320 180 }
jengbrecht 0:563b70517320 181
jengbrecht 0:563b70517320 182 //Test attach with less equal than above level
jengbrecht 0:563b70517320 183 buffer->clear();
jengbrecht 0:563b70517320 184 buffer->write("Test", 4);
jengbrecht 0:563b70517320 185 capacity = 0;
jengbrecht 0:563b70517320 186 buffer->attach(&callback, 2, Vars::LESS_EQUAL);
mfiore 60:ee9c7a700330 187 buffer->read(byte);
jengbrecht 0:563b70517320 188 if (capacity != 0) {
mfiore 60:ee9c7a700330 189 printf("Failed: attach() - less equal/above\n\r");
jengbrecht 0:563b70517320 190 failed++;
jengbrecht 0:563b70517320 191 }
jengbrecht 0:563b70517320 192
jengbrecht 0:563b70517320 193 //Test attach with less equal than below level
mfiore 60:ee9c7a700330 194 buffer->read(byte);
jengbrecht 0:563b70517320 195 if (capacity != 3) {
mfiore 60:ee9c7a700330 196 printf("Failed: attach() - less equal/below%d\n\r", capacity);
jengbrecht 0:563b70517320 197 failed++;
jengbrecht 0:563b70517320 198 }
jengbrecht 0:563b70517320 199
jengbrecht 0:563b70517320 200 //Test attach with less equal than above level
jengbrecht 0:563b70517320 201 buffer->clear();
jengbrecht 0:563b70517320 202 buffer->write("Test", 4);
jengbrecht 0:563b70517320 203 capacity = 0;
jengbrecht 0:563b70517320 204 buffer->attach(&callback, 2, Vars::EQUAL);
mfiore 60:ee9c7a700330 205 buffer->read(byte);
jengbrecht 0:563b70517320 206 if (capacity != 0) {
mfiore 60:ee9c7a700330 207 printf("Failed: attach() - equal/above\n\r");
jengbrecht 0:563b70517320 208 failed++;
jengbrecht 0:563b70517320 209 }
jengbrecht 0:563b70517320 210
jengbrecht 0:563b70517320 211 //Test attach with less equal than below level
mfiore 60:ee9c7a700330 212 buffer->read(byte);
jengbrecht 0:563b70517320 213 if (capacity != 3) {
mfiore 60:ee9c7a700330 214 printf("Failed: attach() - equal/below%d\n\r", capacity);
jengbrecht 0:563b70517320 215 failed++;
jengbrecht 0:563b70517320 216 }
jengbrecht 0:563b70517320 217
jengbrecht 0:563b70517320 218 return failed;
jengbrecht 0:563b70517320 219 }
jengbrecht 0:563b70517320 220
jengbrecht 0:563b70517320 221
jengbrecht 0:563b70517320 222
jengbrecht 0:563b70517320 223
jengbrecht 0:563b70517320 224
jengbrecht 0:563b70517320 225 #endif /* TESTMTSCIRCULARBUFFER_H */