diff options
author | Alexander Wenzel <Alexander.AW.Wenzel@bmw.de> | 2011-10-18 15:21:39 +0200 |
---|---|---|
committer | Alexander Wenzel <Alexander.AW.Wenzel@bmw.de> | 2011-10-18 15:21:39 +0200 |
commit | bd907a3a892ab13d8d2f781a0536d46b4cf3b12b (patch) | |
tree | b41ccfe188ce92b92ecdf42085ed36c728afd6f5 /src/tests | |
parent | 30606fb6cfb984baf5782793effd70d07ce68195 (diff) | |
download | DLT-daemon-bd907a3a892ab13d8d2f781a0536d46b4cf3b12b.tar.gz |
[Reverted] Removed Ringbuffer implementation in Library.
Diffstat (limited to 'src/tests')
-rwxr-xr-x | src/tests/dlt-test-internal.c | 119 |
1 files changed, 119 insertions, 0 deletions
diff --git a/src/tests/dlt-test-internal.c b/src/tests/dlt-test-internal.c index 02142b9..00209f1 100755 --- a/src/tests/dlt-test-internal.c +++ b/src/tests/dlt-test-internal.c @@ -179,6 +179,11 @@ int main(int argc, char* argv[]) return -1; } + if (test[0]) + { + internal1(); + } + printf("\n"); printf("%d tests passed\n",tests_passed); printf("%d tests failed\n",tests_failed); @@ -186,3 +191,117 @@ int main(int argc, char* argv[]) return 0; } +void internal1(void) +{ + int index,result_index; + unsigned int c; + unsigned int size; + + char buf[1024],result[1024]; + + DltRingBuffer mybuf; + + printf("Test1i: Ringbuffer, writing and reading \n"); + + for (size=8;size<=30;size++) + { + + dlt_ringbuffer_init(&mybuf, size); + + memset(result,0,1024); + + if (vflag) + { + printf("\nRingbuffer Size = %d \n\n",size); + } + + /* Write several times to ringbuffer */ + for (index=0; index<6; index++) + { + memset(buf,0,1024); + + sprintf(buf,"%d",index); + dlt_ringbuffer_put(&mybuf,buf,strlen(buf)); + + if (vflag) + { + printf("W[%d], Bytes = %d, Hex: ", index, strlen(buf)); + dlt_print_hex((uint8_t *)buf, strlen(buf)); + printf("\n"); + } + } + + if (vflag) + { + printf("\nCount=%d, Max. by buffer size %d = %d\n",mybuf.count, size, (int)(size/(strlen(buf)+sizeof(unsigned int)))); + } + + /* Check value of mybuf.count, counting the elements in ringbuffer */ + if (mybuf.count!=(int)(size/(strlen(buf)+sizeof(unsigned int)))) + { + tests_failed++; + printf("Test1i FAILED\n"); + + break; + } + + result_index = 0; + + /* Read several times from ringbuffer */ + for (index=0; index<6; index++) + { + memset(buf,0,1024); + + if (dlt_ringbuffer_get(&mybuf,buf,&c)!=-1) + { + if (vflag) + { + printf("R[%d], Bytes = %d, Hex: ", index, c); + dlt_print_hex((uint8_t *)buf, c); + printf("\n"); + } + + if (c==1) + { + result[result_index] = buf[0]; + } + result_index++; + } + } + + /* Check value of mybuf.count, counting the elements in ringbuffer, must be 0 now */ + if (mybuf.count!=0) + { + tests_failed++; + printf("Test1i FAILED\n"); + + dlt_ringbuffer_free(&mybuf); + return; + } + + /* Check the read elements */ + for (index=0; index<result_index; index++) + { + sprintf(buf,"%d",((6-result_index)+index)); + if (result[index]!=buf[0]) + { + tests_failed++; + printf("Test1i FAILED\n"); + + dlt_ringbuffer_free(&mybuf); + return; + } + } + + if (vflag) + { + printf("\n"); + } + + dlt_ringbuffer_free(&mybuf); + } + + tests_passed++; + printf("Test1i PASSED\n"); +} + |