tests and fix for ringbuffer

This commit is contained in:
Wolfgang Hottgenroth 2020-10-29 11:43:29 +01:00
parent b8e676299a
commit 53851b91d6
Signed by: wn
GPG Key ID: 6C1E5E531E0D5D7F
2 changed files with 634 additions and 0 deletions

View File

@ -62,6 +62,8 @@ int ringbufferPut(ringbuffer_t *handle, uint8_t *data, uint32_t dataLen) {
freeSpace = (handle->bufferSize - handle->bufferWriteIdx) + handle->bufferReadIdx; freeSpace = (handle->bufferSize - handle->bufferWriteIdx) + handle->bufferReadIdx;
} }
freeSpace--;
if (dataLen > freeSpace) { if (dataLen > freeSpace) {
return -1; return -1;
} }

View File

@ -43,6 +43,23 @@ void testRingbuffer0() {
CU_ASSERT(rb.bufferSize == 16); CU_ASSERT(rb.bufferSize == 16);
CU_ASSERT(rb.bufferWriteIdx == 0); CU_ASSERT(rb.bufferWriteIdx == 0);
CU_ASSERT(rb.bufferReadIdx == 0); CU_ASSERT(rb.bufferReadIdx == 0);
CU_ASSERT(rb.buffer[0] == 0);
CU_ASSERT(rb.buffer[1] == 0);
CU_ASSERT(rb.buffer[2] == 0);
CU_ASSERT(rb.buffer[3] == 0);
CU_ASSERT(rb.buffer[4] == 0);
CU_ASSERT(rb.buffer[5] == 0);
CU_ASSERT(rb.buffer[6] == 0);
CU_ASSERT(rb.buffer[7] == 0);
CU_ASSERT(rb.buffer[8] == 0);
CU_ASSERT(rb.buffer[9] == 0);
CU_ASSERT(rb.buffer[10] == 0);
CU_ASSERT(rb.buffer[11] == 0);
CU_ASSERT(rb.buffer[12] == 0);
CU_ASSERT(rb.buffer[13] == 0);
CU_ASSERT(rb.buffer[14] == 0);
CU_ASSERT(rb.buffer[15] == 0);
} }
void testRingbuffer1() { void testRingbuffer1() {
@ -60,6 +77,23 @@ void testRingbuffer1() {
CU_ASSERT(rb.bufferSize == 16); CU_ASSERT(rb.bufferSize == 16);
CU_ASSERT(rb.bufferWriteIdx == 5); CU_ASSERT(rb.bufferWriteIdx == 5);
CU_ASSERT(rb.bufferReadIdx == 0); CU_ASSERT(rb.bufferReadIdx == 0);
CU_ASSERT(rb.buffer[0] == 'a');
CU_ASSERT(rb.buffer[1] == 'b');
CU_ASSERT(rb.buffer[2] == 'c');
CU_ASSERT(rb.buffer[3] == 'd');
CU_ASSERT(rb.buffer[4] == 'e');
CU_ASSERT(rb.buffer[5] == 0);
CU_ASSERT(rb.buffer[6] == 0);
CU_ASSERT(rb.buffer[7] == 0);
CU_ASSERT(rb.buffer[8] == 0);
CU_ASSERT(rb.buffer[9] == 0);
CU_ASSERT(rb.buffer[10] == 0);
CU_ASSERT(rb.buffer[11] == 0);
CU_ASSERT(rb.buffer[12] == 0);
CU_ASSERT(rb.buffer[13] == 0);
CU_ASSERT(rb.buffer[14] == 0);
CU_ASSERT(rb.buffer[15] == 0);
} }
void testRingbuffer2() { void testRingbuffer2() {
@ -77,6 +111,23 @@ void testRingbuffer2() {
CU_ASSERT(rb.bufferSize == 16); CU_ASSERT(rb.bufferSize == 16);
CU_ASSERT(rb.bufferWriteIdx == 10); CU_ASSERT(rb.bufferWriteIdx == 10);
CU_ASSERT(rb.bufferReadIdx == 0); CU_ASSERT(rb.bufferReadIdx == 0);
CU_ASSERT(rb.buffer[0] == 'a');
CU_ASSERT(rb.buffer[1] == 'b');
CU_ASSERT(rb.buffer[2] == 'c');
CU_ASSERT(rb.buffer[3] == 'd');
CU_ASSERT(rb.buffer[4] == 'e');
CU_ASSERT(rb.buffer[5] == 'f');
CU_ASSERT(rb.buffer[6] == 'g');
CU_ASSERT(rb.buffer[7] == 'h');
CU_ASSERT(rb.buffer[8] == 'i');
CU_ASSERT(rb.buffer[9] == 'j');
CU_ASSERT(rb.buffer[10] == 0);
CU_ASSERT(rb.buffer[11] == 0);
CU_ASSERT(rb.buffer[12] == 0);
CU_ASSERT(rb.buffer[13] == 0);
CU_ASSERT(rb.buffer[14] == 0);
CU_ASSERT(rb.buffer[15] == 0);
} }
void testRingbuffer3() { void testRingbuffer3() {
@ -94,6 +145,23 @@ void testRingbuffer3() {
CU_ASSERT(rb.bufferSize == 16); CU_ASSERT(rb.bufferSize == 16);
CU_ASSERT(rb.bufferWriteIdx == 15); CU_ASSERT(rb.bufferWriteIdx == 15);
CU_ASSERT(rb.bufferReadIdx == 0); CU_ASSERT(rb.bufferReadIdx == 0);
CU_ASSERT(rb.buffer[0] == 'a');
CU_ASSERT(rb.buffer[1] == 'b');
CU_ASSERT(rb.buffer[2] == 'c');
CU_ASSERT(rb.buffer[3] == 'd');
CU_ASSERT(rb.buffer[4] == 'e');
CU_ASSERT(rb.buffer[5] == 'f');
CU_ASSERT(rb.buffer[6] == 'g');
CU_ASSERT(rb.buffer[7] == 'h');
CU_ASSERT(rb.buffer[8] == 'i');
CU_ASSERT(rb.buffer[9] == 'j');
CU_ASSERT(rb.buffer[10] == 'k');
CU_ASSERT(rb.buffer[11] == 'l');
CU_ASSERT(rb.buffer[12] == 'm');
CU_ASSERT(rb.buffer[13] == 'n');
CU_ASSERT(rb.buffer[14] == 'o');
CU_ASSERT(rb.buffer[15] == 0);
} }
void testRingbuffer4() { void testRingbuffer4() {
@ -110,6 +178,23 @@ void testRingbuffer4() {
CU_ASSERT(rb.bufferSize == 16); CU_ASSERT(rb.bufferSize == 16);
CU_ASSERT(rb.bufferWriteIdx == 15); CU_ASSERT(rb.bufferWriteIdx == 15);
CU_ASSERT(rb.bufferReadIdx == 0); CU_ASSERT(rb.bufferReadIdx == 0);
CU_ASSERT(rb.buffer[0] == 'a');
CU_ASSERT(rb.buffer[1] == 'b');
CU_ASSERT(rb.buffer[2] == 'c');
CU_ASSERT(rb.buffer[3] == 'd');
CU_ASSERT(rb.buffer[4] == 'e');
CU_ASSERT(rb.buffer[5] == 'f');
CU_ASSERT(rb.buffer[6] == 'g');
CU_ASSERT(rb.buffer[7] == 'h');
CU_ASSERT(rb.buffer[8] == 'i');
CU_ASSERT(rb.buffer[9] == 'j');
CU_ASSERT(rb.buffer[10] == 'k');
CU_ASSERT(rb.buffer[11] == 'l');
CU_ASSERT(rb.buffer[12] == 'm');
CU_ASSERT(rb.buffer[13] == 'n');
CU_ASSERT(rb.buffer[14] == 'o');
CU_ASSERT(rb.buffer[15] == 0);
} }
void testRingbuffer5() { void testRingbuffer5() {
@ -129,6 +214,23 @@ void testRingbuffer5() {
uint8_t rr = (uint8_t) r; uint8_t rr = (uint8_t) r;
CU_ASSERT(rr == 'a'); CU_ASSERT(rr == 'a');
CU_ASSERT(rb.buffer[0] == 'a');
CU_ASSERT(rb.buffer[1] == 'b');
CU_ASSERT(rb.buffer[2] == 'c');
CU_ASSERT(rb.buffer[3] == 'd');
CU_ASSERT(rb.buffer[4] == 'e');
CU_ASSERT(rb.buffer[5] == 'f');
CU_ASSERT(rb.buffer[6] == 'g');
CU_ASSERT(rb.buffer[7] == 'h');
CU_ASSERT(rb.buffer[8] == 'i');
CU_ASSERT(rb.buffer[9] == 'j');
CU_ASSERT(rb.buffer[10] == 'k');
CU_ASSERT(rb.buffer[11] == 'l');
CU_ASSERT(rb.buffer[12] == 'm');
CU_ASSERT(rb.buffer[13] == 'n');
CU_ASSERT(rb.buffer[14] == 'o');
CU_ASSERT(rb.buffer[15] == 0);
} }
void testRingbuffer6() { void testRingbuffer6() {
@ -176,8 +278,528 @@ void testRingbuffer6() {
rr = (uint8_t) r; rr = (uint8_t) r;
CU_ASSERT(rr == 'd'); CU_ASSERT(rr == 'd');
CU_ASSERT(rb.buffer[0] == 'a');
CU_ASSERT(rb.buffer[1] == 'b');
CU_ASSERT(rb.buffer[2] == 'c');
CU_ASSERT(rb.buffer[3] == 'd');
CU_ASSERT(rb.buffer[4] == 'e');
CU_ASSERT(rb.buffer[5] == 'f');
CU_ASSERT(rb.buffer[6] == 'g');
CU_ASSERT(rb.buffer[7] == 'h');
CU_ASSERT(rb.buffer[8] == 'i');
CU_ASSERT(rb.buffer[9] == 'j');
CU_ASSERT(rb.buffer[10] == 'k');
CU_ASSERT(rb.buffer[11] == 'l');
CU_ASSERT(rb.buffer[12] == 'm');
CU_ASSERT(rb.buffer[13] == 'n');
CU_ASSERT(rb.buffer[14] == 'o');
CU_ASSERT(rb.buffer[15] == 0);
} }
void testRingbuffer7() {
#ifdef DEBUG
printf("\nPut 5 chars in buffer\n");
#endif
int r = ringbufferPut(&rb, "1234", 4);
#ifdef DEBUG
printf("r = %d\n", r);
printRingbuffer(&rb);
#endif
CU_ASSERT(r == 0);
CU_ASSERT(rb.buffer != NULL);
CU_ASSERT(rb.bufferSize == 16);
CU_ASSERT(rb.bufferWriteIdx == 3);
CU_ASSERT(rb.bufferReadIdx == 4);
CU_ASSERT(rb.buffer[0] == '2');
CU_ASSERT(rb.buffer[1] == '3');
CU_ASSERT(rb.buffer[2] == '4');
CU_ASSERT(rb.buffer[3] == 'd');
CU_ASSERT(rb.buffer[4] == 'e');
CU_ASSERT(rb.buffer[5] == 'f');
CU_ASSERT(rb.buffer[6] == 'g');
CU_ASSERT(rb.buffer[7] == 'h');
CU_ASSERT(rb.buffer[8] == 'i');
CU_ASSERT(rb.buffer[9] == 'j');
CU_ASSERT(rb.buffer[10] == 'k');
CU_ASSERT(rb.buffer[11] == 'l');
CU_ASSERT(rb.buffer[12] == 'm');
CU_ASSERT(rb.buffer[13] == 'n');
CU_ASSERT(rb.buffer[14] == 'o');
CU_ASSERT(rb.buffer[15] == '1');
}
void testRingbuffer8() {
#ifdef DEBUG
printf("\nPut 5 chars in buffer\n");
#endif
int r = ringbufferPut(&rb, "67890", 5);
#ifdef DEBUG
printf("r = %d\n", r);
printRingbuffer(&rb);
#endif
CU_ASSERT(r == -1);
CU_ASSERT(rb.buffer != NULL);
CU_ASSERT(rb.bufferSize == 16);
CU_ASSERT(rb.bufferWriteIdx == 3);
CU_ASSERT(rb.bufferReadIdx == 4);
CU_ASSERT(rb.buffer[0] == '2');
CU_ASSERT(rb.buffer[1] == '3');
CU_ASSERT(rb.buffer[2] == '4');
CU_ASSERT(rb.buffer[3] == 'd');
CU_ASSERT(rb.buffer[4] == 'e');
CU_ASSERT(rb.buffer[5] == 'f');
CU_ASSERT(rb.buffer[6] == 'g');
CU_ASSERT(rb.buffer[7] == 'h');
CU_ASSERT(rb.buffer[8] == 'i');
CU_ASSERT(rb.buffer[9] == 'j');
CU_ASSERT(rb.buffer[10] == 'k');
CU_ASSERT(rb.buffer[11] == 'l');
CU_ASSERT(rb.buffer[12] == 'm');
CU_ASSERT(rb.buffer[13] == 'n');
CU_ASSERT(rb.buffer[14] == 'o');
CU_ASSERT(rb.buffer[15] == '1')
}
void testRingbuffer9() {
#ifdef DEBUG
printf("\nRead one char from buffer\n");
#endif
int r = ringbufferGetOne(&rb);
#ifdef DEBUG
printRingbuffer(&rb);
#endif
CU_ASSERT(r >= 0);
CU_ASSERT(rb.buffer != NULL);
CU_ASSERT(rb.bufferSize == 16);
CU_ASSERT(rb.bufferWriteIdx == 3);
CU_ASSERT(rb.bufferReadIdx == 5);
uint8_t rr = (uint8_t) r;
CU_ASSERT(rr == 'e');
CU_ASSERT(rb.buffer[0] == '2');
CU_ASSERT(rb.buffer[1] == '3');
CU_ASSERT(rb.buffer[2] == '4');
CU_ASSERT(rb.buffer[3] == 'd');
CU_ASSERT(rb.buffer[4] == 'e');
CU_ASSERT(rb.buffer[5] == 'f');
CU_ASSERT(rb.buffer[6] == 'g');
CU_ASSERT(rb.buffer[7] == 'h');
CU_ASSERT(rb.buffer[8] == 'i');
CU_ASSERT(rb.buffer[9] == 'j');
CU_ASSERT(rb.buffer[10] == 'k');
CU_ASSERT(rb.buffer[11] == 'l');
CU_ASSERT(rb.buffer[12] == 'm');
CU_ASSERT(rb.buffer[13] == 'n');
CU_ASSERT(rb.buffer[14] == 'o');
CU_ASSERT(rb.buffer[15] == '1')
}
void testRingbuffer10() {
#ifdef DEBUG
printf("\nPut 1 chars in buffer\n");
#endif
int r = ringbufferPut(&rb, "$", 1);
#ifdef DEBUG
printf("r = %d\n", r);
printRingbuffer(&rb);
#endif
CU_ASSERT(r == 0);
CU_ASSERT(rb.buffer != NULL);
CU_ASSERT(rb.bufferSize == 16);
CU_ASSERT(rb.bufferWriteIdx == 4);
CU_ASSERT(rb.bufferReadIdx == 5);
CU_ASSERT(rb.buffer[0] == '2');
CU_ASSERT(rb.buffer[1] == '3');
CU_ASSERT(rb.buffer[2] == '4');
CU_ASSERT(rb.buffer[3] == '$');
CU_ASSERT(rb.buffer[4] == 'e');
CU_ASSERT(rb.buffer[5] == 'f');
CU_ASSERT(rb.buffer[6] == 'g');
CU_ASSERT(rb.buffer[7] == 'h');
CU_ASSERT(rb.buffer[8] == 'i');
CU_ASSERT(rb.buffer[9] == 'j');
CU_ASSERT(rb.buffer[10] == 'k');
CU_ASSERT(rb.buffer[11] == 'l');
CU_ASSERT(rb.buffer[12] == 'm');
CU_ASSERT(rb.buffer[13] == 'n');
CU_ASSERT(rb.buffer[14] == 'o');
CU_ASSERT(rb.buffer[15] == '1')
}
void testRingbuffer11() {
#ifdef DEBUG
printf("\nPut 1 chars in buffer\n");
#endif
int r = ringbufferPut(&rb, "%", 1);
#ifdef DEBUG
printf("r = %d\n", r);
printRingbuffer(&rb);
#endif
CU_ASSERT(r == -1);
CU_ASSERT(rb.buffer != NULL);
CU_ASSERT(rb.bufferSize == 16);
CU_ASSERT(rb.bufferWriteIdx == 4);
CU_ASSERT(rb.bufferReadIdx == 5);
CU_ASSERT(rb.buffer[0] == '2');
CU_ASSERT(rb.buffer[1] == '3');
CU_ASSERT(rb.buffer[2] == '4');
CU_ASSERT(rb.buffer[3] == '$');
CU_ASSERT(rb.buffer[4] == 'e');
CU_ASSERT(rb.buffer[5] == 'f');
CU_ASSERT(rb.buffer[6] == 'g');
CU_ASSERT(rb.buffer[7] == 'h');
CU_ASSERT(rb.buffer[8] == 'i');
CU_ASSERT(rb.buffer[9] == 'j');
CU_ASSERT(rb.buffer[10] == 'k');
CU_ASSERT(rb.buffer[11] == 'l');
CU_ASSERT(rb.buffer[12] == 'm');
CU_ASSERT(rb.buffer[13] == 'n');
CU_ASSERT(rb.buffer[14] == 'o');
CU_ASSERT(rb.buffer[15] == '1')
}
void testRingbuffer12() {
#ifdef DEBUG
printf("\nRead unless the buffer is empty\n");
#endif
int r = ringbufferGetOne(&rb);
#ifdef DEBUG
printRingbuffer(&rb);
#endif
CU_ASSERT(r >= 0);
CU_ASSERT(rb.buffer != NULL);
CU_ASSERT(rb.bufferSize == 16);
CU_ASSERT(rb.bufferWriteIdx == 4);
CU_ASSERT(rb.bufferReadIdx == 6);
uint8_t rr = (uint8_t) r;
CU_ASSERT(rr == 'f');
r = ringbufferGetOne(&rb);
#ifdef DEBUG
printRingbuffer(&rb);
#endif
CU_ASSERT(r >= 0);
CU_ASSERT(rb.buffer != NULL);
CU_ASSERT(rb.bufferSize == 16);
CU_ASSERT(rb.bufferWriteIdx == 4);
CU_ASSERT(rb.bufferReadIdx == 7);
rr = (uint8_t) r;
CU_ASSERT(rr == 'g');
r = ringbufferGetOne(&rb);
#ifdef DEBUG
printRingbuffer(&rb);
#endif
CU_ASSERT(r >= 0);
CU_ASSERT(rb.buffer != NULL);
CU_ASSERT(rb.bufferSize == 16);
CU_ASSERT(rb.bufferWriteIdx == 4);
CU_ASSERT(rb.bufferReadIdx == 8);
rr = (uint8_t) r;
CU_ASSERT(rr == 'h');
r = ringbufferGetOne(&rb);
#ifdef DEBUG
printRingbuffer(&rb);
#endif
CU_ASSERT(r >= 0);
CU_ASSERT(rb.buffer != NULL);
CU_ASSERT(rb.bufferSize == 16);
CU_ASSERT(rb.bufferWriteIdx == 4);
CU_ASSERT(rb.bufferReadIdx == 9);
rr = (uint8_t) r;
CU_ASSERT(rr == 'i');
r = ringbufferGetOne(&rb);
#ifdef DEBUG
printRingbuffer(&rb);
#endif
CU_ASSERT(r >= 0);
CU_ASSERT(rb.buffer != NULL);
CU_ASSERT(rb.bufferSize == 16);
CU_ASSERT(rb.bufferWriteIdx == 4);
CU_ASSERT(rb.bufferReadIdx == 10);
rr = (uint8_t) r;
CU_ASSERT(rr == 'j');
r = ringbufferGetOne(&rb);
#ifdef DEBUG
printRingbuffer(&rb);
#endif
CU_ASSERT(r >= 0);
CU_ASSERT(rb.buffer != NULL);
CU_ASSERT(rb.bufferSize == 16);
CU_ASSERT(rb.bufferWriteIdx == 4);
CU_ASSERT(rb.bufferReadIdx == 11);
rr = (uint8_t) r;
CU_ASSERT(rr == 'k');
r = ringbufferGetOne(&rb);
#ifdef DEBUG
printRingbuffer(&rb);
#endif
CU_ASSERT(r >= 0);
CU_ASSERT(rb.buffer != NULL);
CU_ASSERT(rb.bufferSize == 16);
CU_ASSERT(rb.bufferWriteIdx == 4);
CU_ASSERT(rb.bufferReadIdx == 12);
rr = (uint8_t) r;
CU_ASSERT(rr == 'l');
r = ringbufferGetOne(&rb);
#ifdef DEBUG
printRingbuffer(&rb);
#endif
CU_ASSERT(r >= 0);
CU_ASSERT(rb.buffer != NULL);
CU_ASSERT(rb.bufferSize == 16);
CU_ASSERT(rb.bufferWriteIdx == 4);
CU_ASSERT(rb.bufferReadIdx == 13);
rr = (uint8_t) r;
CU_ASSERT(rr == 'm');
r = ringbufferGetOne(&rb);
#ifdef DEBUG
printRingbuffer(&rb);
#endif
CU_ASSERT(r >= 0);
CU_ASSERT(rb.buffer != NULL);
CU_ASSERT(rb.bufferSize == 16);
CU_ASSERT(rb.bufferWriteIdx == 4);
CU_ASSERT(rb.bufferReadIdx == 14);
rr = (uint8_t) r;
CU_ASSERT(rr == 'n');
r = ringbufferGetOne(&rb);
#ifdef DEBUG
printRingbuffer(&rb);
#endif
CU_ASSERT(r >= 0);
CU_ASSERT(rb.buffer != NULL);
CU_ASSERT(rb.bufferSize == 16);
CU_ASSERT(rb.bufferWriteIdx == 4);
CU_ASSERT(rb.bufferReadIdx == 15);
rr = (uint8_t) r;
CU_ASSERT(rr == 'o');
r = ringbufferGetOne(&rb);
#ifdef DEBUG
printRingbuffer(&rb);
#endif
CU_ASSERT(r >= 0);
CU_ASSERT(rb.buffer != NULL);
CU_ASSERT(rb.bufferSize == 16);
CU_ASSERT(rb.bufferWriteIdx == 4);
CU_ASSERT(rb.bufferReadIdx == 0);
rr = (uint8_t) r;
CU_ASSERT(rr == '1');
r = ringbufferGetOne(&rb);
#ifdef DEBUG
printRingbuffer(&rb);
#endif
CU_ASSERT(r >= 0);
CU_ASSERT(rb.buffer != NULL);
CU_ASSERT(rb.bufferSize == 16);
CU_ASSERT(rb.bufferWriteIdx == 4);
CU_ASSERT(rb.bufferReadIdx == 1);
rr = (uint8_t) r;
CU_ASSERT(rr == '2');
r = ringbufferGetOne(&rb);
#ifdef DEBUG
printRingbuffer(&rb);
#endif
CU_ASSERT(r >= 0);
CU_ASSERT(rb.buffer != NULL);
CU_ASSERT(rb.bufferSize == 16);
CU_ASSERT(rb.bufferWriteIdx == 4);
CU_ASSERT(rb.bufferReadIdx == 2);
rr = (uint8_t) r;
CU_ASSERT(rr == '3');
r = ringbufferGetOne(&rb);
#ifdef DEBUG
printRingbuffer(&rb);
#endif
CU_ASSERT(r >= 0);
CU_ASSERT(rb.buffer != NULL);
CU_ASSERT(rb.bufferSize == 16);
CU_ASSERT(rb.bufferWriteIdx == 4);
CU_ASSERT(rb.bufferReadIdx == 3);
rr = (uint8_t) r;
CU_ASSERT(rr == '4');
r = ringbufferGetOne(&rb);
#ifdef DEBUG
printRingbuffer(&rb);
#endif
CU_ASSERT(r >= 0);
CU_ASSERT(rb.buffer != NULL);
CU_ASSERT(rb.bufferSize == 16);
CU_ASSERT(rb.bufferWriteIdx == 4);
CU_ASSERT(rb.bufferReadIdx == 4);
rr = (uint8_t) r;
CU_ASSERT(rr == '$');
r = ringbufferGetOne(&rb);
#ifdef DEBUG
printRingbuffer(&rb);
#endif
CU_ASSERT(r == -1);
CU_ASSERT(rb.buffer != NULL);
CU_ASSERT(rb.bufferSize == 16);
CU_ASSERT(rb.bufferWriteIdx == 4);
CU_ASSERT(rb.bufferReadIdx == 4);
r = ringbufferGetOne(&rb);
#ifdef DEBUG
printRingbuffer(&rb);
#endif
CU_ASSERT(r == -1);
CU_ASSERT(rb.buffer != NULL);
CU_ASSERT(rb.bufferSize == 16);
CU_ASSERT(rb.bufferWriteIdx == 4);
CU_ASSERT(rb.bufferReadIdx == 4);
CU_ASSERT(rb.buffer[0] == '2');
CU_ASSERT(rb.buffer[1] == '3');
CU_ASSERT(rb.buffer[2] == '4');
CU_ASSERT(rb.buffer[3] == '$');
CU_ASSERT(rb.buffer[4] == 'e');
CU_ASSERT(rb.buffer[5] == 'f');
CU_ASSERT(rb.buffer[6] == 'g');
CU_ASSERT(rb.buffer[7] == 'h');
CU_ASSERT(rb.buffer[8] == 'i');
CU_ASSERT(rb.buffer[9] == 'j');
CU_ASSERT(rb.buffer[10] == 'k');
CU_ASSERT(rb.buffer[11] == 'l');
CU_ASSERT(rb.buffer[12] == 'm');
CU_ASSERT(rb.buffer[13] == 'n');
CU_ASSERT(rb.buffer[14] == 'o');
CU_ASSERT(rb.buffer[15] == '1')
}
void testRingbuffer13() {
#ifdef DEBUG
printf("\nPut some chars in buffer\n");
#endif
char t[] = "Hello World\n";
int r = ringbufferPut(&rb, t, strlen(t));
#ifdef DEBUG
printf("r = %d\n", r);
printRingbuffer(&rb);
#endif
CU_ASSERT(r == 0);
}
void testRingbuffer14() {
#ifdef DEBUG
printf("\nPut some chars in buffer\n");
#endif
char t[] = "Hello World\n";
int r = ringbufferPut(&rb, t, strlen(t));
#ifdef DEBUG
printf("r = %d\n", r);
printRingbuffer(&rb);
#endif
CU_ASSERT(r == -1);
}
void testRingbuffer15() {
#ifdef DEBUG
printf("\nRead all chars from buffer\n");
#endif
char goldValue[] = "Hello World\n";
char buffer[20];
memset(buffer, 0, 20);
int c;
uint8_t i = 0;
while (0 < (c = ringbufferGetOne(&rb))) {
buffer[i] = (uint8_t) c;
i++;
}
CU_ASSERT(strcmp(goldValue, buffer) == 0);
}
void testRingbuffer16() {
#ifdef DEBUG
printf("\nPut some chars in buffer\n");
#endif
char goldValue[] = "Wolfgang\n";
int r = ringbufferPut(&rb, goldValue, strlen(goldValue));
#ifdef DEBUG
printf("r = %d\n", r);
printRingbuffer(&rb);
#endif
CU_ASSERT(r == 0);
#ifdef DEBUG
printf("\nRead all chars from buffer\n");
#endif
char buffer[20];
memset(buffer, 0, 20);
int c;
uint8_t i = 0;
while (0 < (c = ringbufferGetOne(&rb))) {
buffer[i] = (uint8_t) c;
i++;
}
CU_ASSERT(strcmp(goldValue, buffer) == 0);
}
void testRingbuffer99() { void testRingbuffer99() {
#ifdef DEBUG #ifdef DEBUG
printf("De-Initialize ringbuffer\n"); printf("De-Initialize ringbuffer\n");
@ -210,6 +832,16 @@ int main() {
(NULL == CU_add_test(ringbufferSuite, "test 4 of ringbuffer", testRingbuffer4)) || (NULL == CU_add_test(ringbufferSuite, "test 4 of ringbuffer", testRingbuffer4)) ||
(NULL == CU_add_test(ringbufferSuite, "test 5 of ringbuffer", testRingbuffer5)) || (NULL == CU_add_test(ringbufferSuite, "test 5 of ringbuffer", testRingbuffer5)) ||
(NULL == CU_add_test(ringbufferSuite, "test 6 of ringbuffer", testRingbuffer6)) || (NULL == CU_add_test(ringbufferSuite, "test 6 of ringbuffer", testRingbuffer6)) ||
(NULL == CU_add_test(ringbufferSuite, "test 7 of ringbuffer", testRingbuffer7)) ||
(NULL == CU_add_test(ringbufferSuite, "test 8 of ringbuffer", testRingbuffer8)) ||
(NULL == CU_add_test(ringbufferSuite, "test 9 of ringbuffer", testRingbuffer9)) ||
(NULL == CU_add_test(ringbufferSuite, "test 10 of ringbuffer", testRingbuffer10)) ||
(NULL == CU_add_test(ringbufferSuite, "test 11 of ringbuffer", testRingbuffer11)) ||
(NULL == CU_add_test(ringbufferSuite, "test 12 of ringbuffer", testRingbuffer12)) ||
(NULL == CU_add_test(ringbufferSuite, "test 13 of ringbuffer", testRingbuffer13)) ||
(NULL == CU_add_test(ringbufferSuite, "test 14 of ringbuffer", testRingbuffer14)) ||
(NULL == CU_add_test(ringbufferSuite, "test 14 of ringbuffer", testRingbuffer15)) ||
(NULL == CU_add_test(ringbufferSuite, "test 14 of ringbuffer", testRingbuffer16)) ||
(NULL == CU_add_test(ringbufferSuite, "test 99 of ringbuffer, free", testRingbuffer99)) || (NULL == CU_add_test(ringbufferSuite, "test 99 of ringbuffer, free", testRingbuffer99)) ||
0 ) { 0 ) {
CU_cleanup_registry(); CU_cleanup_registry();