From ed0e6711ce3e2937de348a1475d70f9d41bcd487 Mon Sep 17 00:00:00 2001 From: Stefan Held Date: Thu, 18 Jun 2015 12:00:24 +0200 Subject: Add shortcuts for different tests in dlt_test_receiver Modify start_filetransfer_test.sh Create start_systemd_journal_test.sh Signed-off-by: Stefan Held Signed-off-by: Alexander Wenzel --- tests/dlt_test_receiver.c | 124 +++++++++++++++++++++++------------- tests/start_filetransfer_test.sh | 2 +- tests/start_systemd_journal_test.sh | 34 ++++++++++ 3 files changed, 116 insertions(+), 44 deletions(-) mode change 100644 => 100755 tests/start_filetransfer_test.sh create mode 100755 tests/start_systemd_journal_test.sh (limited to 'tests') diff --git a/tests/dlt_test_receiver.c b/tests/dlt_test_receiver.c index 437c169..46b194b 100644 --- a/tests/dlt_test_receiver.c +++ b/tests/dlt_test_receiver.c @@ -77,6 +77,7 @@ #include /* for open() */ #include /* for writev() */ #include +#include #include "dlt_client.h" #include @@ -94,6 +95,8 @@ typedef struct { char *ovalue; char *evalue; int bvalue; + int filetransfervalue; + int systemjournalvalue; char ecuid[4]; int ohandle; DltFile file; @@ -101,6 +104,7 @@ typedef struct { } DltReceiveData; FILE *fp; +int result = 0; /** * Print usage information of tool. @@ -119,6 +123,8 @@ void usage() printf(" -v Verbose mode\n"); printf(" -h Usage\n"); printf(" -y Serial device mode\n"); + printf(" -f Activate filetransfer test case\n"); + printf(" -s Activate systemd journal test case\n"); printf(" -b baudrate Serial device baudrate (Default: 115200)\n"); printf(" -e ecuid Set ECU ID (Default: RECV)\n"); printf(" -o filename Output messages in new DLT file\n"); @@ -141,11 +147,13 @@ int main(int argc, char* argv[]) dltdata.evalue = 0; dltdata.bvalue = 0; dltdata.ohandle=-1; + dltdata.filetransfervalue = 0; + dltdata.systemjournalvalue = 0; /* Fetch command line arguments */ opterr = 0; - while ((c = getopt (argc, argv, "vhy:o:e:b:")) != -1) + while ((c = getopt (argc, argv, "vshyfa:o:e:b:")) != -1) switch (c) { case 'v': @@ -163,6 +171,16 @@ int main(int argc, char* argv[]) dltdata.yflag = 1; break; } + case 'f': + { + dltdata.filetransfervalue = 1; + break; + } + case 's': + { + dltdata.systemjournalvalue = 1; + break; + } case 'o': { dltdata.ovalue = optarg; @@ -312,59 +330,79 @@ int dlt_receive_filetransfer_callback(DltMessage *message, void *data) } dltdata = (DltReceiveData*)data; - - dlt_message_print_ascii(message, text, DLT_RECEIVE_TEXTBUFSIZE, dltdata->vflag); - // 1st find starting point of tranfering data packages - if( strncmp(text, "FLST", 4) == 0) + if(dltdata->filetransfervalue) { - char *tmpFilename; - tmpFilename = strrchr(text, '/') + 1; - unsigned int i; - for(i=0; ivflag); + + // 1st find starting point of tranfering data packages + if( strncmp(text, "FLST", 4) == 0) { - if(isspace(tmpFilename[i])) + char *tmpFilename; + tmpFilename = strrchr(text, '/') + 1; + unsigned int i; + for(i=0; isystemjournalvalue) { - // truncate beginning of data stream ( FLDA, File identifier and package number) - char *position = strchr(text, 32); // search for space - snprintf(text, DLT_RECEIVE_TEXTBUFSIZE, position+1); - position = strchr(text, 32); - snprintf(text, DLT_RECEIVE_TEXTBUFSIZE, position+1); - position = strchr(text, 32); - snprintf(text, DLT_RECEIVE_TEXTBUFSIZE, position+1); - - // truncate ending of data stream ( FLDA ) - int len = strlen(text); - text[len - 4] = '\0'; - // hex to ascii and store at /tmp - char tmp[3]; - int i; - for(i = 0;i< (int) strlen(text); i = i+3) + dlt_message_print_ascii(message, text, DLT_RECEIVE_TEXTBUFSIZE, dltdata->vflag); + // 1st find the relevant packages + char * tmp = message->extendedheader->ctid; + tmp[4] = '\0'; + if( strcmp( tmp , (const char *) "JOUR") == 0) { - tmp[0] = text[i]; - tmp[1] = text[i+1]; - tmp[2] = '\0'; - unsigned long h = strtoul(tmp, NULL, 16); - fprintf(fp, "%c", (int) h); + if(strstr(text,"DLT SYSTEM JOURNAL TEST")) + { + result ++; + if( result == 1000) + exit(159); + } } } diff --git a/tests/start_filetransfer_test.sh b/tests/start_filetransfer_test.sh old mode 100644 new mode 100755 index cd44332..c139fb1 --- a/tests/start_filetransfer_test.sh +++ b/tests/start_filetransfer_test.sh @@ -5,7 +5,7 @@ fullpath="$(pwd)/testfile_filetransfer.txt" #start dlt-daemon dlt-daemon & #start dlt-test-receiver -./../build/tests/dlt_test_receiver localhost & +./../build/tests/dlt_test_receiver -f localhost & #send file to daemon dlt-example-filetransfer $fullpath & diff --git a/tests/start_systemd_journal_test.sh b/tests/start_systemd_journal_test.sh new file mode 100755 index 0000000..bdac21c --- /dev/null +++ b/tests/start_systemd_journal_test.sh @@ -0,0 +1,34 @@ +#!/bin/bash + +#build and install with SYSTEMD_JOURNAL=ON +mkdir ../build +cd ../build/ +cmake -DWITH_SYSTEMD_JOURNAL=ON .. +make && sudo make install +#enable SYSTEMD_JOURNAL in config file +sudo vim -esnc '%s/JournalEnable = 0/JournalEnable = 1/g|:wq' /usr/local/etc/dlt-system.conf +#start dlt-daemon +dlt-daemon & +#start dlt_system +dlt-system & +#send 10 times "DLT SYSTEM JOURNAL TEST" +for i in {1..1000} +do + logger DLT SYSTEM JOURNAL TEST +done +#start receiver +./../build/tests/dlt_test_receiver -s localhost & +pid=$! +wait $pid +exitcode=$? +# kill processes, receiver automatically killed with daemon +pkill dlt-daemon +pkill dlt-system +# if exit code == 159 , test successfull +tput setaf 1 +if [ $exitcode == 159 ]; then + echo "Systemd Journal tests successfull." +else + echo "Systemd Journal tests failed." +fi +tput setaf 7 -- cgit v1.2.1