summaryrefslogtreecommitdiff
path: root/src/tests
diff options
context:
space:
mode:
authorAlexander Wenzel <Alexander.AW.Wenzel@bmw.de>2011-10-18 15:21:39 +0200
committerAlexander Wenzel <Alexander.AW.Wenzel@bmw.de>2011-10-18 15:21:39 +0200
commitbd907a3a892ab13d8d2f781a0536d46b4cf3b12b (patch)
treeb41ccfe188ce92b92ecdf42085ed36c728afd6f5 /src/tests
parent30606fb6cfb984baf5782793effd70d07ce68195 (diff)
downloadDLT-daemon-bd907a3a892ab13d8d2f781a0536d46b4cf3b12b.tar.gz
[Reverted] Removed Ringbuffer implementation in Library.
Diffstat (limited to 'src/tests')
-rwxr-xr-xsrc/tests/dlt-test-internal.c119
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");
+}
+