From 12952d57f576bd630d0f762d460873ea297df6b0 Mon Sep 17 00:00:00 2001 From: lvklevankhanh <119659574+lvklevankhanh@users.noreply.github.com> Date: Wed, 5 Jul 2023 06:22:52 -0400 Subject: [PATCH 01/35] Update README.md Add sudo apt-get install build-essential --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 5a72c54d6..7a8e61758 100644 --- a/README.md +++ b/README.md @@ -66,7 +66,7 @@ install DLT daemon: On Ubuntu those dependencies can be installed with the following command: ```bash -sudo apt-get install cmake zlib1g-dev libdbus-glib-1-dev +sudo apt-get install cmake zlib1g-dev libdbus-glib-1-dev build-essential optional: sudo apt-get install libjson-c-dev # in case you want to use dlt-receives extended filtering ``` From a4ece7602840ae0a048eed7b4a9d8c0bac6a77ec Mon Sep 17 00:00:00 2001 From: Minh Quang Luu <50074497+minminlittleshrimp@users.noreply.github.com> Date: Fri, 14 Jul 2023 21:06:30 +0700 Subject: [PATCH 02/35] dlt-coverage: Add coverage report generator for dlt (#501) Coverage report generator: + Using gcov for coverage check and lcov for UI + Need some modification to trigger page build and deployment + New branch for coverage upload need to be created: dlt_coverage_report + Need to grant github action right to read and write permission to push coverage branch Signed-off-by: LUU QUANG MINH Co-authored-by: LUU QUANG MINH --- .github/workflows/cmake-ctest.yml | 42 ++++++--- .gitignore | 3 +- CMakeLists.txt | 34 +++++-- README.md | 6 +- .../lcov_report_generator.sh | 6 ++ util/gcov/gcov.sh | 92 ------------------- 6 files changed, 66 insertions(+), 117 deletions(-) create mode 100755 util/dlt_coverage_report/lcov_report_generator.sh delete mode 100755 util/gcov/gcov.sh diff --git a/.github/workflows/cmake-ctest.yml b/.github/workflows/cmake-ctest.yml index df877654a..c1f469f62 100644 --- a/.github/workflows/cmake-ctest.yml +++ b/.github/workflows/cmake-ctest.yml @@ -7,16 +7,12 @@ on: branches: [ "master" ] env: - # Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.) BUILD_TYPE: Release - WITH_DLT_UNIT_TESTS: ON + WITH_DLT_COVERAGE: ON BUILD_GMOCK: OFF jobs: build: - # The CMake configure and build commands are platform agnostic and should work equally well on Windows or Mac. - # You can convert this to a matrix build if you need cross-platform coverage. - # See: https://docs.github.com/en/free-pro-team@latest/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix runs-on: ubuntu-latest steps: @@ -24,24 +20,44 @@ jobs: - name: Prepare submodule run: | - git submodule init + git submodule init git submodule update - name: Configure CMake - # Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a - # single-configuration generator such as make. - # See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html?highlight=cmake_build_type run: | cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} \ - -DWITH_DLT_UNIT_TESTS=${{env.WITH_DLT_UNIT_TESTS}} \ + -DWITH_DLT_COVERAGE=${{env.WITH_DLT_COVERAGE}} \ -DBUILD_GMOCK=${{env.BUILD_GMOCK}} - name: Build - # Build your program with the given configuration run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} - name: Test working-directory: ${{github.workspace}}/build - # Execute tests defined by the CMake configuration. - # See https://cmake.org/cmake/help/latest/manual/ctest.1.html for more detail run: ctest -C ${{env.BUILD_TYPE}} + + - name: Install dependencies + run: sudo apt-get install lcov + + - name: Generate lcov report + working-directory: ${{github.workspace}} + run: bash util/dlt_coverage_report/lcov_report_generator.sh build -xe + + - name: Archive coverage results + uses: actions/upload-artifact@v3 + with: + name: dlt_coverage_report + path: ${{github.workspace}}/dlt_lcov_report + + - name: Upload lcov report + if: github.ref == 'refs/heads/master' + run: | + git config user.name github-actions + git config user.email github-actions@github.com + git checkout -b dlt_coverage_report + git submodule deinit -f googletest + rm -rf .git/modules/googletest + git rm -f googletest + git add --all + git commit -m "Upload lcov report for dlt-daemon" + git push -f origin dlt_coverage_report diff --git a/.gitignore b/.gitignore index e9e8645c2..0da830a7c 100644 --- a/.gitignore +++ b/.gitignore @@ -15,4 +15,5 @@ include/dlt/dlt_user.h *.out *.swp cmake-build-debug/ -.vscode/ \ No newline at end of file +.vscode/ +googletest/ diff --git a/CMakeLists.txt b/CMakeLists.txt index 74d0e6e07..014fc3bb9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -75,6 +75,7 @@ option(WITH_DLT_SYSTEM "Set to ON to build src/system binaries" option(WITH_DLT_DBUS "Set to ON to build src/dbus binaries" OFF) option(WITH_DLT_TESTS "Set to ON to build src/test binaries" ON) option(WITH_DLT_UNIT_TESTS "Set to ON to build gtest framework and tests/binaries" OFF) +option(WITH_DLT_COVERAGE "Set to ON to generate coverage report for dlt-daemon source code" OFF) option(WITH_DLT_QNX_SYSTEM "Set to ON to build QNX system binary dlt-qnx-system" OFF) option(WITH_DLT_FILE_LOGGING_SYSLOG_FALLBACK "Set to ON to enable fallback to syslog if dlt logging to file fails" OFF) option(WITH_DLT_NETWORK_TRACE "Set to ON to enable network trace (if message queue is supported)" ON) @@ -186,11 +187,11 @@ if(WITH_DLT_QNX_SYSTEM AND NOT "${CMAKE_C_COMPILER}" MATCHES "nto-qnx|qcc|ntoaar message(FATAL_ERROR "Can only compile for QNX with a QNX compiler, but found '${CMAKE_C_COMPILER}'.") endif() -if (WITH_DLT_FILE_LOGGING_SYSLOG_FALLBACK) +if(WITH_DLT_FILE_LOGGING_SYSLOG_FALLBACK) add_definitions(-DWITH_DLT_FILE_LOGGING_SYSLOG_FALLBACK) endif() -if (WITH_DLT_LOGSTORAGE_GZIP) +if(WITH_DLT_LOGSTORAGE_GZIP) add_definitions(-DDLT_LOGSTORAGE_USE_GZIP) endif() @@ -198,6 +199,18 @@ if(WITH_GPROF) add_compile_options(-pg) endif() +if(WITH_DLT_COVERAGE) + add_definitions(-DWITH_DLT_COVERAGE) + set(WITH_DLT_UNIT_TESTS ON) + if(WITH_DLT_UNIT_TESTS) + add_definitions(-DDLT_UNIT_TESTS) + endif() + + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} --coverage") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} --coverage") + set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} --coverage") +endif() + add_compile_options( $<$:-std=gnu99> $<$:-std=gnu++11> @@ -214,7 +227,7 @@ else() set(PACKAGE_DOC "") endif() -if (BUILD_SHARED_LIBS) +if(BUILD_SHARED_LIBS) set(CMAKE_STATIC_LIB_PATH "") else() set(CMAKE_STATIC_LIB_PATH "-L\$\{libdir\}/static") @@ -236,7 +249,7 @@ add_definitions(-DCONFIGURATION_FILES_DIR="${CONFIGURATION_FILES_DIR}") add_subdirectory(cmake) -if (WITH_DLT_NETWORK_TRACE) +if(WITH_DLT_NETWORK_TRACE) # Message queue if(HAVE_MQUEUE_H AND HAVE_FUNC_MQOPEN AND HAVE_FUNC_MQCLOSE AND HAVE_FUNC_MQUNLINK AND HAVE_FUNC_MQSEND AND HAVE_FUNC_MQRECEIVE) @@ -272,15 +285,15 @@ if(WITH_SYSTEMD add_definitions(-DDLT_SYSTEMD_JOURNAL_ENABLE) endif() - if (WITH_SYSTEMD_WATCHDOG_ENFORCE_MSG_RX) + if(WITH_SYSTEMD_WATCHDOG_ENFORCE_MSG_RX) add_definitions(-DDLT_SYSTEMD_WATCHDOG_ENFORCE_MSG_RX_ENABLE) endif() - if (WITH_SYSTEMD_WATCHDOG_ENFORCE_MSG_RX_DLT_SYSTEM) + if(WITH_SYSTEMD_WATCHDOG_ENFORCE_MSG_RX_DLT_SYSTEM) add_definitions(-DDLT_SYSTEMD_WATCHDOG_ENFORCE_MSG_RX_ENABLE_DLT_SYTSTEM) endif() - if (WITH_SYSTEMD_SOCKET_ACTIVATION) + if(WITH_SYSTEMD_SOCKET_ACTIVATION) if(NOT DLT_IPC STREQUAL "UNIX_SOCKET") message(FATAL_ERROR "WITH_SYSTEMD_SOCKET_ACTIVATION is only supported for UNIX_SOCKET") endif() @@ -332,11 +345,11 @@ add_subdirectory(doc) add_subdirectory(src) add_subdirectory(include) add_subdirectory(testscripts) -if (WITH_DLT_UNIT_TESTS) +if(WITH_DLT_UNIT_TESTS) find_package(GTest) - if (NOT GTEST_FOUND) - add_subdirectory( googletest ) + if(NOT GTEST_FOUND) + add_subdirectory(googletest) endif() enable_testing() add_subdirectory(tests) @@ -362,6 +375,7 @@ message(STATUS "WITH_DLT_FILETRANSFER = ${WITH_DLT_FILETRANSFER}") message(STATUS "WITH_DLT_DBUS = ${WITH_DLT_DBUS}") message(STATUS "WITH_DLT_TESTS = ${WITH_DLT_TESTS}") message(STATUS "WITH_DLT_UNIT_TESTS = ${WITH_DLT_UNIT_TESTS}") +message(STATUS "WITH_DLT_COVERAGE = ${WITH_DLT_COVERAGE}") message(STATUS "WITH_DLT_SHM_ENABLE = ${WITH_DLT_SHM_ENABLE}") message(STATUS "WITH_DLTTEST = ${WITH_DLTTEST}") message(STATUS "WITH_DLT_PKGCONFIG = ${WITH_DLT_PKGCONFIG}") diff --git a/README.md b/README.md index 7a8e61758..e4da7a990 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,11 @@ # Diagnostic Log and Trace -Status: [![Build Status](https://github.com/COVESA/dlt-daemon/actions/workflows/cmake-ctest.yml/badge.svg)]( https://github.com/COVESA/dlt-daemon/actions/workflows/cmake-ctest.yml) + +[![Build Status](https://github.com/COVESA/dlt-daemon/actions/workflows/cmake-ctest.yml/badge.svg)]( https://github.com/COVESA/dlt-daemon/actions/workflows/cmake-ctest.yml) [![CodeQL](https://github.com/COVESA/dlt-daemon/actions/workflows/codeql-analysis.yml/badge.svg?branch=master)](https://github.com/COVESA/dlt-daemon/actions/workflows/codeql-analysis.yml) +[![Page-build-deployment](https://github.com/COVESA/dlt-daemon/actions/workflows/pages/pages-build-deployment/badge.svg)](https://github.com/COVESA/dlt-daemon/actions/workflows/pages/pages-build-deployment) + +**Code coverage reports online** 📄 [LCOV - code coverage report](https://COVESA.github.io/dlt-daemon/dlt_lcov_report/index.html) # Diagnostic Log and Trace diff --git a/util/dlt_coverage_report/lcov_report_generator.sh b/util/dlt_coverage_report/lcov_report_generator.sh new file mode 100755 index 000000000..84e1f8188 --- /dev/null +++ b/util/dlt_coverage_report/lcov_report_generator.sh @@ -0,0 +1,6 @@ +#!/bin/bash +mkdir dlt_lcov_report +lcov --capture --directory $1/src --output-file dlt_lcov_report/dlt_init_coverage.info > /dev/null +lcov --remove dlt_lcov_report/dlt_init_coverage.info -o dlt_lcov_report/dlt_final_coverage.info '/usr/*' '*/include/*' > /dev/null +rm dlt_lcov_report/dlt_init_coverage.info > /dev/null +genhtml dlt_lcov_report/dlt_final_coverage.info --output-directory dlt_lcov_report diff --git a/util/gcov/gcov.sh b/util/gcov/gcov.sh deleted file mode 100755 index 86f8a735c..000000000 --- a/util/gcov/gcov.sh +++ /dev/null @@ -1,92 +0,0 @@ -#!/bin/sh - -RESULT=/tmp/dlt-daemon/$2 -LOG=$RESULT/$(basename $1).log - -FN_usage() -{ - echo "Usage: ${CMD_NAME} gtest_binary output_path" - exit 1 -} - -FN_copy_gcno() -{ - array=`find . -type f -name "*.gcda" -printf '%P\n' | sed "s/gcda/gcno/"` - - # Copy gcno - echo " Copy gcno" - for a in $array; do - GCNO=/$a - DIR=$(dirname $a) - - cp $GCNO $DIR - done -} - -FN_copy_gcda_gcno() -{ - # Copy gcda and gcno to common folder - echo " Copy gcda and gcno to common folder" - find . -name "*.gcda" | xargs -I{} cp {} . - find . -name "*.gcno" | xargs -I{} cp {} . -} - -FN_generate_result() -{ - # Generate result - echo " Generate result" - lcov -d . -c -o coverage.info > /dev/null - lcov -r coverage.info */gtest-1.7.0/* */x86_64-linux-gnu/* */c++/* */tests/* */include/* -o coverageFiltered.info > /dev/null - genhtml -o lcovHtml --num-spaces 4 -s --legend coverageFiltered.info > /dev/null - rm coverage.info coverageFiltered.info -} - -############################################################# -## main -############################################################# - -CMD_NAME=`basename $0` - -while getopts :h OPT -do - case $OPT in - h) FN_usage - ;; - \?) FN_usage - ;; - esac -done - -shift $((OPTIND - 1)) - -if [ $# -ne 2 ] -then - FN_usage -fi - -echo "########################################" -echo "Run gtest: $1" - -if [ ! -f $1 ]; then - echo "gtest does not exist. Run on valid folder." - exit 1 -fi - -echo " Output the result to $RESULT" -mkdir -p $RESULT -export GCOV_PREFIX=$RESULT - -# Run gtest -./$1 > ${LOG} - -pushd $RESULT > /dev/null - -FN_copy_gcno -FN_copy_gcda_gcno -FN_generate_result - -echo " Result can be found in $RESULT/lcovHtml/index.html" -echo "########################################" - -popd > /dev/null - From 9352f0dc612adee36e36393c4735e32b167a57d5 Mon Sep 17 00:00:00 2001 From: Alexander Mohr Date: Wed, 2 Aug 2023 11:12:00 +0200 Subject: [PATCH 03/35] dlt-system: move journal reading to its own thread (#471) Reading from journal uses an endless loop which only exits when no new messages are read from the journal. This is a problem when the local buffer of the application gets filled i.e. due dlt-daemon being busy and not accepting current messages. In this case the thread waits for 500ms and tries again to read messages from the journal. When new messages are available they also will be written to dlt. If this cycle continues for a while it is possible that other tasks, which use the same thread and are controlled via a timer, are not executed anymore as the funtion `get_journal_msg` will not exit. This will lead to termination through the systemd watchdog, as sd_notify is not called anymore. To circumvent this issue, reading logs from journald is moved into a separate thread. Furthermore this commit fixes some invalid free when no configuration is passed to dlt-system as well as adding missing initialization which also can lead to crashes. Although these issues are not responsible for the crash on the system, as they will only happen on application shutdown. Signed-off-by: Alexander Mohr --- src/system/dlt-system-journal.c | 24 +++++++++++-- src/system/dlt-system-options.c | 4 ++- src/system/dlt-system-process-handling.c | 44 ++++++++++++++++-------- src/system/dlt-system.h | 14 +++++--- 4 files changed, 65 insertions(+), 21 deletions(-) diff --git a/src/system/dlt-system-journal.c b/src/system/dlt-system-journal.c index b4364a492..2506f7df6 100644 --- a/src/system/dlt-system-journal.c +++ b/src/system/dlt-system-journal.c @@ -55,6 +55,7 @@ #include #include #include /* for PRI formatting macro */ +#include #define DLT_SYSTEM_JOURNAL_BUFFER_SIZE 256 @@ -389,9 +390,28 @@ void register_journal_fd(sd_journal **j, struct pollfd *pollfd, int i, DltSyste *j = j_tmp; } -void journal_fd_handler(sd_journal *j, DltSystemConfiguration *config) +void* journal_thread(void* journalParams) { - get_journal_msg(j, config); + struct journal_fd_params* params = (struct journal_fd_params*)journalParams; + + int ready; + while (*params->quit == 0) { + ready = poll(params->journalPollFd, 1, -1); + if (ready == -1) { + DLT_LOG(dltsystem, DLT_LOG_ERROR, DLT_STRING("Error while poll. Exit with: "), + DLT_STRING(strerror(ready))); + continue; + } + + if(params->journalPollFd->revents & POLLIN) { + if (sd_journal_process(params->j) == SD_JOURNAL_APPEND) { + get_journal_msg(params->j, params->config); + } + } + } + + // void* is only necessary to fulfill pthread_create signature + return NULL; } #endif /* DLT_SYSTEMD_JOURNAL_ENABLE */ diff --git a/src/system/dlt-system-options.c b/src/system/dlt-system-options.c index 50ff640f7..d24f278b6 100644 --- a/src/system/dlt-system-options.c +++ b/src/system/dlt-system-options.c @@ -82,6 +82,7 @@ void usage(char *prog_name) void init_cli_options(DltSystemCliOptions *options) { options->ConfigurationFileName = strdup(DEFAULT_CONF_FILE); + options->freeConfigFileName = 0; options->Daemonize = 0; } @@ -103,6 +104,7 @@ int read_command_line(DltSystemCliOptions *options, int argc, char *argv[]) case 'c': { options->ConfigurationFileName = malloc(strlen(optarg) + 1); + options->freeConfigFileName = 1; MALLOC_ASSERT(options->ConfigurationFileName); strcpy(options->ConfigurationFileName, optarg); /* strcpy unritical here, because size matches exactly the size to be copied */ break; @@ -419,7 +421,7 @@ int read_configuration_file(DltSystemConfiguration *config, char *file_name) void cleanup_config(DltSystemConfiguration *config, DltSystemCliOptions *options) { /* command line options */ - if ((options->ConfigurationFileName) != NULL) + if ((options->ConfigurationFileName) != NULL && options->freeConfigFileName) { free(options->ConfigurationFileName); options->ConfigurationFileName = NULL; diff --git a/src/system/dlt-system-process-handling.c b/src/system/dlt-system-process-handling.c index 028840538..c146b49b4 100644 --- a/src/system/dlt-system-process-handling.c +++ b/src/system/dlt-system-process-handling.c @@ -56,6 +56,7 @@ #include #include #include +#include DLT_IMPORT_CONTEXT(dltsystem) DLT_IMPORT_CONTEXT(syslogContext) @@ -121,21 +122,28 @@ int daemonize() } /* Unregisters all DLT Contexts and closes all file descriptors */ -void cleanup_processes(struct pollfd *pollfd, sd_journal *j, DltSystemConfiguration *config) +void cleanup_processes(struct pollfd *pollfd, struct pollfd *journalPollFd, sd_journal *j, DltSystemConfiguration *config) { //Syslog cleanup if (config->Syslog.Enable) DLT_UNREGISTER_CONTEXT(syslogContext); - + //Journal cleanup #if defined(DLT_SYSTEMD_JOURNAL_ENABLE) if (config->Journal.Enable) DLT_UNREGISTER_CONTEXT(journalContext); if(j != NULL) sd_journal_close(j); + + if(journalPollFd->fd > 0) + close(journalPollFd->fd); +#else + // silence warnings + (void)j; + (void)journalPollFd->fd; #endif - //Logfile cleanup + //Logfile cleanup if (config->LogFile.Enable) { for (int i = 0; i < config->LogFile.Count; i++) DLT_UNREGISTER_CONTEXT(logfileContext[i]); @@ -245,11 +253,21 @@ void start_dlt_system_processes(DltSystemConfiguration *config) //init FD for Journal sd_journal *j = NULL; + struct pollfd journalPollFd; #if defined(DLT_SYSTEMD_JOURNAL_ENABLE) + pthread_t journalThreadHandle; if (config->Journal.Enable) { - register_journal_fd(&j, pollfd, fdcnt, config); - fdType[fdcnt] = fdType_journal; - fdcnt++; + register_journal_fd(&j, &journalPollFd, 0, config); + struct journal_fd_params params = { + &quit, + &journalPollFd, + j, + config + }; + if (pthread_create(&journalThreadHandle, NULL, &journal_thread, (void*)¶ms) != 0) { + DLT_LOG(dltsystem, DLT_LOG_ERROR, DLT_STRING("Failed to create journal_thread thread "), + DLT_STRING(strerror(errno))); + } } #endif @@ -286,13 +304,6 @@ void start_dlt_system_processes(DltSystemConfiguration *config) else if (fdType[i] == fdType_timer) { timer_fd_handler(pollfd[i].fd, config); } - #if defined(DLT_SYSTEMD_JOURNAL_ENABLE) - else if((fdType[i] == fdType_journal) && (j != NULL)) { - if(sd_journal_process(j) == SD_JOURNAL_APPEND) { - journal_fd_handler(j, config); - } - } - #endif #if defined(DLT_FILETRANSFER_ENABLE) else if (fdType[i] == fdType_filetransfer) { filetransfer_fd_handler(config); @@ -311,7 +322,12 @@ void start_dlt_system_processes(DltSystemConfiguration *config) } } - cleanup_processes(pollfd, j, config); +#if defined(DLT_SYSTEMD_JOURNAL_ENABLE) + if (config->Journal.Enable) { + pthread_join(journalThreadHandle, NULL); + } +#endif + cleanup_processes(pollfd, &journalPollFd, j, config); } void dlt_system_signal_handler(int sig) diff --git a/src/system/dlt-system.h b/src/system/dlt-system.h index bbf177d58..769f78882 100644 --- a/src/system/dlt-system.h +++ b/src/system/dlt-system.h @@ -74,13 +74,12 @@ #define MAX_LINE 1024 /** Total number of file descriptors needed for processing all features: -* - Journal file descriptor * - Syslog file descriptor * - Timer file descriptor for processing LogFile and LogProcesses every second * - Inotify file descriptor for FileTransfer * - Timer file descriptor for Watchdog */ -#define MAX_FD_NUMBER 5 +#define MAX_FD_NUMBER 4 /* Macros */ #define MALLOC_ASSERT(x) if (x == NULL) { \ @@ -89,8 +88,7 @@ /* enum for classification of FD */ enum fdType { - fdType_journal = 0, - fdType_syslog, + fdType_syslog = 0, fdType_filetransfer, fdType_timer, fdType_watchdog, @@ -104,6 +102,7 @@ enum fdType { /* Command line options */ typedef struct { char *ConfigurationFileName; + int freeConfigFileName; int Daemonize; } DltSystemCliOptions; @@ -218,6 +217,13 @@ void watchdog_fd_handler(int fd, int* received_message_since_last_watchdog_inter void watchdog_fd_handler(int fd); #endif void journal_fd_handler(sd_journal *j, DltSystemConfiguration *config); +struct journal_fd_params { + volatile uint8_t* quit; + struct pollfd* journalPollFd; + sd_journal *j; + DltSystemConfiguration *config; +}; +void *journal_thread(void* journalParams); void syslog_fd_handler(int syslogSock); #endif /* DLT_SYSTEM_H_ */ From 4bad92266d887815a27f50d8eb590873c390bc9b Mon Sep 17 00:00:00 2001 From: Minh Quang Luu <50074497+minminlittleshrimp@users.noreply.github.com> Date: Wed, 2 Aug 2023 16:13:35 +0700 Subject: [PATCH 04/35] Switch from GENIVI to COVESA (#511) Signed-off-by: LUU QUANG MINH --- Android.bp | 4 ++-- CMakeLists.txt | 8 +++---- COPYING | 4 ++-- README.md | 20 +++++++++--------- ReleaseNotes.md | 2 +- automotive-dlt-config.cmake.in | 4 ++-- automotive-dlt.pc.in | 4 ++-- automotive-dlt.spec.in | 8 +++---- cmake/CMakeLists.txt | 4 ++-- cmake/config.h.cmake | 4 ++-- cmake/dlt_version.h.cmake | 4 ++-- debian/control | 4 ++-- debian/copyright | 2 +- doc/CMakeLists.txt | 4 ++-- doc/dlt-adaptor-stdin.1.md | 2 +- doc/dlt-adaptor-udp.1.md | 2 +- doc/dlt-control.1.md | 2 +- doc/dlt-convert.1.md | 2 +- doc/dlt-daemon.1.md | 4 ++-- doc/dlt-logstorage-ctrl.1.md | 2 +- doc/dlt-passive-node-ctrl.1.md | 2 +- doc/dlt-receive.1.md | 2 +- doc/dlt-sortbytimestamp.1.md | 2 +- doc/dlt-system.1.md | 2 +- doc/dlt-system.conf.5.md | 6 +++--- doc/dlt.conf.5.md | 18 ++++++++-------- doc/dlt_build_options.md | 2 +- doc/dlt_demo_setup.md | 2 +- doc/dlt_design_specification.md | 12 +++++------ doc/dlt_example_user.md | 2 +- doc/dlt_gateway.conf.5.md | 2 +- doc/dlt_glossary.md | 2 +- doc/doxygen.cfg.cmake | 6 +++--- doc/extended_network_trace_doxygen.cfg.cmake | 6 +++--- doc/images/genivilogo.png | Bin 9537 -> 0 bytes doc/mainpage.h | 8 +++---- doc/test/dlt-test-qnx-slogger.1.md | 2 +- examples/example1/CMakeLists.txt | 4 ++-- examples/example1/example1.c | 4 ++-- examples/example2/CMakeLists.txt | 4 ++-- examples/example2/dlt_id.h | 4 ++-- examples/example2/example2.c | 4 ++-- examples/example3/CMakeLists.txt | 4 ++-- examples/example3/dlt_id.h | 4 ++-- examples/example3/example3.c | 4 ++-- examples/example4/CMakeLists.txt | 4 ++-- examples/example4/example4.c | 4 ++-- include/CMakeLists.txt | 4 ++-- include/dlt/CMakeLists.txt | 4 ++-- include/dlt/dlt.h | 4 ++-- include/dlt/dlt_client.h | 4 ++-- include/dlt/dlt_common.h | 4 ++-- include/dlt/dlt_common_api.h | 4 ++-- include/dlt/dlt_cpp_extension.hpp | 4 ++-- include/dlt/dlt_filetransfer.h | 4 ++-- include/dlt/dlt_multiple_files.h | 4 ++-- include/dlt/dlt_offline_trace.h | 4 ++-- include/dlt/dlt_protocol.h | 4 ++-- include/dlt/dlt_shm.h | 4 ++-- include/dlt/dlt_types.h | 4 ++-- include/dlt/dlt_user.h.in | 4 ++-- include/dlt/dlt_user_macros.h | 4 ++-- src/CMakeLists.txt | 4 ++-- src/adaptor/CMakeLists.txt | 4 ++-- src/adaptor/dlt-adaptor-stdin.c | 4 ++-- src/adaptor/dlt-adaptor-udp.c | 4 ++-- src/android/dlt-logd-converter.cpp | 2 +- src/console/CMakeLists.txt | 4 ++-- src/console/dlt-control-common.c | 4 ++-- src/console/dlt-control-common.h | 4 ++-- src/console/dlt-control.c | 4 ++-- src/console/dlt-convert.c | 4 ++-- src/console/dlt-passive-node-ctrl.c | 4 ++-- src/console/dlt-receive.c | 4 ++-- src/console/dlt-sortbytimestamp.c | 4 ++-- src/console/logstorage/CMakeLists.txt | 4 ++-- .../logstorage/dlt-logstorage-common.c | 4 ++-- .../logstorage/dlt-logstorage-common.h | 4 ++-- src/console/logstorage/dlt-logstorage-ctrl.c | 4 ++-- src/console/logstorage/dlt-logstorage-ctrl.h | 4 ++-- src/console/logstorage/dlt-logstorage-list.c | 4 ++-- src/console/logstorage/dlt-logstorage-list.h | 4 ++-- src/console/logstorage/dlt-logstorage-prop.h | 4 ++-- src/console/logstorage/dlt-logstorage-udev.c | 4 ++-- src/console/logstorage/dlt-logstorage-udev.h | 4 ++-- src/core_dump_handler/50-coredump.conf.cmake | 4 ++-- src/core_dump_handler/CMakeLists.txt | 4 ++-- src/core_dump_handler/dlt_cdh.c | 4 ++-- src/core_dump_handler/dlt_cdh.h | 4 ++-- src/core_dump_handler/dlt_cdh_context.c | 4 ++-- src/core_dump_handler/dlt_cdh_coredump.c | 4 ++-- src/core_dump_handler/dlt_cdh_cpuinfo.h | 4 ++-- src/core_dump_handler/dlt_cdh_crashid.c | 4 ++-- src/core_dump_handler/dlt_cdh_definitions.h | 4 ++-- src/core_dump_handler/dlt_cdh_streamer.c | 4 ++-- src/core_dump_handler/dlt_cdh_streamer.h | 4 ++-- src/core_dump_handler/i686/dlt_cdh_cpuinfo.c | 4 ++-- .../x86_64/dlt_cdh_cpuinfo.c | 4 ++-- src/daemon/CMakeLists.txt | 4 ++-- src/daemon/dlt-daemon.c | 4 ++-- src/daemon/dlt-daemon.h | 4 ++-- src/daemon/dlt-daemon_cfg.h | 4 ++-- src/daemon/dlt_daemon_client.c | 4 ++-- src/daemon/dlt_daemon_client.h | 4 ++-- src/daemon/dlt_daemon_common.c | 4 ++-- src/daemon/dlt_daemon_common.h | 4 ++-- src/daemon/dlt_daemon_common_cfg.h | 4 ++-- src/daemon/dlt_daemon_connection.c | 4 ++-- src/daemon/dlt_daemon_connection.h | 4 ++-- src/daemon/dlt_daemon_connection_types.h | 4 ++-- src/daemon/dlt_daemon_event_handler.c | 4 ++-- src/daemon/dlt_daemon_event_handler.h | 4 ++-- src/daemon/dlt_daemon_event_handler_types.h | 4 ++-- src/daemon/dlt_daemon_offline_logstorage.c | 2 +- src/daemon/dlt_daemon_offline_logstorage.h | 2 +- .../dlt_daemon_offline_logstorage_internal.h | 2 +- src/daemon/dlt_daemon_serial.c | 4 ++-- src/daemon/dlt_daemon_serial.h | 4 ++-- src/daemon/dlt_daemon_socket.c | 4 ++-- src/daemon/dlt_daemon_socket.h | 4 ++-- src/daemon/dlt_daemon_unix_socket.c | 4 ++-- src/daemon/dlt_daemon_unix_socket.h | 4 ++-- .../dlt_daemon_udp_common_socket.h | 4 ++-- .../udp_connection/dlt_daemon_udp_socket.c | 4 ++-- .../udp_connection/dlt_daemon_udp_socket.h | 4 ++-- src/dbus/CMakeLists.txt | 4 ++-- src/dbus/dlt-dbus-options.c | 4 ++-- src/dbus/dlt-dbus.c | 4 ++-- src/dbus/dlt-dbus.h | 4 ++-- src/dlt-qnx-system/CMakeLists.txt | 4 ++-- .../dlt-qnx-slogger2-adapter.cpp | 2 +- src/dlt-qnx-system/dlt-qnx-system.c | 2 +- src/dlt-qnx-system/dlt-qnx-system.h | 2 +- src/examples/CMakeLists.txt | 4 ++-- src/examples/dlt-example-filetransfer.c | 4 ++-- .../dlt-example-multicast-clientmsg-view.c | 4 ++-- src/examples/dlt-example-user-common-api.c | 4 ++-- src/examples/dlt-example-user-func.c | 4 ++-- src/examples/dlt-example-user.c | 4 ++-- src/gateway/CMakeLists.txt | 4 ++-- src/gateway/dlt_gateway.c | 4 ++-- src/gateway/dlt_gateway.h | 4 ++-- src/gateway/dlt_gateway_internal.h | 4 ++-- src/gateway/dlt_gateway_types.h | 4 ++-- src/kpi/CMakeLists.txt | 4 ++-- src/kpi/dlt-kpi-common.c | 4 ++-- src/kpi/dlt-kpi-common.h | 4 ++-- src/kpi/dlt-kpi-interrupt.c | 4 ++-- src/kpi/dlt-kpi-interrupt.h | 4 ++-- src/kpi/dlt-kpi-options.c | 4 ++-- src/kpi/dlt-kpi-process-list.c | 4 ++-- src/kpi/dlt-kpi-process-list.h | 4 ++-- src/kpi/dlt-kpi-process.c | 4 ++-- src/kpi/dlt-kpi-process.h | 4 ++-- src/kpi/dlt-kpi.c | 4 ++-- src/kpi/dlt-kpi.h | 4 ++-- src/lib/CMakeLists.txt | 4 ++-- src/lib/dlt_client.c | 4 ++-- src/lib/dlt_client_cfg.h | 4 ++-- src/lib/dlt_env_ll.c | 4 ++-- src/lib/dlt_filetransfer.c | 4 ++-- src/lib/dlt_user.c | 4 ++-- src/lib/dlt_user_cfg.h | 4 ++-- .../dlt_offline_logstorage.c | 2 +- .../dlt_offline_logstorage.h | 2 +- .../dlt_offline_logstorage_behavior.c | 2 +- .../dlt_offline_logstorage_behavior.h | 2 +- ...dlt_offline_logstorage_behavior_internal.h | 2 +- .../dlt_offline_logstorage_internal.h | 2 +- src/shared/dlt_common.c | 4 ++-- src/shared/dlt_common_cfg.h | 4 ++-- src/shared/dlt_config_file_parser.c | 4 ++-- src/shared/dlt_config_file_parser.h | 4 ++-- src/shared/dlt_multiple_files.c | 2 +- src/shared/dlt_offline_trace.c | 4 ++-- src/shared/dlt_protocol.c | 4 ++-- src/shared/dlt_shm.c | 4 ++-- src/shared/dlt_user_shared.c | 4 ++-- src/shared/dlt_user_shared.h | 4 ++-- src/shared/dlt_user_shared_cfg.h | 4 ++-- src/system/CMakeLists.txt | 4 ++-- src/system/dlt-system-filetransfer.c | 4 ++-- src/system/dlt-system-journal.c | 4 ++-- src/system/dlt-system-logfile.c | 4 ++-- src/system/dlt-system-options.c | 4 ++-- src/system/dlt-system-process-handling.c | 4 ++-- src/system/dlt-system-processes.c | 4 ++-- src/system/dlt-system-shell.c | 4 ++-- src/system/dlt-system-syslog.c | 4 ++-- src/system/dlt-system-watchdog.c | 4 ++-- src/system/dlt-system.c | 4 ++-- src/system/dlt-system.conf | 6 +++--- src/system/dlt-system.h | 4 ++-- src/tests/CMakeLists.txt | 4 ++-- src/tests/dlt-test-client.c | 4 ++-- src/tests/dlt-test-cpp-extension.cpp | 4 ++-- src/tests/dlt-test-filetransfer.c | 4 ++-- src/tests/dlt-test-fork-handler.c | 4 ++-- src/tests/dlt-test-init-free.c | 4 ++-- src/tests/dlt-test-multi-process-client.c | 4 ++-- src/tests/dlt-test-multi-process.c | 4 ++-- src/tests/dlt-test-multi-process.h | 4 ++-- src/tests/dlt-test-non-verbose.c | 4 ++-- src/tests/dlt-test-preregister-context.c | 4 ++-- src/tests/dlt-test-qnx-slogger.c | 4 ++-- src/tests/dlt-test-stress-client.c | 4 ++-- src/tests/dlt-test-stress-user.c | 4 ++-- src/tests/dlt-test-stress.c | 4 ++-- src/tests/dlt-test-user.c | 4 ++-- systemd/CMakeLists.txt | 4 ++-- systemd/dlt-adaptor-udp.service.cmake | 6 +++--- systemd/dlt-dbus.service.cmake | 6 +++--- systemd/dlt-example-user.service.cmake | 8 +++---- systemd/dlt-receive.service.cmake | 6 +++--- systemd/dlt-system.service.cmake | 6 +++--- systemd/dlt.service.cmake | 6 +++--- tests/dlt_env_ll_unit_test.cpp | 4 ++-- tests/dlt_test_receiver.c | 4 ++-- tests/gtest_dlt_common.cpp | 4 ++-- tests/gtest_dlt_daemon_common.cpp | 4 ++-- tests/gtest_dlt_daemon_event_handler.cpp | 4 ++-- tests/gtest_dlt_daemon_gateway.cpp | 4 ++-- tests/gtest_dlt_daemon_gateway.sh | 4 ++-- ...test_dlt_daemon_multiple_files_logging.cpp | 4 ++-- tests/gtest_dlt_user.cpp | 4 ++-- tests/start_logstorage_test.sh | 4 ++-- tests/start_multinode_test.sh | 4 ++-- testscripts/CMakeLists.txt | 4 ++-- testscripts/Meego/dlt-daemon.cmake | 4 ++-- testscripts/Ubuntu/dlt-daemon.cmake | 4 ++-- util/create_dlt_user_h.py | 4 ++-- util/create_dlt_version_h.py | 4 ++-- 232 files changed, 467 insertions(+), 467 deletions(-) delete mode 100644 doc/images/genivilogo.png diff --git a/Android.bp b/Android.bp index 36f27d705..c1061a2fa 100644 --- a/Android.bp +++ b/Android.bp @@ -3,7 +3,7 @@ * This code is developed by Advanced Driver Information Technology. * Copyright of Advanced Driver Information Technology, Bosch and DENSO. * - * This file is part of GENIVI Project Dlt - Diagnostic Log and Trace console apps. + * This file is part of COVESA Project Dlt - Diagnostic Log and Trace console apps. * * * \copyright @@ -11,7 +11,7 @@ * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with * this file, You can obtain one at http://mozilla.org/MPL/2.0/. * - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ cc_defaults { diff --git a/CMakeLists.txt b/CMakeLists.txt index 014fc3bb9..151d74170 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -3,14 +3,14 @@ # # Copyright(C) 2011-2015, BMW AG # -# This file is part of GENIVI Project DLT - Diagnostic Log and Trace. +# This file is part of COVESA Project DLT - Diagnostic Log and Trace. # # This Source Code Form is subject to the terms of the # Mozilla Public License(MPL), v. 2.0. # If a copy of the MPL was not distributed with this file, # You can obtain one at http://mozilla.org/MPL/2.0/. # -# For further information see http://www.genivi.org/. +# For further information see http://www.covesa.org/. ####### cmake_minimum_required(VERSION 3.3) @@ -82,7 +82,7 @@ option(WITH_DLT_NETWORK_TRACE "Set to ON to enable network trace (if message que option(WITH_DLT_LOG_LEVEL_APP_CONFIG "Set to ON to enable default log levels based on application ids" OFF) set(DLT_IPC "FIFO" CACHE STRING "UNIX_SOCKET,FIFO") -set(DLT_USER "genivi" CACHE STRING "Set user for process not run as root") +set(DLT_USER "covesa" CACHE STRING "Set user for process not run as root") set(DLT_QNX_SLOG_ADAPTER_WAIT_BUFFER_TIMEOUT_MS "100" CACHE STRING "Timeout in milliseconds to wait before messages are dropped when input buffer is full") option(WITH_DLT_PKGCONFIG "Set to ON to generate pkgconfig .pc files" ON) @@ -107,7 +107,7 @@ set(DLT_WRITEV_TIMEOUT_SEC "1" CACHE STRING "Set sec timeout for writev to preve set(DLT_WRITEV_TIMEOUT_USEC "0" CACHE STRING "Set usec timeout for writev to prevent blocking indefinitely") # RPM settings -set(GENIVI_RPM_RELEASE "1") # ${DLT_REVISION}") +set(COVESA_RPM_RELEASE "1") # ${DLT_REVISION}") set(LICENSE "Mozilla Public License Version 2.0") # Build, project and include settings diff --git a/COPYING b/COPYING index c82b239f1..c06255495 100644 --- a/COPYING +++ b/COPYING @@ -2,11 +2,11 @@ # # Copyright (C) 2011-2015, BMW AG # - # This file is part of GENIVI Project DLT - Diagnostic Log and Trace. + # This file is part of COVESA Project DLT - Diagnostic Log and Trace. # # This Source Code Form is subject to the terms of the # Mozilla Public License (MPL), v. 2.0. # If a copy of the MPL was not distributed with this file, # You can obtain one at http://mozilla.org/MPL/2.0/. # - # For further information see http://www.genivi.org/. + # For further information see http://www.covesa.org/. diff --git a/README.md b/README.md index e4da7a990..b31ebd05d 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,7 @@ # Diagnostic Log and Trace -Welcome to GENIVI Diagnostic Log and Trace (DLT). If you are familiar with DLT +Welcome to COVESA Diagnostic Log and Trace (DLT). If you are familiar with DLT and want to know what's new, check the [Release Notes](ReleaseNotes.md). **New to DLT? Great! Welcome aboard.** We prepared a brief [overview](#overview) @@ -19,11 +19,11 @@ you can [learn more](#learn-more) about advanced concepts and features. ## Overview -GENIVI DLT provides a log and trace interface, based on the standardised +COVESA DLT provides a log and trace interface, based on the standardised protocol specified in the [AUTOSAR standard 4 DLT](https://www.autosar.org/fileadmin/standards/R22-11/CP/AUTOSAR_SWS_DiagnosticLogAndTrace.pdf). -It is used by other GENIVI components but can serve as logging framework for -other applications without relation to GENIVI. +It is used by other COVESA components but can serve as logging framework for +other applications without relation to COVESA. The most important terms and parts are depicted in the following figure. Please refer to [Glossary](doc/dlt_glossary.md) for a full overview over DLT-specific @@ -78,7 +78,7 @@ Then proceed to download DLT if you haven't already. We recommend cloning the repository, but downloading and extracting a zip-archive is fine as well. ```bash cd /path/to/workspace -git clone https://github.com/GENIVI/dlt-daemon.git +git clone https://github.com/COVESA/dlt-daemon.git ``` To build and install the DLT daemon, follow these steps: @@ -134,7 +134,7 @@ DLT or study its internals by checking out the [design specifications](./doc/dlt_design_specification.md). ### Advanced Topics -The GENIVI DLT implementation is capable of by far more than to "just" send log +The COVESA DLT implementation is capable of by far more than to "just" send log message. You will get an overview of advanced features in this section. Follow the links to learn more about the respective concept. @@ -191,9 +191,9 @@ Start working, best practice is to commit smaller, compilable pieces during the work that makes it easier to handle later on. If you want to commit your changes, create a -[Pull Request](https://github.com/genivi/dlt-daemon/pulls) in Github. Please +[Pull Request](https://github.com/covesa/dlt-daemon/pulls) in Github. Please make sure to follow the -[Rules for commit messages](https://at.projects.genivi.org/wiki/display/PROJ/Rules+for+Commit+Messages) +[Rules for commit messages](https://at.projects.covesa.org/wiki/display/PROJ/Rules+for+Commit+Messages) ### Coding Rules @@ -217,7 +217,7 @@ For reference to clang-format, you can check with: ## Known issues List of open issues can be found on -[Github](https://github.com/GENIVI/dlt-daemon/issues) +[Github](https://github.com/COVESA/dlt-daemon/issues) - DLT library: Usage of dlt\_user\_log\_write\_float64() and DLT\_FLOAT64() leads to "Illegal instruction (core dumped)" on ARM target. @@ -243,4 +243,4 @@ file in src/core\_dump\_handler/cityhash\_c. Methner, Michael , Le Van, Khanh -![alt text](doc/images/genivilogo.png "GENIVI") +![alt text](https://covesa.global/sites/all/themes/resp_1/images/covesa-logo.png) diff --git a/ReleaseNotes.md b/ReleaseNotes.md index 8426de4f8..d0516016e 100644 --- a/ReleaseNotes.md +++ b/ReleaseNotes.md @@ -685,7 +685,7 @@ Back to [README.md](../README.md) * Added unit and functional tests * Fixed copyright doxygen comments - * Updated license headers to latest GENIVI license policy + * Updated license headers to latest COVESA license policy * Renamed and cleanup further files to comply with licensing requirements * dlt-control: Check for return values * dlt-daemon: Explicitly set the default loggingLevel to LOG_INFO diff --git a/automotive-dlt-config.cmake.in b/automotive-dlt-config.cmake.in index 5013b5403..832a129fe 100644 --- a/automotive-dlt-config.cmake.in +++ b/automotive-dlt-config.cmake.in @@ -3,14 +3,14 @@ # # Copyright (C) 2021, Martin Willers # -# This file is part of GENIVI Project DLT - Diagnostic Log and Trace. +# This file is part of COVESA Project DLT - Diagnostic Log and Trace. # # This Source Code Form is subject to the terms of the # Mozilla Public License (MPL), v. 2.0. # If a copy of the MPL was not distributed with this file, # You can obtain one at http://mozilla.org/MPL/2.0/. # -# For further information see http://www.genivi.org/. +# For further information see http://www.covesa.org/. ####### # Config file for the Genivi::dlt package. diff --git a/automotive-dlt.pc.in b/automotive-dlt.pc.in index ddca06060..bd9ce0cc0 100644 --- a/automotive-dlt.pc.in +++ b/automotive-dlt.pc.in @@ -3,14 +3,14 @@ # # Copyright (C) 2011-2015, BMW AG # -# This file is part of GENIVI Project DLT - Diagnostic Log and Trace. +# This file is part of COVESA Project DLT - Diagnostic Log and Trace. # # This Source Code Form is subject to the terms of the # Mozilla Public License (MPL), v. 2.0. # If a copy of the MPL was not distributed with this file, # You can obtain one at http://mozilla.org/MPL/2.0/. # -# For further information see http://www.genivi.org/. +# For further information see http://www.covesa.org/. ####### prefix=@CMAKE_INSTALL_PREFIX@ diff --git a/automotive-dlt.spec.in b/automotive-dlt.spec.in index 7f3df98bd..6901df5f7 100644 --- a/automotive-dlt.spec.in +++ b/automotive-dlt.spec.in @@ -3,19 +3,19 @@ # # Copyright (C) 2011-2015, BMW AG # -# This file is part of GENIVI Project DLT - Diagnostic Log and Trace. +# This file is part of COVESA Project DLT - Diagnostic Log and Trace. # # This Source Code Form is subject to the terms of the # Mozilla Public License (MPL), v. 2.0. # If a copy of the MPL was not distributed with this file, # You can obtain one at http://mozilla.org/MPL/2.0/. # -# For further information see http://www.genivi.org/. +# For further information see http://www.covesa.org/. ####### Name: @PROJECT_NAME@ Version: @PROJECT_VERSION@ -Release: @GENIVI_RPM_RELEASE@ +Release: @COVESA_RPM_RELEASE@ Summary: %{name} - Diagnostic Log and Trace Group: System Environment/Base Vendor: BMW Group AG @@ -28,7 +28,7 @@ BuildRequires: cmake %description This component provides a standardised log and trace interface, based on the standardised protocol specified in the AUTOSAR standard 4.0 DLT. -This component can be used by GENIVI components and other applications as +This component can be used by COVESA components and other applications as logging facility providing - the DLT shared library - the DLT daemon, including startup scripts diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt index 3ceae3c1f..91fe848b1 100644 --- a/cmake/CMakeLists.txt +++ b/cmake/CMakeLists.txt @@ -3,14 +3,14 @@ # # Copyright (C) 2011-2015, BMW AG # -# This file is part of GENIVI Project DLT - Diagnostic Log and Trace. +# This file is part of COVESA Project DLT - Diagnostic Log and Trace. # # This Source Code Form is subject to the terms of the # Mozilla Public License (MPL), v. 2.0. # If a copy of the MPL was not distributed with this file, # You can obtain one at http://mozilla.org/MPL/2.0/. # -# For further information see http://www.genivi.org/. +# For further information see http://www.covesa.org/. ####### # Run CheckIncludeFiles and CheckFunctionExists diff --git a/cmake/config.h.cmake b/cmake/config.h.cmake index 122532c88..70a21c5b1 100644 --- a/cmake/config.h.cmake +++ b/cmake/config.h.cmake @@ -3,14 +3,14 @@ * * Copyright (C) 2011-2015, BMW AG * - * This file is part of GENIVI Project DLT - Diagnostic Log and Trace. + * This file is part of COVESA Project DLT - Diagnostic Log and Trace. * * This Source Code Form is subject to the terms of the * Mozilla Public License (MPL), v. 2.0. * If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. * - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ // DO NOT EDIT! GENERATED AUTOMATICALLY! diff --git a/cmake/dlt_version.h.cmake b/cmake/dlt_version.h.cmake index 78442ee25..c5dbf2e06 100644 --- a/cmake/dlt_version.h.cmake +++ b/cmake/dlt_version.h.cmake @@ -3,14 +3,14 @@ * * Copyright (C) 2011-2015, BMW AG * - * This file is part of GENIVI Project DLT - Diagnostic Log and Trace. + * This file is part of COVESA Project DLT - Diagnostic Log and Trace. * * This Source Code Form is subject to the terms of the * Mozilla Public License (MPL), v. 2.0. * If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. * - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ diff --git a/debian/control b/debian/control index 15583434d..ce0e2cc8d 100644 --- a/debian/control +++ b/debian/control @@ -12,10 +12,10 @@ Depends: ${shlibs:Depends}, ${misc:Depends} Description: Diagnostic Log and Trace daemon This component provides a standardised log and trace interface, based on the standardised protocol specified in the AUTOSAR standard 4.0 DLT. - This component can be used by GENIVI components and other applications + This component can be used by COVESA components and other applications as logging facility providing . - The DLT daemon is the central component in GENIVI, which gathers all + The DLT daemon is the central component in COVESA, which gathers all logs and traces from the DLT user applications. The logs and traces are stored optionally directly in a file in the ECU. The DLT daemon forwards all logs and traces to a connected DLT client. diff --git a/debian/copyright b/debian/copyright index a3c4bea54..30472e923 100644 --- a/debian/copyright +++ b/debian/copyright @@ -1,6 +1,6 @@ Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ Upstream-Name: dlt-daemon -Source: https://github.com/GENIVI/dlt-daemon +Source: https://github.com/COVESA/dlt-daemon Files: * Copyright: diff --git a/doc/CMakeLists.txt b/doc/CMakeLists.txt index d0f2d67d9..ee2405f38 100644 --- a/doc/CMakeLists.txt +++ b/doc/CMakeLists.txt @@ -3,14 +3,14 @@ # # Copyright (C) 2011-2015, BMW AG # -# This file is part of GENIVI Project DLT - Diagnostic Log and Trace. +# This file is part of COVESA Project DLT - Diagnostic Log and Trace. # # This Source Code Form is subject to the terms of the # Mozilla Public License (MPL), v. 2.0. # If a copy of the MPL was not distributed with this file, # You can obtain one at http://mozilla.org/MPL/2.0/. # -# For further information see http://www.genivi.org/. +# For further information see http://www.covesa.org/. ####### if(WITH_DOC) diff --git a/doc/dlt-adaptor-stdin.1.md b/doc/dlt-adaptor-stdin.1.md index 055679868..b0e7313aa 100644 --- a/doc/dlt-adaptor-stdin.1.md +++ b/doc/dlt-adaptor-stdin.1.md @@ -56,7 +56,7 @@ Copyright (C) 2019 Advanced Driver Information Technology, Bosch and DENSO. Lice # BUGS -See Github issue: +See Github issue: # SEE ALSO diff --git a/doc/dlt-adaptor-udp.1.md b/doc/dlt-adaptor-udp.1.md index 5b92eb77e..5804ece06 100644 --- a/doc/dlt-adaptor-udp.1.md +++ b/doc/dlt-adaptor-udp.1.md @@ -51,7 +51,7 @@ Copyright (C) 2019 Advanced Driver Information Technology, Bosch and DENSO. Lice # BUGS -See Github issue: +See Github issue: # SEE ALSO diff --git a/doc/dlt-control.1.md b/doc/dlt-control.1.md index e06c5a940..066206963 100644 --- a/doc/dlt-control.1.md +++ b/doc/dlt-control.1.md @@ -158,7 +158,7 @@ Copyright (C) 2019 Advanced Driver Information Technology, Bosch and DENSO. Lice # BUGS -See Github issue: +See Github issue: # SEE ALSO diff --git a/doc/dlt-convert.1.md b/doc/dlt-convert.1.md index 19f855a7c..6d23b006d 100644 --- a/doc/dlt-convert.1.md +++ b/doc/dlt-convert.1.md @@ -95,7 +95,7 @@ Copyright (C) 2015 BMW AG. License MPL-2.0: Mozilla Public License version 2.0 < # BUGS -See Github issue: +See Github issue: # SEE ALSO diff --git a/doc/dlt-daemon.1.md b/doc/dlt-daemon.1.md index e30405ad4..d4ac4cad8 100644 --- a/doc/dlt-daemon.1.md +++ b/doc/dlt-daemon.1.md @@ -13,7 +13,7 @@ The DLT daemon is the central place where logs and traces are gathered from different applications, stored temporarily or permanently and transferred to a DLT client application, which can run directly on the -GENIVI system or more likely on a external tester device. +COVESA system or more likely on a external tester device. ## OPTIONS @@ -75,7 +75,7 @@ Copyright (C) 2016 BMW AG. License MPL-2.0: Mozilla Public License version 2.0 < # BUGS -See Github issue: +See Github issue: # SEE ALSO diff --git a/doc/dlt-logstorage-ctrl.1.md b/doc/dlt-logstorage-ctrl.1.md index 931e452cb..720c74062 100644 --- a/doc/dlt-logstorage-ctrl.1.md +++ b/doc/dlt-logstorage-ctrl.1.md @@ -71,7 +71,7 @@ Copyright (C) 2015 Advanced Driver Information Technology, Bosch and DENSO. Lice # BUGS -See Github issue: +See Github issue: # SEE ALSO diff --git a/doc/dlt-passive-node-ctrl.1.md b/doc/dlt-passive-node-ctrl.1.md index 6525fadf5..4691fccc1 100644 --- a/doc/dlt-passive-node-ctrl.1.md +++ b/doc/dlt-passive-node-ctrl.1.md @@ -71,7 +71,7 @@ Copyright (C) 2015 Advanced Driver Information Technology, Bosch and DENSO. Lice # BUGS -See Github issue: +See Github issue: # SEE ALSO diff --git a/doc/dlt-receive.1.md b/doc/dlt-receive.1.md index 38eed53c5..508077136 100644 --- a/doc/dlt-receive.1.md +++ b/doc/dlt-receive.1.md @@ -144,7 +144,7 @@ Copyright (C) 2015 BMW AG. License MPL-2.0: Mozilla Public License version 2.0 < # BUGS -See Github issue: +See Github issue: # SEE ALSO diff --git a/doc/dlt-sortbytimestamp.1.md b/doc/dlt-sortbytimestamp.1.md index caf02563c..02cc348c8 100644 --- a/doc/dlt-sortbytimestamp.1.md +++ b/doc/dlt-sortbytimestamp.1.md @@ -71,7 +71,7 @@ License MPL-2.0: Mozilla Public License version 2.0 +See Github issue: # SEE ALSO diff --git a/doc/dlt-system.1.md b/doc/dlt-system.1.md index 78e8af308..279ff3ae1 100644 --- a/doc/dlt-system.1.md +++ b/doc/dlt-system.1.md @@ -50,7 +50,7 @@ Copyright (C) 2015 BMW AG. License MPL-2.0: Mozilla Public License version 2.0 < # BUGS -See Github issue: +See Github issue: # SEE ALSO diff --git a/doc/dlt-system.conf.5.md b/doc/dlt-system.conf.5.md index 9fc65b2eb..b865b316c 100644 --- a/doc/dlt-system.conf.5.md +++ b/doc/dlt-system.conf.5.md @@ -28,7 +28,7 @@ The application Id used for the dlt-system process. ## ShellEnable -Enable the Shell for command line injections. Be careful when you enable this feature. The user can send any kind of shell commands. The commands are executed with the rights of the dlt-system process. Dlt-system is started by default as user genivi. +Enable the Shell for command line injections. Be careful when you enable this feature. The user can send any kind of shell commands. The commands are executed with the rights of the dlt-system process. Dlt-system is started by default as user covesa. Default: 0 @@ -56,7 +56,7 @@ This value defines the UDP port opened for receiving log messages from syslog. C ## JournalEnable -Enable the Systemd Journal Adapter. This feature is only available, when dlt is compiled with the option "WITH_SYSTEMD_JOURNAL". Dlt-system is started by default as user genivi, see dlt-system.service file. The user genivi must be added to one of the groups 'adm', 'wheel' or 'systemd-journal' to have access to all journal entries. +Enable the Systemd Journal Adapter. This feature is only available, when dlt is compiled with the option "WITH_SYSTEMD_JOURNAL". Dlt-system is started by default as user covesa, see dlt-system.service file. The user covesa must be added to one of the groups 'adm', 'wheel' or 'systemd-journal' to have access to all journal entries. Default: 0 @@ -204,7 +204,7 @@ Copyright (C) 2015 BMW AG. License MPL-2.0: Mozilla Public License version 2.0 < # BUGS -See Github issue: +See Github issue: # SEE ALSO diff --git a/doc/dlt.conf.5.md b/doc/dlt.conf.5.md index 8090438f0..d82531407 100644 --- a/doc/dlt.conf.5.md +++ b/doc/dlt.conf.5.md @@ -6,7 +6,7 @@ # DESCRIPTION -The DLT daemon is the central application which gathers logs and traces from different applications, stores them temporarily or permanently and transfers them to a DLT client application, which could run directly on the GENIVI system or more likely on some external tester device. +The DLT daemon is the central application which gathers logs and traces from different applications, stores them temporarily or permanently and transfers them to a DLT client application, which could run directly on the COVESA system or more likely on some external tester device. The configuration file dlt.conf allows to configure the different runtime behaviour of the dlt-daemon. It is loaded during startup of dlt-daemon. @@ -171,32 +171,32 @@ Read gateway configuration from another location # Permission configuration DLT daemon runs with e.g. - User: genivi_dlt - Group: genivi_dlt + User: covesa_dlt + Group: covesa_dlt DLT user applications run with different user and group than dlt-daemon but with supplimentory group: dlt_user_apps_group /dlt FIFO will be created by dlt-daemon with - User: genivi_dlt + User: covesa_dlt Group: dlt_user_apps_group Permission: 620 so that only dlt-daemon can read and only processes in dlt_user_apps_group can write. /dltpipes will be created by dlt-daemon with - User: genivi_dlt - Group: genivi_dlt + User: covesa_dlt + Group: covesa_dlt Permission: 3733 (i.e Sticky bit and SGID turned on) /dltpipes/dlt FIFO will be created by dlt application (user lib) with User: - Group: genivi_dlt (inherited from dltpipes/ due to SGID) + Group: covesa_dlt (inherited from dltpipes/ due to SGID) Permission: 620 Thus DLT user applications (and also or attackers) can create the dlt FIFO (for communication from dlt-daemon to DLT user application) under /dltpipes/. Since sticky bit is set the applications who creates the FIFO can only rename/delete it. -Since SGID of /dltpipes is set the group of dlt FIFO will be genivi_dlt which enables dlt daemon to have write permission on all the dlt FIFO. +Since SGID of /dltpipes is set the group of dlt FIFO will be covesa_dlt which enables dlt daemon to have write permission on all the dlt FIFO. One dlt user application cannot access dlt FIFO created by other dlt user application(if they run with different user). @@ -376,7 +376,7 @@ Copyright (C) 2015 BMW AG. License MPL-2.0: Mozilla Public License version 2.0 < # BUGS -See Github issue: +See Github issue: # SEE ALSO diff --git a/doc/dlt_build_options.md b/doc/dlt_build_options.md index 32f9f47c8..d5e0c469d 100644 --- a/doc/dlt_build_options.md +++ b/doc/dlt_build_options.md @@ -21,7 +21,7 @@ BUILD\_SHARED\_LIBS | ON | Set to OFF to build static libraries DLT\_IPC |"FIFO" | Set to either "UNIX\_SOCKET" or "FIFO" WITH\_DLT\_USE\_IPv6 | ON | Set to ON for IPv6 support WITH\_DLT\_EXAMPLES | ON | Set to ON to build src/examples binaries -DLT\_USER | genivi | Set user for process not run as root +DLT\_USER | covesa | Set user for process not run as root WITH\_CHECK\_CONFIG\_FILE | OFF | Set to ON to create a configure file of CheckIncludeFiles and CheckFunctionExists CMAKE\_INSTALL\_PREFIX | /usr/local CMAKE\_BUILD\_TYPE | RelWithDebInfo diff --git a/doc/dlt_demo_setup.md b/doc/dlt_demo_setup.md index 3d357f4fd..886b7e59c 100644 --- a/doc/dlt_demo_setup.md +++ b/doc/dlt_demo_setup.md @@ -58,7 +58,7 @@ WARNING ```(-l 3)``` containing a string payload. ## Read logs The DLT daemon now has the messages in its buffer and will keep them there until they are fetched. A mighty tool for receiving and processing log messages is the -[DLT-Viewer](https://github.com/GENIVI/dlt-viewer), which also provides a +[DLT-Viewer](https://github.com/COVESA/dlt-viewer), which also provides a graphical UI. For now, a simple command line client is absolutely sufficient: ```bash $ dlt-receive -a localhost diff --git a/doc/dlt_design_specification.md b/doc/dlt_design_specification.md index b5f8cc75c..677f42537 100644 --- a/doc/dlt_design_specification.md +++ b/doc/dlt_design_specification.md @@ -3,14 +3,14 @@ SPDX license identifier: MPL-2.0 Copyright (C) 2011-2015, BMW AG -This file is part of GENIVI Project DLT - Diagnostic Log and Trace. +This file is part of COVESA Project DLT - Diagnostic Log and Trace. This Source Code Form is subject to the terms of the Mozilla Public License (MPL), v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/ -For further information see http://www.genivi.org/ +For further information see http://www.covesa.org/ *** # DLT Design Specification @@ -20,12 +20,12 @@ Alexander Wenzel Luong Hong Duy Khanh 0.0.2, 2020/04/10: Update and convert to markdown format -![genivilogo](images/genivilogo.png "GENIVI") +![covesalogo](images/covesalogo.png "COVESA") ## Purpose This document specifies the usage of the DLT daemon v2 and also the internal functionality of the DLT daemon v2. The DLT daemon v2 is a complete rework of -the DLT daemon v1, which is part of the GENIVI 1.0 release. +the DLT daemon v1, which is part of the COVESA 1.0 release. The DLT daemon component is based on the [AUTOSAR 4.0 standard DLT](https://www.autosar.org/fileadmin/user_upload/standards/classic/4-0/AUTOSAR_SWS_DiagnosticLogAndTrace.pdf) @@ -36,11 +36,11 @@ The DLT daemon component is based on the ![dlt_overview](images/dlt_overview.png "DLT OVERVIEW") -The DLT daemon is the central component in GENIVI, where logs and traces are +The DLT daemon is the central component in COVESA, where logs and traces are gathered from the DLT user and different applications, stored optionally temporarily or permanently in a file in the ECU. The DLT daemon forwards all logs and traces to a connected DLT client application, which can run directly -on the GENIVI system or more likely on an external tester device. +on the COVESA system or more likely on an external tester device. The DLT client can send control messages to the daemon, e.g. to set individual log levels of applications and contexts or get the list of applications and diff --git a/doc/dlt_example_user.md b/doc/dlt_example_user.md index 0aa9d0e10..a6305c96f 100644 --- a/doc/dlt_example_user.md +++ b/doc/dlt_example_user.md @@ -107,7 +107,7 @@ Copyright (C) 2020 ADIT GmbH. License MPL-2.0: Mozilla Public License version 2. # BUGS -See Github issue: +See Github issue: # SEE ALSO diff --git a/doc/dlt_gateway.conf.5.md b/doc/dlt_gateway.conf.5.md index 61eb0637c..2beed68fa 100644 --- a/doc/dlt_gateway.conf.5.md +++ b/doc/dlt_gateway.conf.5.md @@ -112,7 +112,7 @@ Copyright (C) 2020 Advanced Driver Information Technology, Bosch and DENSO. Lice # BUGS -See Github issue: +See Github issue: # SEE ALSO diff --git a/doc/dlt_glossary.md b/doc/dlt_glossary.md index 843b9abee..4a016f079 100644 --- a/doc/dlt_glossary.md +++ b/doc/dlt_glossary.md @@ -12,7 +12,7 @@ Control Message | A control message is send by a connected client application (e DLT Daemon | The DLT Daemon is the central component which receives all logs and traces from the DLT user applications. The DLT Daemon forwards all logs and traces to a connected DLT client (e.g. Log Viewer) or stores them optionally in a file on the target. DLT Library | Provides applications (esp. DLT users) with an API to produce DLT messages and to handle DLT Control Messages accordingly. DLT User | A DLT User is a type of application that produces log messages. It typically uses the DLT library to produce the messages and resembles an ECU. -DLT Viewer | The DLT Viewer is the GENIVI Log Viewer implementation. It is a Qt-based desktop application able to run on Windows and Linux operating systems. Further information and source code can be found here: https://github.com/GENIVI/dlt-viewer +DLT Viewer | The DLT Viewer is the COVESA Log Viewer implementation. It is a Qt-based desktop application able to run on Windows and Linux operating systems. Further information and source code can be found here: https://github.com/COVESA/dlt-viewer Gateway DLT Daemon | In a Multi-Node system, the DLT Daemon running on the Node directly connected to a Log Viewer is called Gateway DLT Daemon (if configured as Gateway). It forwards log messages from Passive DLT Daemons to Log Viewers and command/control messages from Log Viewer(s) to Passive DLT Daemon(s). Injection Message | An injection message is a control message for a specific DLT application. Log Consumer | A log consumer is an application connected to the DLT Daemon (DLT Client) that receives log messages and stores (e.g. Logstorage) or displays them (e.g. Log Viewer). A log consumer can run on the same operating system or on a remote host pc. diff --git a/doc/doxygen.cfg.cmake b/doc/doxygen.cfg.cmake index 16e1ff540..614b22935 100644 --- a/doc/doxygen.cfg.cmake +++ b/doc/doxygen.cfg.cmake @@ -3,14 +3,14 @@ # # Copyright (C) 2011-2015, BMW AG # -# This file is part of GENIVI Project DLT - Diagnostic Log and Trace. +# This file is part of COVESA Project DLT - Diagnostic Log and Trace. # # This Source Code Form is subject to the terms of the # Mozilla Public License (MPL), v. 2.0. # If a copy of the MPL was not distributed with this file, # You can obtain one at http://mozilla.org/MPL/2.0/. # -# For further information see http://www.genivi.org/. +# For further information see http://www.covesa.org/. ####### # Doxyfile 1.5.8 @@ -46,7 +46,7 @@ PROJECT_NAME = @PROJECT_NAME@ # This could be handy for archiving the generated documentation or # if some version control system is used. -PROJECT_NUMBER = @GENIVI_PROJECT_VERSION@ +PROJECT_NUMBER = @COVESA_PROJECT_VERSION@ # The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) # base path where the generated documentation will be put. diff --git a/doc/extended_network_trace_doxygen.cfg.cmake b/doc/extended_network_trace_doxygen.cfg.cmake index 2dba7596c..f4f77d82d 100644 --- a/doc/extended_network_trace_doxygen.cfg.cmake +++ b/doc/extended_network_trace_doxygen.cfg.cmake @@ -3,14 +3,14 @@ # # Copyright (C) 2011-2015, BMW AG # -# This file is part of GENIVI Project DLT - Diagnostic Log and Trace. +# This file is part of COVESA Project DLT - Diagnostic Log and Trace. # # This Source Code Form is subject to the terms of the # Mozilla Public License (MPL), v. 2.0. # If a copy of the MPL was not distributed with this file, # You can obtain one at http://mozilla.org/MPL/2.0/. # -# For further information see http://www.genivi.org/. +# For further information see http://www.covesa.org/. ####### # Doxyfile 1.5.8 @@ -46,7 +46,7 @@ PROJECT_NAME = @PROJECT_NAME@ - ExtendedNetworkTrace # This could be handy for archiving the generated documentation or # if some version control system is used. -PROJECT_NUMBER = @GENIVI_PROJECT_VERSION@ +PROJECT_NUMBER = @COVESA_PROJECT_VERSION@ # The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) # base path where the generated documentation will be put. diff --git a/doc/images/genivilogo.png b/doc/images/genivilogo.png deleted file mode 100644 index d016ec8bd0db9d69aa1f9ef53c8172020b46b4ce..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9537 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 +See Github issue: # SEE ALSO diff --git a/examples/example1/CMakeLists.txt b/examples/example1/CMakeLists.txt index 0adcd6b5b..60644a136 100644 --- a/examples/example1/CMakeLists.txt +++ b/examples/example1/CMakeLists.txt @@ -3,14 +3,14 @@ # # Copyright (C) 2011-2015, BMW AG # -# This file is part of GENIVI Project DLT - Diagnostic Log and Trace. +# This file is part of COVESA Project DLT - Diagnostic Log and Trace. # # This Source Code Form is subject to the terms of the # Mozilla Public License (MPL), v. 2.0. # If a copy of the MPL was not distributed with this file, # You can obtain one at http://mozilla.org/MPL/2.0/. # -# For further information see http://www.genivi.org/. +# For further information see http://www.covesa.org/. ####### # diff --git a/examples/example1/example1.c b/examples/example1/example1.c index f6d59d1a7..c1340ef83 100644 --- a/examples/example1/example1.c +++ b/examples/example1/example1.c @@ -3,14 +3,14 @@ * * Copyright (C) 2011-2015, BMW AG * - * This file is part of GENIVI Project DLT - Diagnostic Log and Trace. + * This file is part of COVESA Project DLT - Diagnostic Log and Trace. * * This Source Code Form is subject to the terms of the * Mozilla Public License (MPL), v. 2.0. * If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. * - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ /*! diff --git a/examples/example2/CMakeLists.txt b/examples/example2/CMakeLists.txt index 0e6e0b944..66a4f2460 100644 --- a/examples/example2/CMakeLists.txt +++ b/examples/example2/CMakeLists.txt @@ -3,14 +3,14 @@ # # Copyright (C) 2011-2015, BMW AG # -# This file is part of GENIVI Project DLT - Diagnostic Log and Trace. +# This file is part of COVESA Project DLT - Diagnostic Log and Trace. # # This Source Code Form is subject to the terms of the # Mozilla Public License (MPL), v. 2.0. # If a copy of the MPL was not distributed with this file, # You can obtain one at http://mozilla.org/MPL/2.0/. # -# For further information see http://www.genivi.org/. +# For further information see http://www.covesa.org/. ####### # diff --git a/examples/example2/dlt_id.h b/examples/example2/dlt_id.h index a13f838e6..ad5f29e3e 100644 --- a/examples/example2/dlt_id.h +++ b/examples/example2/dlt_id.h @@ -3,14 +3,14 @@ * * Copyright (C) 2011-2015, BMW AG * - * This file is part of GENIVI Project DLT - Diagnostic Log and Trace. + * This file is part of COVESA Project DLT - Diagnostic Log and Trace. * * This Source Code Form is subject to the terms of the * Mozilla Public License (MPL), v. 2.0. * If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. * - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ /* generated file, do not edit */ diff --git a/examples/example2/example2.c b/examples/example2/example2.c index 2061bfb2b..6069b0d5c 100644 --- a/examples/example2/example2.c +++ b/examples/example2/example2.c @@ -3,14 +3,14 @@ * * Copyright (C) 2011-2015, BMW AG * - * This file is part of GENIVI Project DLT - Diagnostic Log and Trace. + * This file is part of COVESA Project DLT - Diagnostic Log and Trace. * * This Source Code Form is subject to the terms of the * Mozilla Public License (MPL), v. 2.0. * If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. * - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ /*! diff --git a/examples/example3/CMakeLists.txt b/examples/example3/CMakeLists.txt index 09dd0dc3f..45b746755 100644 --- a/examples/example3/CMakeLists.txt +++ b/examples/example3/CMakeLists.txt @@ -3,14 +3,14 @@ # # Copyright (C) 2011-2015, BMW AG # -# This file is part of GENIVI Project DLT - Diagnostic Log and Trace. +# This file is part of COVESA Project DLT - Diagnostic Log and Trace. # # This Source Code Form is subject to the terms of the # Mozilla Public License (MPL), v. 2.0. # If a copy of the MPL was not distributed with this file, # You can obtain one at http://mozilla.org/MPL/2.0/. # -# For further information see http://www.genivi.org/. +# For further information see http://www.covesa.org/. ####### # diff --git a/examples/example3/dlt_id.h b/examples/example3/dlt_id.h index ed5bcb275..3c672088f 100644 --- a/examples/example3/dlt_id.h +++ b/examples/example3/dlt_id.h @@ -3,14 +3,14 @@ * * Copyright (C) 2011-2015, BMW AG * - * This file is part of GENIVI Project DLT - Diagnostic Log and Trace. + * This file is part of COVESA Project DLT - Diagnostic Log and Trace. * * This Source Code Form is subject to the terms of the * Mozilla Public License (MPL), v. 2.0. * If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. * - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ /* generated file, do not edit */ diff --git a/examples/example3/example3.c b/examples/example3/example3.c index ab7490a57..f8b918ef6 100644 --- a/examples/example3/example3.c +++ b/examples/example3/example3.c @@ -3,14 +3,14 @@ * * Copyright (C) 2011-2015, BMW AG * - * This file is part of GENIVI Project DLT - Diagnostic Log and Trace. + * This file is part of COVESA Project DLT - Diagnostic Log and Trace. * * This Source Code Form is subject to the terms of the * Mozilla Public License (MPL), v. 2.0. * If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. * - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ /*! diff --git a/examples/example4/CMakeLists.txt b/examples/example4/CMakeLists.txt index e973cf3f1..53a4fade3 100644 --- a/examples/example4/CMakeLists.txt +++ b/examples/example4/CMakeLists.txt @@ -3,14 +3,14 @@ # # Copyright (C) 2011-2015, BMW AG # -# This file is part of GENIVI Project DLT - Diagnostic Log and Trace. +# This file is part of COVESA Project DLT - Diagnostic Log and Trace. # # This Source Code Form is subject to the terms of the # Mozilla Public License (MPL), v. 2.0. # If a copy of the MPL was not distributed with this file, # You can obtain one at http://mozilla.org/MPL/2.0/. # -# For further information see http://www.genivi.org/. +# For further information see http://www.covesa.org/. ####### # diff --git a/examples/example4/example4.c b/examples/example4/example4.c index 78748f21c..99c42679f 100644 --- a/examples/example4/example4.c +++ b/examples/example4/example4.c @@ -3,14 +3,14 @@ * * Copyright (C) 2011-2015, BMW AG * - * This file is part of GENIVI Project DLT - Diagnostic Log and Trace. + * This file is part of COVESA Project DLT - Diagnostic Log and Trace. * * This Source Code Form is subject to the terms of the * Mozilla Public License (MPL), v. 2.0. * If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. * - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ /*! diff --git a/include/CMakeLists.txt b/include/CMakeLists.txt index 284984efc..c8c507e8b 100644 --- a/include/CMakeLists.txt +++ b/include/CMakeLists.txt @@ -3,14 +3,14 @@ # # Copyright (C) 2011-2015, BMW AG # -# This file is part of GENIVI Project DLT - Diagnostic Log and Trace. +# This file is part of COVESA Project DLT - Diagnostic Log and Trace. # # This Source Code Form is subject to the terms of the # Mozilla Public License (MPL), v. 2.0. # If a copy of the MPL was not distributed with this file, # You can obtain one at http://mozilla.org/MPL/2.0/. # -# For further information see http://www.genivi.org/. +# For further information see http://www.covesa.org/. ####### diff --git a/include/dlt/CMakeLists.txt b/include/dlt/CMakeLists.txt index c2ee49a8d..476a08632 100644 --- a/include/dlt/CMakeLists.txt +++ b/include/dlt/CMakeLists.txt @@ -3,14 +3,14 @@ # # Copyright (C) 2011-2015, BMW AG # -# This file is part of GENIVI Project DLT - Diagnostic Log and Trace. +# This file is part of COVESA Project DLT - Diagnostic Log and Trace. # # This Source Code Form is subject to the terms of the # Mozilla Public License (MPL), v. 2.0. # If a copy of the MPL was not distributed with this file, # You can obtain one at http://mozilla.org/MPL/2.0/. # -# For further information see http://www.genivi.org/. +# For further information see http://www.covesa.org/. ####### if(WITH_DLT_DISABLE_MACRO) diff --git a/include/dlt/dlt.h b/include/dlt/dlt.h index 3fb4b75fd..669c3f375 100644 --- a/include/dlt/dlt.h +++ b/include/dlt/dlt.h @@ -3,14 +3,14 @@ * * Copyright (C) 2011-2015, BMW AG * - * This file is part of GENIVI Project DLT - Diagnostic Log and Trace. + * This file is part of COVESA Project DLT - Diagnostic Log and Trace. * * This Source Code Form is subject to the terms of the * Mozilla Public License (MPL), v. 2.0. * If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. * - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ /*! diff --git a/include/dlt/dlt_client.h b/include/dlt/dlt_client.h index f1802cbbd..d9cfe1318 100644 --- a/include/dlt/dlt_client.h +++ b/include/dlt/dlt_client.h @@ -3,14 +3,14 @@ * * Copyright (C) 2011-2015, BMW AG * - * This file is part of GENIVI Project DLT - Diagnostic Log and Trace. + * This file is part of COVESA Project DLT - Diagnostic Log and Trace. * * This Source Code Form is subject to the terms of the * Mozilla Public License (MPL), v. 2.0. * If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. * - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ /*! diff --git a/include/dlt/dlt_common.h b/include/dlt/dlt_common.h index 1757873ae..c37a9ce63 100644 --- a/include/dlt/dlt_common.h +++ b/include/dlt/dlt_common.h @@ -3,14 +3,14 @@ * * Copyright (C) 2011-2015, BMW AG * - * This file is part of GENIVI Project DLT - Diagnostic Log and Trace. + * This file is part of COVESA Project DLT - Diagnostic Log and Trace. * * This Source Code Form is subject to the terms of the * Mozilla Public License (MPL), v. 2.0. * If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. * - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ /*! diff --git a/include/dlt/dlt_common_api.h b/include/dlt/dlt_common_api.h index b81c4897b..809788bc7 100644 --- a/include/dlt/dlt_common_api.h +++ b/include/dlt/dlt_common_api.h @@ -3,14 +3,14 @@ * * Copyright (C) 2011-2015, BMW AG * - * This file is part of GENIVI Project DLT - Diagnostic Log and Trace. + * This file is part of COVESA Project DLT - Diagnostic Log and Trace. * * This Source Code Form is subject to the terms of the * Mozilla Public License (MPL), v. 2.0. * If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. * - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ /*! diff --git a/include/dlt/dlt_cpp_extension.hpp b/include/dlt/dlt_cpp_extension.hpp index cd82896df..572697fc3 100644 --- a/include/dlt/dlt_cpp_extension.hpp +++ b/include/dlt/dlt_cpp_extension.hpp @@ -3,14 +3,14 @@ * * Copyright (C) 2015 Intel Corporation * - * This file is part of GENIVI Project DLT - Diagnostic Log and Trace. + * This file is part of COVESA Project DLT - Diagnostic Log and Trace. * * This Source Code Form is subject to the terms of the * Mozilla Public License (MPL), v. 2.0. * If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. * - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ /*! diff --git a/include/dlt/dlt_filetransfer.h b/include/dlt/dlt_filetransfer.h index 5404d1a32..ce3ca1964 100644 --- a/include/dlt/dlt_filetransfer.h +++ b/include/dlt/dlt_filetransfer.h @@ -3,14 +3,14 @@ * * Copyright (C) 2011-2015, BMW AG * - * This file is part of GENIVI Project DLT - Diagnostic Log and Trace. + * This file is part of COVESA Project DLT - Diagnostic Log and Trace. * * This Source Code Form is subject to the terms of the * Mozilla Public License (MPL), v. 2.0. * If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. * - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ /*! diff --git a/include/dlt/dlt_multiple_files.h b/include/dlt/dlt_multiple_files.h index d5e13c756..d8d7ed075 100644 --- a/include/dlt/dlt_multiple_files.h +++ b/include/dlt/dlt_multiple_files.h @@ -3,14 +3,14 @@ * * Copyright (C) 2011-2015, BMW AG * - * This file is part of GENIVI Project DLT - Diagnostic Log and Trace. + * This file is part of COVESA Project DLT - Diagnostic Log and Trace. * * This Source Code Form is subject to the terms of the * Mozilla Public License (MPL), v. 2.0. * If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. * - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ /*! diff --git a/include/dlt/dlt_offline_trace.h b/include/dlt/dlt_offline_trace.h index 8e571eb65..68c7adc7b 100644 --- a/include/dlt/dlt_offline_trace.h +++ b/include/dlt/dlt_offline_trace.h @@ -3,14 +3,14 @@ * * Copyright (C) 2011-2015, BMW AG * - * This file is part of GENIVI Project DLT - Diagnostic Log and Trace. + * This file is part of COVESA Project DLT - Diagnostic Log and Trace. * * This Source Code Form is subject to the terms of the * Mozilla Public License (MPL), v. 2.0. * If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. * - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ /*! diff --git a/include/dlt/dlt_protocol.h b/include/dlt/dlt_protocol.h index 1e5796292..12058ab99 100644 --- a/include/dlt/dlt_protocol.h +++ b/include/dlt/dlt_protocol.h @@ -3,14 +3,14 @@ * * Copyright (C) 2011-2015, BMW AG * - * This file is part of GENIVI Project DLT - Diagnostic Log and Trace. + * This file is part of COVESA Project DLT - Diagnostic Log and Trace. * * This Source Code Form is subject to the terms of the * Mozilla Public License (MPL), v. 2.0. * If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. * - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ /*! diff --git a/include/dlt/dlt_shm.h b/include/dlt/dlt_shm.h index 0c6ee4229..7bd54a7c7 100644 --- a/include/dlt/dlt_shm.h +++ b/include/dlt/dlt_shm.h @@ -3,14 +3,14 @@ * * Copyright (C) 2011-2015, BMW AG * - * This file is part of GENIVI Project DLT - Diagnostic Log and Trace. + * This file is part of COVESA Project DLT - Diagnostic Log and Trace. * * This Source Code Form is subject to the terms of the * Mozilla Public License (MPL), v. 2.0. * If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. * - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ /*! diff --git a/include/dlt/dlt_types.h b/include/dlt/dlt_types.h index 6dd92d272..e36a32c6b 100644 --- a/include/dlt/dlt_types.h +++ b/include/dlt/dlt_types.h @@ -3,14 +3,14 @@ * * Copyright (C) 2011-2015, BMW AG * - * This file is part of GENIVI Project DLT - Diagnostic Log and Trace. + * This file is part of COVESA Project DLT - Diagnostic Log and Trace. * * This Source Code Form is subject to the terms of the * Mozilla Public License (MPL), v. 2.0. * If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. * - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ /*! diff --git a/include/dlt/dlt_user.h.in b/include/dlt/dlt_user.h.in index b377daca0..ae9c37cf7 100644 --- a/include/dlt/dlt_user.h.in +++ b/include/dlt/dlt_user.h.in @@ -3,14 +3,14 @@ * * Copyright (C) 2011-2015, BMW AG * - * This file is part of GENIVI Project DLT - Diagnostic Log and Trace. + * This file is part of COVESA Project DLT - Diagnostic Log and Trace. * * This Source Code Form is subject to the terms of the * Mozilla Public License (MPL), v. 2.0. * If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. * - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ /*! diff --git a/include/dlt/dlt_user_macros.h b/include/dlt/dlt_user_macros.h index 1538c4eb1..8a5ed2d84 100644 --- a/include/dlt/dlt_user_macros.h +++ b/include/dlt/dlt_user_macros.h @@ -3,14 +3,14 @@ * * Copyright (C) 2011-2015, BMW AG * - * This file is part of GENIVI Project DLT - Diagnostic Log and Trace. + * This file is part of COVESA Project DLT - Diagnostic Log and Trace. * * This Source Code Form is subject to the terms of the * Mozilla Public License (MPL), v. 2.0. * If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. * - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ /*! diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 625533672..1f000a1af 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -3,14 +3,14 @@ # # Copyright (C) 2011-2015, BMW AG # -# This file is part of GENIVI Project DLT - Diagnostic Log and Trace. +# This file is part of COVESA Project DLT - Diagnostic Log and Trace. # # This Source Code Form is subject to the terms of the # Mozilla Public License (MPL), v. 2.0. # If a copy of the MPL was not distributed with this file, # You can obtain one at http://mozilla.org/MPL/2.0/. # -# For further information see http://www.genivi.org/. +# For further information see http://www.covesa.org/. ####### add_subdirectory( lib ) diff --git a/src/adaptor/CMakeLists.txt b/src/adaptor/CMakeLists.txt index 578bbe8a7..790b2c142 100644 --- a/src/adaptor/CMakeLists.txt +++ b/src/adaptor/CMakeLists.txt @@ -3,14 +3,14 @@ # # Copyright (C) 2011-2015, BMW AG # -# This file is part of GENIVI Project DLT - Diagnostic Log and Trace. +# This file is part of COVESA Project DLT - Diagnostic Log and Trace. # # This Source Code Form is subject to the terms of the # Mozilla Public License (MPL), v. 2.0. # If a copy of the MPL was not distributed with this file, # You can obtain one at http://mozilla.org/MPL/2.0/. # -# For further information see http://www.genivi.org/. +# For further information see http://www.covesa.org/. ####### if (WITH_DLT_ADAPTOR_STDIN OR WITH_DLT_ADAPTOR) diff --git a/src/adaptor/dlt-adaptor-stdin.c b/src/adaptor/dlt-adaptor-stdin.c index 1df415c97..8c755d48c 100644 --- a/src/adaptor/dlt-adaptor-stdin.c +++ b/src/adaptor/dlt-adaptor-stdin.c @@ -3,14 +3,14 @@ * * Copyright (C) 2011-2015, BMW AG * - * This file is part of GENIVI Project DLT - Diagnostic Log and Trace. + * This file is part of COVESA Project DLT - Diagnostic Log and Trace. * * This Source Code Form is subject to the terms of the * Mozilla Public License (MPL), v. 2.0. * If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. * - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ /*! diff --git a/src/adaptor/dlt-adaptor-udp.c b/src/adaptor/dlt-adaptor-udp.c index b2033de8a..f3826d307 100644 --- a/src/adaptor/dlt-adaptor-udp.c +++ b/src/adaptor/dlt-adaptor-udp.c @@ -3,14 +3,14 @@ * * Copyright (C) 2011-2015, BMW AG * - * This file is part of GENIVI Project DLT - Diagnostic Log and Trace. + * This file is part of COVESA Project DLT - Diagnostic Log and Trace. * * This Source Code Form is subject to the terms of the * Mozilla Public License (MPL), v. 2.0. * If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. * - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ /*! diff --git a/src/android/dlt-logd-converter.cpp b/src/android/dlt-logd-converter.cpp index d623b9c2a..bdb648675 100644 --- a/src/android/dlt-logd-converter.cpp +++ b/src/android/dlt-logd-converter.cpp @@ -12,7 +12,7 @@ * this file, You can obtain one at http://mozilla.org/MPL/2.0/. * * \file: dlt-logd-convert - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. * @licence end@ */ #include diff --git a/src/console/CMakeLists.txt b/src/console/CMakeLists.txt index b609405d9..e5827a833 100644 --- a/src/console/CMakeLists.txt +++ b/src/console/CMakeLists.txt @@ -3,14 +3,14 @@ # # Copyright (C) 2011-2015, BMW AG # -# This file is part of GENIVI Project DLT - Diagnostic Log and Trace. +# This file is part of COVESA Project DLT - Diagnostic Log and Trace. # # This Source Code Form is subject to the terms of the # Mozilla Public License (MPL), v. 2.0. # If a copy of the MPL was not distributed with this file, # You can obtain one at http://mozilla.org/MPL/2.0/. # -# For further information see http://www.genivi.org/. +# For further information see http://www.covesa.org/. ####### set(dlt_control_common_SRCS ${CMAKE_CURRENT_SOURCE_DIR}/dlt-control-common.c) diff --git a/src/console/dlt-control-common.c b/src/console/dlt-control-common.c index 4b27eac68..e869cc386 100644 --- a/src/console/dlt-control-common.c +++ b/src/console/dlt-control-common.c @@ -3,7 +3,7 @@ * This code is developed by Advanced Driver Information Technology. * Copyright of Advanced Driver Information Technology, Bosch and DENSO. * - * This file is part of GENIVI Project Dlt - Diagnostic Log and Trace console apps. + * This file is part of COVESA Project Dlt - Diagnostic Log and Trace console apps. * * * \copyright @@ -16,7 +16,7 @@ * \author Frederic Berat ADIT 2015 * * \file dlt-control-common.c - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ /******************************************************************************* diff --git a/src/console/dlt-control-common.h b/src/console/dlt-control-common.h index 73a8e2159..afd2577c7 100644 --- a/src/console/dlt-control-common.h +++ b/src/console/dlt-control-common.h @@ -3,7 +3,7 @@ * This code is developed by Advanced Driver Information Technology. * Copyright of Advanced Driver Information Technology, Bosch and DENSO. * - * This file is part of GENIVI Project Dlt - Diagnostic Log and Trace console apps. + * This file is part of COVESA Project Dlt - Diagnostic Log and Trace console apps. * * * \copyright @@ -16,7 +16,7 @@ * \author Frederic Berat ADIT 2015 * * \file dlt-control-common.h - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ #ifndef _DLT_CONTROL_COMMON_H_ diff --git a/src/console/dlt-control.c b/src/console/dlt-control.c index 8fbf9f02d..c1bc25a3f 100644 --- a/src/console/dlt-control.c +++ b/src/console/dlt-control.c @@ -3,14 +3,14 @@ * * Copyright (C) 2011-2015, BMW AG * - * This file is part of GENIVI Project DLT - Diagnostic Log and Trace. + * This file is part of COVESA Project DLT - Diagnostic Log and Trace. * * This Source Code Form is subject to the terms of the * Mozilla Public License (MPL), v. 2.0. * If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. * - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ /*! diff --git a/src/console/dlt-convert.c b/src/console/dlt-convert.c index 8c72b60ba..41800db8e 100644 --- a/src/console/dlt-convert.c +++ b/src/console/dlt-convert.c @@ -3,14 +3,14 @@ * * Copyright (C) 2011-2015, BMW AG * - * This file is part of GENIVI Project DLT - Diagnostic Log and Trace. + * This file is part of COVESA Project DLT - Diagnostic Log and Trace. * * This Source Code Form is subject to the terms of the * Mozilla Public License (MPL), v. 2.0. * If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. * - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ /*! diff --git a/src/console/dlt-passive-node-ctrl.c b/src/console/dlt-passive-node-ctrl.c index 5e6b033e8..481dab34e 100644 --- a/src/console/dlt-passive-node-ctrl.c +++ b/src/console/dlt-passive-node-ctrl.c @@ -3,7 +3,7 @@ * This code is developed by Advanced Driver Information Technology. * Copyright of Advanced Driver Information Technology, Bosch and DENSO. * - * This file is part of GENIVI Project Dlt - Diagnostic Log and Trace console apps. + * This file is part of COVESA Project Dlt - Diagnostic Log and Trace console apps. * * * \copyright @@ -15,7 +15,7 @@ * \author Christoph Lipka ADIT 2015 * * \file dlt-passive-node-ctrl.c - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ /******************************************************************************* diff --git a/src/console/dlt-receive.c b/src/console/dlt-receive.c index dec4713ea..8b1cc3bd4 100644 --- a/src/console/dlt-receive.c +++ b/src/console/dlt-receive.c @@ -3,14 +3,14 @@ * * Copyright (C) 2011-2015, BMW AG * - * This file is part of GENIVI Project DLT - Diagnostic Log and Trace. + * This file is part of COVESA Project DLT - Diagnostic Log and Trace. * * This Source Code Form is subject to the terms of the * Mozilla Public License (MPL), v. 2.0. * If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. * - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ /*! diff --git a/src/console/dlt-sortbytimestamp.c b/src/console/dlt-sortbytimestamp.c index 82fd5d039..c7125345a 100644 --- a/src/console/dlt-sortbytimestamp.c +++ b/src/console/dlt-sortbytimestamp.c @@ -4,14 +4,14 @@ * Copyright (C) 2018, Codethink Ltd. * Copyright (C) 2011-2015, BMW AG * - * This file is part of GENIVI Project DLT - Diagnostic Log and Trace. + * This file is part of COVESA Project DLT - Diagnostic Log and Trace. * * This Source Code Form is subject to the terms of the * Mozilla Public License (MPL), v. 2.0. * If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. * - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ /*! diff --git a/src/console/logstorage/CMakeLists.txt b/src/console/logstorage/CMakeLists.txt index ce19f74db..d5fc29311 100644 --- a/src/console/logstorage/CMakeLists.txt +++ b/src/console/logstorage/CMakeLists.txt @@ -3,14 +3,14 @@ # # Copyright (C) 2015, ADIT GmbH # -# This file is part of GENIVI Project DLT - Diagnostic Log and Trace. +# This file is part of COVESA Project DLT - Diagnostic Log and Trace. # # This Source Code Form is subject to the terms of the # Mozilla Public License (MPL), v. 2.0. # If a copy of the MPL was not distributed with this file, # You can obtain one at http://mozilla.org/MPL/2.0/. # -# For further information see http://www.genivi.org/. +# For further information see http://www.covesa.org/. ####### add_definitions(-Werror) diff --git a/src/console/logstorage/dlt-logstorage-common.c b/src/console/logstorage/dlt-logstorage-common.c index 0c06a55e8..844b2dc07 100644 --- a/src/console/logstorage/dlt-logstorage-common.c +++ b/src/console/logstorage/dlt-logstorage-common.c @@ -3,7 +3,7 @@ * This code is developed by Advanced Driver Information Technology. * Copyright of Advanced Driver Information Technology, Bosch and DENSO. * - * This file is part of GENIVI Project Dlt - Diagnostic Log and Trace console apps. + * This file is part of COVESA Project Dlt - Diagnostic Log and Trace console apps. * * * \copyright @@ -17,7 +17,7 @@ * \author Frederic Berat ADIT 2015 * * \file dlt-logstorage-common.c - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ /******************************************************************************* diff --git a/src/console/logstorage/dlt-logstorage-common.h b/src/console/logstorage/dlt-logstorage-common.h index 93cb50b6a..0a695dfaa 100644 --- a/src/console/logstorage/dlt-logstorage-common.h +++ b/src/console/logstorage/dlt-logstorage-common.h @@ -3,7 +3,7 @@ * This code is developed by Advanced Driver Information Technology. * Copyright of Advanced Driver Information Technology, Bosch and DENSO. * - * This file is part of GENIVI Project Dlt - Diagnostic Log and Trace console apps. + * This file is part of COVESA Project Dlt - Diagnostic Log and Trace console apps. * * * \copyright @@ -17,7 +17,7 @@ * \author Frederic Berat ADIT 2015 * * \file dlt-logstorage-common.h - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ #ifndef _DLT_LOGSTORAGE_COMMON_H_ diff --git a/src/console/logstorage/dlt-logstorage-ctrl.c b/src/console/logstorage/dlt-logstorage-ctrl.c index 2629df6f6..44f05f15b 100644 --- a/src/console/logstorage/dlt-logstorage-ctrl.c +++ b/src/console/logstorage/dlt-logstorage-ctrl.c @@ -2,7 +2,7 @@ * Copyright (C) 2013 - 2015 Advanced Driver Information Technology. * This code is developed by Advanced Driver Information Technology. * Copyright of Advanced Driver Information Technology, Bosch and DENSO. * - * This file is part of GENIVI Project Dlt - Diagnostic Log and Trace console apps. + * This file is part of COVESA Project Dlt - Diagnostic Log and Trace console apps. * * * \copyright @@ -16,7 +16,7 @@ * \author Frederic Berat ADIT 2015 * * \file dlt-logstorage-ctrl.c - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ /******************************************************************************* ** ** diff --git a/src/console/logstorage/dlt-logstorage-ctrl.h b/src/console/logstorage/dlt-logstorage-ctrl.h index 5f69c9702..c7d376c62 100644 --- a/src/console/logstorage/dlt-logstorage-ctrl.h +++ b/src/console/logstorage/dlt-logstorage-ctrl.h @@ -3,7 +3,7 @@ * This code is developed by Advanced Driver Information Technology. * Copyright of Advanced Driver Information Technology, Bosch and DENSO. * - * This file is part of GENIVI Project Dlt - Diagnostic Log and Trace console apps. + * This file is part of COVESA Project Dlt - Diagnostic Log and Trace console apps. * * * \copyright @@ -16,7 +16,7 @@ * \author Christoph Lipka ADIT 2015 * * \file dlt-logstorage-ctrl.h - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ #ifndef _DLT_LOGSTORAGE_CONTROL_H_ diff --git a/src/console/logstorage/dlt-logstorage-list.c b/src/console/logstorage/dlt-logstorage-list.c index d6666b4d2..20e991166 100644 --- a/src/console/logstorage/dlt-logstorage-list.c +++ b/src/console/logstorage/dlt-logstorage-list.c @@ -3,7 +3,7 @@ * This code is developed by Advanced Driver Information Technology. * Copyright of Advanced Driver Information Technology, Bosch and DENSO. * - * This file is part of GENIVI Project Dlt - Diagnostic Log and Trace console apps. + * This file is part of COVESA Project Dlt - Diagnostic Log and Trace console apps. * * * \copyright @@ -17,7 +17,7 @@ * \author Frederic Berat ADIT 2015 * * \file dlt-logstorage-list.c - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ /******************************************************************************* diff --git a/src/console/logstorage/dlt-logstorage-list.h b/src/console/logstorage/dlt-logstorage-list.h index a1bf3a0ab..17bf88424 100644 --- a/src/console/logstorage/dlt-logstorage-list.h +++ b/src/console/logstorage/dlt-logstorage-list.h @@ -3,7 +3,7 @@ * This code is developed by Advanced Driver Information Technology. * Copyright of Advanced Driver Information Technology, Bosch and DENSO. * - * This file is part of GENIVI Project Dlt - Diagnostic Log and Trace console apps. + * This file is part of COVESA Project Dlt - Diagnostic Log and Trace console apps. * * * \copyright @@ -17,7 +17,7 @@ * \author Frederic Berat ADIT 2015 * * \file dlt-logstorage-list.h - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ #ifndef _DLT_LOGSTORAGE_LIST_H_ diff --git a/src/console/logstorage/dlt-logstorage-prop.h b/src/console/logstorage/dlt-logstorage-prop.h index 2467ca8ee..384878b7c 100644 --- a/src/console/logstorage/dlt-logstorage-prop.h +++ b/src/console/logstorage/dlt-logstorage-prop.h @@ -3,7 +3,7 @@ * This code is developed by Advanced Driver Information Technology. * Copyright of Advanced Driver Information Technology, Bosch and DENSO. * - * This file is part of GENIVI Project Dlt - Diagnostic Log and Trace console apps. + * This file is part of COVESA Project Dlt - Diagnostic Log and Trace console apps. * * \copyright * This Source Code Form is subject to the terms of the @@ -14,7 +14,7 @@ * \author Frederic Berat ADIT 2015 * * \file dlt-logstorage-udev.h - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ #ifndef _DLT_LOGSTORAGE_PROP_H_ diff --git a/src/console/logstorage/dlt-logstorage-udev.c b/src/console/logstorage/dlt-logstorage-udev.c index b23ea7295..e35474e19 100644 --- a/src/console/logstorage/dlt-logstorage-udev.c +++ b/src/console/logstorage/dlt-logstorage-udev.c @@ -3,7 +3,7 @@ * This code is developed by Advanced Driver Information Technology. * Copyright of Advanced Driver Information Technology, Bosch and DENSO. * - * This file is part of GENIVI Project Dlt - Diagnostic Log and Trace console apps. + * This file is part of COVESA Project Dlt - Diagnostic Log and Trace console apps. * * * \copyright @@ -16,7 +16,7 @@ * \author Frederic Berat ADIT 2015 * * \file dlt-logstorage-udev.c - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ /******************************************************************************* diff --git a/src/console/logstorage/dlt-logstorage-udev.h b/src/console/logstorage/dlt-logstorage-udev.h index 804bf3002..9d2d70298 100644 --- a/src/console/logstorage/dlt-logstorage-udev.h +++ b/src/console/logstorage/dlt-logstorage-udev.h @@ -3,7 +3,7 @@ * This code is developed by Advanced Driver Information Technology. * Copyright of Advanced Driver Information Technology, Bosch and DENSO. * - * This file is part of GENIVI Project Dlt - Diagnostic Log and Trace console apps. + * This file is part of COVESA Project Dlt - Diagnostic Log and Trace console apps. * * \copyright * This Source Code Form is subject to the terms of the @@ -14,7 +14,7 @@ * \author Frederic Berat ADIT 2015 * * \file dlt-logstorage-udev.h - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ #ifndef _DLT_LOGSTORAGE_UDEV_H_ diff --git a/src/core_dump_handler/50-coredump.conf.cmake b/src/core_dump_handler/50-coredump.conf.cmake index 5b14e1d84..04ae0d783 100644 --- a/src/core_dump_handler/50-coredump.conf.cmake +++ b/src/core_dump_handler/50-coredump.conf.cmake @@ -3,14 +3,14 @@ # # Copyright (C) 2011-2015, BMW AG # -# This file is part of GENIVI Project DLT - Diagnostic Log and Trace. +# This file is part of COVESA Project DLT - Diagnostic Log and Trace. # # This Source Code Form is subject to the terms of the # Mozilla Public License (MPL), v. 2.0. # If a copy of the MPL was not distributed with this file, # You can obtain one at http://mozilla.org/MPL/2.0/. # -# For further information see http://www.genivi.org/. +# For further information see http://www.covesa.org/. ####### kernel.core_pattern=|@CMAKE_INSTALL_PREFIX@/bin/dlt-cdh %t %p %s %e diff --git a/src/core_dump_handler/CMakeLists.txt b/src/core_dump_handler/CMakeLists.txt index d77ba4c3e..e820fb932 100644 --- a/src/core_dump_handler/CMakeLists.txt +++ b/src/core_dump_handler/CMakeLists.txt @@ -3,14 +3,14 @@ # # Copyright (C) 2011-2015, BMW AG # -# This file is part of GENIVI Project DLT - Diagnostic Log and Trace. +# This file is part of COVESA Project DLT - Diagnostic Log and Trace. # # This Source Code Form is subject to the terms of the # Mozilla Public License (MPL), v. 2.0. # If a copy of the MPL was not distributed with this file, # You can obtain one at http://mozilla.org/MPL/2.0/. # -# For further information see http://www.genivi.org/. +# For further information see http://www.covesa.org/. ####### if(WITH_DLT_COREDUMPHANDLER) diff --git a/src/core_dump_handler/dlt_cdh.c b/src/core_dump_handler/dlt_cdh.c index b2bf89188..3816ce518 100644 --- a/src/core_dump_handler/dlt_cdh.c +++ b/src/core_dump_handler/dlt_cdh.c @@ -3,14 +3,14 @@ * * Copyright (C) 2011-2015, BMW AG * - * This file is part of GENIVI Project DLT - Diagnostic Log and Trace. + * This file is part of COVESA Project DLT - Diagnostic Log and Trace. * * This Source Code Form is subject to the terms of the * Mozilla Public License (MPL), v. 2.0. * If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. * - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ /*! diff --git a/src/core_dump_handler/dlt_cdh.h b/src/core_dump_handler/dlt_cdh.h index cf2904cc5..d572ecf3f 100644 --- a/src/core_dump_handler/dlt_cdh.h +++ b/src/core_dump_handler/dlt_cdh.h @@ -3,14 +3,14 @@ * * Copyright (C) 2011-2015, BMW AG * - * This file is part of GENIVI Project DLT - Diagnostic Log and Trace. + * This file is part of COVESA Project DLT - Diagnostic Log and Trace. * * This Source Code Form is subject to the terms of the * Mozilla Public License (MPL), v. 2.0. * If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. * - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ /*! diff --git a/src/core_dump_handler/dlt_cdh_context.c b/src/core_dump_handler/dlt_cdh_context.c index 1f7fa981c..041f84c8a 100644 --- a/src/core_dump_handler/dlt_cdh_context.c +++ b/src/core_dump_handler/dlt_cdh_context.c @@ -3,14 +3,14 @@ * * Copyright (C) 2011-2015, BMW AG * - * This file is part of GENIVI Project DLT - Diagnostic Log and Trace. + * This file is part of COVESA Project DLT - Diagnostic Log and Trace. * * This Source Code Form is subject to the terms of the * Mozilla Public License (MPL), v. 2.0. * If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. * - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ /*! diff --git a/src/core_dump_handler/dlt_cdh_coredump.c b/src/core_dump_handler/dlt_cdh_coredump.c index 3aabe2d06..4a1d767bd 100644 --- a/src/core_dump_handler/dlt_cdh_coredump.c +++ b/src/core_dump_handler/dlt_cdh_coredump.c @@ -3,14 +3,14 @@ * * Copyright (C) 2011-2015, BMW AG * - * This file is part of GENIVI Project DLT - Diagnostic Log and Trace. + * This file is part of COVESA Project DLT - Diagnostic Log and Trace. * * This Source Code Form is subject to the terms of the * Mozilla Public License (MPL), v. 2.0. * If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. * - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ /*! diff --git a/src/core_dump_handler/dlt_cdh_cpuinfo.h b/src/core_dump_handler/dlt_cdh_cpuinfo.h index eb5e04c06..58eebfc92 100644 --- a/src/core_dump_handler/dlt_cdh_cpuinfo.h +++ b/src/core_dump_handler/dlt_cdh_cpuinfo.h @@ -3,14 +3,14 @@ * * Copyright (C) 2011-2015, BMW AG * - * This file is part of GENIVI Project DLT - Diagnostic Log and Trace. + * This file is part of COVESA Project DLT - Diagnostic Log and Trace. * * This Source Code Form is subject to the terms of the * Mozilla Public License (MPL), v. 2.0. * If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. * - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ /*! diff --git a/src/core_dump_handler/dlt_cdh_crashid.c b/src/core_dump_handler/dlt_cdh_crashid.c index c2d81e435..bca44e0eb 100644 --- a/src/core_dump_handler/dlt_cdh_crashid.c +++ b/src/core_dump_handler/dlt_cdh_crashid.c @@ -3,14 +3,14 @@ * * Copyright (C) 2011-2015, BMW AG * - * This file is part of GENIVI Project DLT - Diagnostic Log and Trace. + * This file is part of COVESA Project DLT - Diagnostic Log and Trace. * * This Source Code Form is subject to the terms of the * Mozilla Public License (MPL), v. 2.0. * If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. * - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ /*! diff --git a/src/core_dump_handler/dlt_cdh_definitions.h b/src/core_dump_handler/dlt_cdh_definitions.h index 92f8bb6e4..9f1f0cdda 100644 --- a/src/core_dump_handler/dlt_cdh_definitions.h +++ b/src/core_dump_handler/dlt_cdh_definitions.h @@ -3,14 +3,14 @@ * * Copyright (C) 2011-2015, BMW AG * - * This file is part of GENIVI Project DLT - Diagnostic Log and Trace. + * This file is part of COVESA Project DLT - Diagnostic Log and Trace. * * This Source Code Form is subject to the terms of the * Mozilla Public License (MPL), v. 2.0. * If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. * - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ /*! diff --git a/src/core_dump_handler/dlt_cdh_streamer.c b/src/core_dump_handler/dlt_cdh_streamer.c index 363f70e91..fa87e4f60 100644 --- a/src/core_dump_handler/dlt_cdh_streamer.c +++ b/src/core_dump_handler/dlt_cdh_streamer.c @@ -3,14 +3,14 @@ * * Copyright (C) 2011-2015, BMW AG * - * This file is part of GENIVI Project DLT - Diagnostic Log and Trace. + * This file is part of COVESA Project DLT - Diagnostic Log and Trace. * * This Source Code Form is subject to the terms of the * Mozilla Public License (MPL), v. 2.0. * If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. * - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ /*! diff --git a/src/core_dump_handler/dlt_cdh_streamer.h b/src/core_dump_handler/dlt_cdh_streamer.h index 942024cbb..931379f19 100644 --- a/src/core_dump_handler/dlt_cdh_streamer.h +++ b/src/core_dump_handler/dlt_cdh_streamer.h @@ -3,14 +3,14 @@ * * Copyright (C) 2011-2015, BMW AG * - * This file is part of GENIVI Project DLT - Diagnostic Log and Trace. + * This file is part of COVESA Project DLT - Diagnostic Log and Trace. * * This Source Code Form is subject to the terms of the * Mozilla Public License (MPL), v. 2.0. * If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. * - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ /*! diff --git a/src/core_dump_handler/i686/dlt_cdh_cpuinfo.c b/src/core_dump_handler/i686/dlt_cdh_cpuinfo.c index 19eb3e098..000e26ad6 100644 --- a/src/core_dump_handler/i686/dlt_cdh_cpuinfo.c +++ b/src/core_dump_handler/i686/dlt_cdh_cpuinfo.c @@ -3,14 +3,14 @@ * * Copyright (C) 2011-2015, BMW AG * - * This file is part of GENIVI Project DLT - Diagnostic Log and Trace. + * This file is part of COVESA Project DLT - Diagnostic Log and Trace. * * This Source Code Form is subject to the terms of the * Mozilla Public License (MPL), v. 2.0. * If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. * - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ /*! diff --git a/src/core_dump_handler/x86_64/dlt_cdh_cpuinfo.c b/src/core_dump_handler/x86_64/dlt_cdh_cpuinfo.c index 8fb20bb59..a06c6b9ac 100644 --- a/src/core_dump_handler/x86_64/dlt_cdh_cpuinfo.c +++ b/src/core_dump_handler/x86_64/dlt_cdh_cpuinfo.c @@ -3,14 +3,14 @@ * * Copyright (C) 2011-2015, BMW AG * - * This file is part of GENIVI Project DLT - Diagnostic Log and Trace. + * This file is part of COVESA Project DLT - Diagnostic Log and Trace. * * This Source Code Form is subject to the terms of the * Mozilla Public License (MPL), v. 2.0. * If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. * - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ /*! diff --git a/src/daemon/CMakeLists.txt b/src/daemon/CMakeLists.txt index b8b480a2e..4ca2a49d2 100644 --- a/src/daemon/CMakeLists.txt +++ b/src/daemon/CMakeLists.txt @@ -3,14 +3,14 @@ # # Copyright (C) 2011-2015, BMW AG # -# This file is part of GENIVI Project DLT - Diagnostic Log and Trace. +# This file is part of COVESA Project DLT - Diagnostic Log and Trace. # # This Source Code Form is subject to the terms of the # Mozilla Public License (MPL), v. 2.0. # If a copy of the MPL was not distributed with this file, # You can obtain one at http://mozilla.org/MPL/2.0/. # -# For further information see http://www.genivi.org/. +# For further information see http://www.covesa.org/. ####### diff --git a/src/daemon/dlt-daemon.c b/src/daemon/dlt-daemon.c index 5c3c9ef32..4fa4d3f7c 100644 --- a/src/daemon/dlt-daemon.c +++ b/src/daemon/dlt-daemon.c @@ -3,14 +3,14 @@ * * Copyright (C) 2011-2015, BMW AG * - * This file is part of GENIVI Project DLT - Diagnostic Log and Trace. + * This file is part of COVESA Project DLT - Diagnostic Log and Trace. * * This Source Code Form is subject to the terms of the * Mozilla Public License (MPL), v. 2.0. * If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. * - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ /*! diff --git a/src/daemon/dlt-daemon.h b/src/daemon/dlt-daemon.h index 63de44b49..d3bb9785e 100644 --- a/src/daemon/dlt-daemon.h +++ b/src/daemon/dlt-daemon.h @@ -3,14 +3,14 @@ * * Copyright (C) 2011-2015, BMW AG * - * This file is part of GENIVI Project DLT - Diagnostic Log and Trace. + * This file is part of COVESA Project DLT - Diagnostic Log and Trace. * * This Source Code Form is subject to the terms of the * Mozilla Public License (MPL), v. 2.0. * If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. * - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ /*! diff --git a/src/daemon/dlt-daemon_cfg.h b/src/daemon/dlt-daemon_cfg.h index d9a0610aa..5da2149b2 100644 --- a/src/daemon/dlt-daemon_cfg.h +++ b/src/daemon/dlt-daemon_cfg.h @@ -3,14 +3,14 @@ * * Copyright (C) 2011-2015, BMW AG * - * This file is part of GENIVI Project DLT - Diagnostic Log and Trace. + * This file is part of COVESA Project DLT - Diagnostic Log and Trace. * * This Source Code Form is subject to the terms of the * Mozilla Public License (MPL), v. 2.0. * If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. * - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ /*! diff --git a/src/daemon/dlt_daemon_client.c b/src/daemon/dlt_daemon_client.c index 5d849b026..19292b97d 100644 --- a/src/daemon/dlt_daemon_client.c +++ b/src/daemon/dlt_daemon_client.c @@ -3,14 +3,14 @@ * * Copyright (C) 2011-2015, BMW AG * - * This file is part of GENIVI Project DLT - Diagnostic Log and Trace. + * This file is part of COVESA Project DLT - Diagnostic Log and Trace. * * This Source Code Form is subject to the terms of the * Mozilla Public License (MPL), v. 2.0. * If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. * - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ /*! diff --git a/src/daemon/dlt_daemon_client.h b/src/daemon/dlt_daemon_client.h index 75e12112c..6ec55de64 100644 --- a/src/daemon/dlt_daemon_client.h +++ b/src/daemon/dlt_daemon_client.h @@ -3,14 +3,14 @@ * * Copyright (C) 2011-2015, BMW AG * - * This file is part of GENIVI Project DLT - Diagnostic Log and Trace. + * This file is part of COVESA Project DLT - Diagnostic Log and Trace. * * This Source Code Form is subject to the terms of the * Mozilla Public License (MPL), v. 2.0. * If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. * - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ /*! diff --git a/src/daemon/dlt_daemon_common.c b/src/daemon/dlt_daemon_common.c index a77c7ced7..4b5120c02 100644 --- a/src/daemon/dlt_daemon_common.c +++ b/src/daemon/dlt_daemon_common.c @@ -3,14 +3,14 @@ * * Copyright (C) 2011-2015, BMW AG * - * This file is part of GENIVI Project DLT - Diagnostic Log and Trace. + * This file is part of COVESA Project DLT - Diagnostic Log and Trace. * * This Source Code Form is subject to the terms of the * Mozilla Public License (MPL), v. 2.0. * If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. * - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ /*! diff --git a/src/daemon/dlt_daemon_common.h b/src/daemon/dlt_daemon_common.h index 805c5b453..85eb5faec 100644 --- a/src/daemon/dlt_daemon_common.h +++ b/src/daemon/dlt_daemon_common.h @@ -3,14 +3,14 @@ * * Copyright (C) 2011-2015, BMW AG * - * This file is part of GENIVI Project DLT - Diagnostic Log and Trace. + * This file is part of COVESA Project DLT - Diagnostic Log and Trace. * * This Source Code Form is subject to the terms of the * Mozilla Public License (MPL), v. 2.0. * If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. * - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ /*! diff --git a/src/daemon/dlt_daemon_common_cfg.h b/src/daemon/dlt_daemon_common_cfg.h index 77c6ca66c..9122f2080 100644 --- a/src/daemon/dlt_daemon_common_cfg.h +++ b/src/daemon/dlt_daemon_common_cfg.h @@ -3,14 +3,14 @@ * * Copyright (C) 2011-2015, BMW AG * - * This file is part of GENIVI Project DLT - Diagnostic Log and Trace. + * This file is part of COVESA Project DLT - Diagnostic Log and Trace. * * This Source Code Form is subject to the terms of the * Mozilla Public License (MPL), v. 2.0. * If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. * - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ /*! diff --git a/src/daemon/dlt_daemon_connection.c b/src/daemon/dlt_daemon_connection.c index 1658e269a..3b7e4fe2e 100644 --- a/src/daemon/dlt_daemon_connection.c +++ b/src/daemon/dlt_daemon_connection.c @@ -5,14 +5,14 @@ * This code is developed by Advanced Driver Information Technology. * Copyright of Advanced Driver Information Technology, Bosch and DENSO. * - * This file is part of GENIVI Project DLT - Diagnostic Log and Trace. + * This file is part of COVESA Project DLT - Diagnostic Log and Trace. * * This Source Code Form is subject to the terms of the * Mozilla Public License (MPL), v. 2.0. * If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. * - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ /*! diff --git a/src/daemon/dlt_daemon_connection.h b/src/daemon/dlt_daemon_connection.h index 316784fbc..3e1c58db6 100644 --- a/src/daemon/dlt_daemon_connection.h +++ b/src/daemon/dlt_daemon_connection.h @@ -5,14 +5,14 @@ * This code is developed by Advanced Driver Information Technology. * Copyright of Advanced Driver Information Technology, Bosch and DENSO. * - * This file is part of GENIVI Project DLT - Diagnostic Log and Trace. + * This file is part of COVESA Project DLT - Diagnostic Log and Trace. * * This Source Code Form is subject to the terms of the * Mozilla Public License (MPL), v. 2.0. * If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. * - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ /*! diff --git a/src/daemon/dlt_daemon_connection_types.h b/src/daemon/dlt_daemon_connection_types.h index 4bf0db4d7..470e4abf0 100644 --- a/src/daemon/dlt_daemon_connection_types.h +++ b/src/daemon/dlt_daemon_connection_types.h @@ -5,14 +5,14 @@ * This code is developed by Advanced Driver Information Technology. * Copyright of Advanced Driver Information Technology, Bosch and DENSO. * - * This file is part of GENIVI Project DLT - Diagnostic Log and Trace. + * This file is part of COVESA Project DLT - Diagnostic Log and Trace. * * This Source Code Form is subject to the terms of the * Mozilla Public License (MPL), v. 2.0. * If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. * - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ /*! diff --git a/src/daemon/dlt_daemon_event_handler.c b/src/daemon/dlt_daemon_event_handler.c index db5767a5b..74961a61a 100644 --- a/src/daemon/dlt_daemon_event_handler.c +++ b/src/daemon/dlt_daemon_event_handler.c @@ -5,14 +5,14 @@ * This code is developed by Advanced Driver Information Technology. * Copyright of Advanced Driver Information Technology, Bosch and DENSO. * - * This file is part of GENIVI Project DLT - Diagnostic Log and Trace. + * This file is part of COVESA Project DLT - Diagnostic Log and Trace. * * This Source Code Form is subject to the terms of the * Mozilla Public License (MPL), v. 2.0. * If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. * - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ /*! diff --git a/src/daemon/dlt_daemon_event_handler.h b/src/daemon/dlt_daemon_event_handler.h index 62ef89bed..4c37032e9 100644 --- a/src/daemon/dlt_daemon_event_handler.h +++ b/src/daemon/dlt_daemon_event_handler.h @@ -5,14 +5,14 @@ * This code is developed by Advanced Driver Information Technology. * Copyright of Advanced Driver Information Technology, Bosch and DENSO. * - * This file is part of GENIVI Project DLT - Diagnostic Log and Trace. + * This file is part of COVESA Project DLT - Diagnostic Log and Trace. * * This Source Code Form is subject to the terms of the * Mozilla Public License (MPL), v. 2.0. * If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. * - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ /*! diff --git a/src/daemon/dlt_daemon_event_handler_types.h b/src/daemon/dlt_daemon_event_handler_types.h index a879d4d66..92a6ff0c5 100644 --- a/src/daemon/dlt_daemon_event_handler_types.h +++ b/src/daemon/dlt_daemon_event_handler_types.h @@ -5,14 +5,14 @@ * This code is developed by Advanced Driver Information Technology. * Copyright of Advanced Driver Information Technology, Bosch and DENSO. * - * This file is part of GENIVI Project DLT - Diagnostic Log and Trace. + * This file is part of COVESA Project DLT - Diagnostic Log and Trace. * * This Source Code Form is subject to the terms of the * Mozilla Public License (MPL), v. 2.0. * If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. * - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ /*! diff --git a/src/daemon/dlt_daemon_offline_logstorage.c b/src/daemon/dlt_daemon_offline_logstorage.c index c796d06e1..23750154e 100644 --- a/src/daemon/dlt_daemon_offline_logstorage.c +++ b/src/daemon/dlt_daemon_offline_logstorage.c @@ -15,7 +15,7 @@ * \author Christoph Lipka ADIT 2015 * * \file: dlt_daemon_offline_logstorage.c - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ #include diff --git a/src/daemon/dlt_daemon_offline_logstorage.h b/src/daemon/dlt_daemon_offline_logstorage.h index cd7803dcf..3ff4116e3 100644 --- a/src/daemon/dlt_daemon_offline_logstorage.h +++ b/src/daemon/dlt_daemon_offline_logstorage.h @@ -15,7 +15,7 @@ * \author Christoph Lipka ADIT 2015 * * \file: dlt_daemon_offline_logstorage.h - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ /******************************************************************************* diff --git a/src/daemon/dlt_daemon_offline_logstorage_internal.h b/src/daemon/dlt_daemon_offline_logstorage_internal.h index 0e43886bd..375525a68 100644 --- a/src/daemon/dlt_daemon_offline_logstorage_internal.h +++ b/src/daemon/dlt_daemon_offline_logstorage_internal.h @@ -14,7 +14,7 @@ * \author Aditya Paluri ADIT 2018 * * \file: dlt_daemon_offline_logstorage_internal.h - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ /******************************************************************************* diff --git a/src/daemon/dlt_daemon_serial.c b/src/daemon/dlt_daemon_serial.c index 272a3dc9a..3033dca4f 100644 --- a/src/daemon/dlt_daemon_serial.c +++ b/src/daemon/dlt_daemon_serial.c @@ -3,14 +3,14 @@ * * Copyright (C) 2011-2015, BMW AG * - * This file is part of GENIVI Project DLT - Diagnostic Log and Trace. + * This file is part of COVESA Project DLT - Diagnostic Log and Trace. * * This Source Code Form is subject to the terms of the * Mozilla Public License (MPL), v. 2.0. * If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. * - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ /*! diff --git a/src/daemon/dlt_daemon_serial.h b/src/daemon/dlt_daemon_serial.h index 08fdfacaf..fa611e48a 100644 --- a/src/daemon/dlt_daemon_serial.h +++ b/src/daemon/dlt_daemon_serial.h @@ -3,14 +3,14 @@ * * Copyright (C) 2011-2015, BMW AG * - * This file is part of GENIVI Project DLT - Diagnostic Log and Trace. + * This file is part of COVESA Project DLT - Diagnostic Log and Trace. * * This Source Code Form is subject to the terms of the * Mozilla Public License (MPL), v. 2.0. * If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. * - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ /*! diff --git a/src/daemon/dlt_daemon_socket.c b/src/daemon/dlt_daemon_socket.c index 803b821eb..a4daddf82 100644 --- a/src/daemon/dlt_daemon_socket.c +++ b/src/daemon/dlt_daemon_socket.c @@ -3,14 +3,14 @@ * * Copyright (C) 2011-2015, BMW AG * - * This file is part of GENIVI Project DLT - Diagnostic Log and Trace. + * This file is part of COVESA Project DLT - Diagnostic Log and Trace. * * This Source Code Form is subject to the terms of the * Mozilla Public License (MPL), v. 2.0. * If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. * - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ /*! diff --git a/src/daemon/dlt_daemon_socket.h b/src/daemon/dlt_daemon_socket.h index c2cced6a2..e8661302a 100644 --- a/src/daemon/dlt_daemon_socket.h +++ b/src/daemon/dlt_daemon_socket.h @@ -3,14 +3,14 @@ * * Copyright (C) 2011-2015, BMW AG * - * This file is part of GENIVI Project DLT - Diagnostic Log and Trace. + * This file is part of COVESA Project DLT - Diagnostic Log and Trace. * * This Source Code Form is subject to the terms of the * Mozilla Public License (MPL), v. 2.0. * If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. * - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ /*! diff --git a/src/daemon/dlt_daemon_unix_socket.c b/src/daemon/dlt_daemon_unix_socket.c index 4b9f4725c..06844be2f 100644 --- a/src/daemon/dlt_daemon_unix_socket.c +++ b/src/daemon/dlt_daemon_unix_socket.c @@ -4,14 +4,14 @@ * Copyright (C) 2015, Advanced Driver Information Technology * Copyright of Advanced Driver Information Technology, Bosch and Denso * - * This file is part of GENIVI Project DLT - Diagnostic Log and Trace. + * This file is part of COVESA Project DLT - Diagnostic Log and Trace. * * This Source Code Form is subject to the terms of the * Mozilla Public License (MPL), v. 2.0. * If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. * - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ /*! diff --git a/src/daemon/dlt_daemon_unix_socket.h b/src/daemon/dlt_daemon_unix_socket.h index b8b944d30..b6e33ac4d 100644 --- a/src/daemon/dlt_daemon_unix_socket.h +++ b/src/daemon/dlt_daemon_unix_socket.h @@ -4,14 +4,14 @@ * Copyright (C) 2015, Advanced Driver Information Technology * Copyright of Advanced Driver Information Technology, Bosch and Denso. * - * This file is part of GENIVI Project DLT - Diagnostic Log and Trace. + * This file is part of COVESA Project DLT - Diagnostic Log and Trace. * * This Source Code Form is subject to the terms of the * Mozilla Public License (MPL), v. 2.0. * If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. * - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ /*! diff --git a/src/daemon/udp_connection/dlt_daemon_udp_common_socket.h b/src/daemon/udp_connection/dlt_daemon_udp_common_socket.h index d780851bc..c3f231bb1 100644 --- a/src/daemon/udp_connection/dlt_daemon_udp_common_socket.h +++ b/src/daemon/udp_connection/dlt_daemon_udp_common_socket.h @@ -2,11 +2,11 @@ * Copyright (c) 2019 LG Electronics Inc. * SPDX-License-Identifier: MPL-2.0 * - * This file is part of GENIVI Project DLT - Diagnostic Log and Trace. + * This file is part of COVESA Project DLT - Diagnostic Log and Trace. * If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. * - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ /*! diff --git a/src/daemon/udp_connection/dlt_daemon_udp_socket.c b/src/daemon/udp_connection/dlt_daemon_udp_socket.c index 2ef629ad5..4c40cda8b 100644 --- a/src/daemon/udp_connection/dlt_daemon_udp_socket.c +++ b/src/daemon/udp_connection/dlt_daemon_udp_socket.c @@ -2,11 +2,11 @@ * Copyright (c) 2019 LG Electronics Inc. * SPDX-License-Identifier: MPL-2.0 * - * This file is part of GENIVI Project DLT - Diagnostic Log and Trace. + * This file is part of COVESA Project DLT - Diagnostic Log and Trace. * If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. * - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ /*! diff --git a/src/daemon/udp_connection/dlt_daemon_udp_socket.h b/src/daemon/udp_connection/dlt_daemon_udp_socket.h index caeaacd85..6b5c82a2b 100644 --- a/src/daemon/udp_connection/dlt_daemon_udp_socket.h +++ b/src/daemon/udp_connection/dlt_daemon_udp_socket.h @@ -2,11 +2,11 @@ * Copyright (c) 2019 LG Electronics Inc. * SPDX-License-Identifier: MPL-2.0 * - * This file is part of GENIVI Project DLT - Diagnostic Log and Trace. + * This file is part of COVESA Project DLT - Diagnostic Log and Trace. * If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. * - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ /*! diff --git a/src/dbus/CMakeLists.txt b/src/dbus/CMakeLists.txt index 7dde278cf..d99f38eba 100644 --- a/src/dbus/CMakeLists.txt +++ b/src/dbus/CMakeLists.txt @@ -3,14 +3,14 @@ # # Copyright (C) 2011-2015, BMW AG # -# This file is part of GENIVI Project DLT - Diagnostic Log and Trace. +# This file is part of COVESA Project DLT - Diagnostic Log and Trace. # # This Source Code Form is subject to the terms of the # Mozilla Public License (MPL), v. 2.0. # If a copy of the MPL was not distributed with this file, # You can obtain one at http://mozilla.org/MPL/2.0/. # -# For further information see http://www.genivi.org/. +# For further information see http://www.covesa.org/. ####### include_directories( diff --git a/src/dbus/dlt-dbus-options.c b/src/dbus/dlt-dbus-options.c index 88e13fa25..b2d8a7e23 100644 --- a/src/dbus/dlt-dbus-options.c +++ b/src/dbus/dlt-dbus-options.c @@ -3,14 +3,14 @@ * * Copyright (C) 2011-2015, BMW AG * - * This file is part of GENIVI Project DLT - Diagnostic Log and Trace. + * This file is part of COVESA Project DLT - Diagnostic Log and Trace. * * This Source Code Form is subject to the terms of the * Mozilla Public License (MPL), v. 2.0. * If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. * - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ /*! diff --git a/src/dbus/dlt-dbus.c b/src/dbus/dlt-dbus.c index e55e740dc..b7cb8cade 100644 --- a/src/dbus/dlt-dbus.c +++ b/src/dbus/dlt-dbus.c @@ -3,14 +3,14 @@ * * Copyright (C) 2011-2015, BMW AG * - * This file is part of GENIVI Project DLT - Diagnostic Log and Trace. + * This file is part of COVESA Project DLT - Diagnostic Log and Trace. * * This Source Code Form is subject to the terms of the * Mozilla Public License (MPL), v. 2.0. * If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. * - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ /*! diff --git a/src/dbus/dlt-dbus.h b/src/dbus/dlt-dbus.h index 4609a808a..13b25e2f2 100644 --- a/src/dbus/dlt-dbus.h +++ b/src/dbus/dlt-dbus.h @@ -3,14 +3,14 @@ * * Copyright (C) 2011-2015, BMW AG * - * This file is part of GENIVI Project DLT - Diagnostic Log and Trace. + * This file is part of COVESA Project DLT - Diagnostic Log and Trace. * * This Source Code Form is subject to the terms of the * Mozilla Public License (MPL), v. 2.0. * If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. * - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ /*! diff --git a/src/dlt-qnx-system/CMakeLists.txt b/src/dlt-qnx-system/CMakeLists.txt index 9a9db465d..5a82410e0 100644 --- a/src/dlt-qnx-system/CMakeLists.txt +++ b/src/dlt-qnx-system/CMakeLists.txt @@ -4,14 +4,14 @@ # # Copyright (C) 2018 Advanced Driver Information Technology. # -# This file is part of GENIVI Project DLT - Diagnostic Log and Trace. +# This file is part of COVESA Project DLT - Diagnostic Log and Trace. # # This Source Code Form is subject to the terms of the # Mozilla Public License (MPL), v. 2.0. # If a copy of the MPL was not distributed with this file, # You can obtain one at http://mozilla.org/MPL/2.0/. # -# For further information see http://www.genivi.org/. +# For further information see http://www.covesa.org/. # @licence end@ ####### diff --git a/src/dlt-qnx-system/dlt-qnx-slogger2-adapter.cpp b/src/dlt-qnx-system/dlt-qnx-slogger2-adapter.cpp index dfa1a19a9..2e5f78e21 100644 --- a/src/dlt-qnx-system/dlt-qnx-slogger2-adapter.cpp +++ b/src/dlt-qnx-system/dlt-qnx-slogger2-adapter.cpp @@ -15,7 +15,7 @@ * \author Felix Herrmann ADIT 2020 * * \file: dlt-qnx-slogger2-adapter.cpp - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ #include #include diff --git a/src/dlt-qnx-system/dlt-qnx-system.c b/src/dlt-qnx-system/dlt-qnx-system.c index eef460f37..69d1a9e58 100644 --- a/src/dlt-qnx-system/dlt-qnx-system.c +++ b/src/dlt-qnx-system/dlt-qnx-system.c @@ -14,7 +14,7 @@ * \author Nguyen Dinh Thi * * \file: dlt-qnx-system.c - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. * @licence end@ */ diff --git a/src/dlt-qnx-system/dlt-qnx-system.h b/src/dlt-qnx-system/dlt-qnx-system.h index ad6dc64bb..8935b93c5 100644 --- a/src/dlt-qnx-system/dlt-qnx-system.h +++ b/src/dlt-qnx-system/dlt-qnx-system.h @@ -14,7 +14,7 @@ * \author Nguyen Dinh Thi ADIT 2020 * * \file: dlt-qnx-system.h - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. * @licence end@ */ diff --git a/src/examples/CMakeLists.txt b/src/examples/CMakeLists.txt index b25fc3ba7..0ee6d058f 100644 --- a/src/examples/CMakeLists.txt +++ b/src/examples/CMakeLists.txt @@ -3,14 +3,14 @@ # # Copyright (C) 2011-2015, BMW AG # -# This file is part of GENIVI Project DLT - Diagnostic Log and Trace. +# This file is part of COVESA Project DLT - Diagnostic Log and Trace. # # This Source Code Form is subject to the terms of the # Mozilla Public License (MPL), v. 2.0. # If a copy of the MPL was not distributed with this file, # You can obtain one at http://mozilla.org/MPL/2.0/. # -# For further information see http://www.genivi.org/. +# For further information see http://www.covesa.org/. ####### set(TARGET_LIST dlt-example-user-func) diff --git a/src/examples/dlt-example-filetransfer.c b/src/examples/dlt-example-filetransfer.c index 8768e1ea0..8021509c8 100644 --- a/src/examples/dlt-example-filetransfer.c +++ b/src/examples/dlt-example-filetransfer.c @@ -3,14 +3,14 @@ * * Copyright (C) 2011-2015, BMW AG * - * This file is part of GENIVI Project DLT - Diagnostic Log and Trace. + * This file is part of COVESA Project DLT - Diagnostic Log and Trace. * * This Source Code Form is subject to the terms of the * Mozilla Public License (MPL), v. 2.0. * If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. * - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ /*! diff --git a/src/examples/dlt-example-multicast-clientmsg-view.c b/src/examples/dlt-example-multicast-clientmsg-view.c index f68473c42..c00537e59 100644 --- a/src/examples/dlt-example-multicast-clientmsg-view.c +++ b/src/examples/dlt-example-multicast-clientmsg-view.c @@ -2,11 +2,11 @@ * Copyright (c) 2019 LG Electronics Inc. * SPDX-License-Identifier: MPL-2.0 * - * This file is part of GENIVI Project DLT - Diagnostic Log and Trace. + * This file is part of COVESA Project DLT - Diagnostic Log and Trace. * If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. * - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ /*! diff --git a/src/examples/dlt-example-user-common-api.c b/src/examples/dlt-example-user-common-api.c index b0a8bcc8e..a4dc7b6a1 100644 --- a/src/examples/dlt-example-user-common-api.c +++ b/src/examples/dlt-example-user-common-api.c @@ -3,14 +3,14 @@ * * Copyright (C) 2011-2015, BMW AG * - * This file is part of GENIVI Project DLT - Diagnostic Log and Trace. + * This file is part of COVESA Project DLT - Diagnostic Log and Trace. * * This Source Code Form is subject to the terms of the * Mozilla Public License (MPL), v. 2.0. * If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. * - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ /*! diff --git a/src/examples/dlt-example-user-func.c b/src/examples/dlt-example-user-func.c index a6d20dcc3..3c327fdc3 100644 --- a/src/examples/dlt-example-user-func.c +++ b/src/examples/dlt-example-user-func.c @@ -3,14 +3,14 @@ * * Copyright (C) 2011-2015, BMW AG * - * This file is part of GENIVI Project DLT - Diagnostic Log and Trace. + * This file is part of COVESA Project DLT - Diagnostic Log and Trace. * * This Source Code Form is subject to the terms of the * Mozilla Public License (MPL), v. 2.0. * If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. * - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ /*! diff --git a/src/examples/dlt-example-user.c b/src/examples/dlt-example-user.c index 8c79c42b8..b3a1cccff 100644 --- a/src/examples/dlt-example-user.c +++ b/src/examples/dlt-example-user.c @@ -3,14 +3,14 @@ * * Copyright (C) 2011-2015, BMW AG * - * This file is part of GENIVI Project DLT - Diagnostic Log and Trace. + * This file is part of COVESA Project DLT - Diagnostic Log and Trace. * * This Source Code Form is subject to the terms of the * Mozilla Public License (MPL), v. 2.0. * If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. * - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ /*! diff --git a/src/gateway/CMakeLists.txt b/src/gateway/CMakeLists.txt index 8c60ac5fa..e6b40f8de 100644 --- a/src/gateway/CMakeLists.txt +++ b/src/gateway/CMakeLists.txt @@ -5,14 +5,14 @@ # This code is developed by Advanced Driver Information Technology. # Copyright of Advanced Driver Information Technology, Bosch and DENSO. # -# This file is part of GENIVI Project DLT - Diagnostic Log and Trace. +# This file is part of COVESA Project DLT - Diagnostic Log and Trace. # # This Source Code Form is subject to the terms of the # Mozilla Public License (MPL), v. 2.0. # If a copy of the MPL was not distributed with this file, # You can obtain one at http://mozilla.org/MPL/2.0/. # -# For further information see http://www.genivi.org/. +# For further information see http://www.covesa.org/. ####### INSTALL(FILES dlt_gateway.conf diff --git a/src/gateway/dlt_gateway.c b/src/gateway/dlt_gateway.c index 3d832cef0..21b447ffc 100644 --- a/src/gateway/dlt_gateway.c +++ b/src/gateway/dlt_gateway.c @@ -5,14 +5,14 @@ * This code is developed by Advanced Driver Information Technology. * Copyright of Advanced Driver Information Technology, Bosch and DENSO. * - * This file is part of GENIVI Project DLT - Diagnostic Log and Trace. + * This file is part of COVESA Project DLT - Diagnostic Log and Trace. * * This Source Code Form is subject to the terms of the * Mozilla Public License (MPL), v. 2.0. * If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. * - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ /*! diff --git a/src/gateway/dlt_gateway.h b/src/gateway/dlt_gateway.h index 9c8c9919e..722a9d96b 100644 --- a/src/gateway/dlt_gateway.h +++ b/src/gateway/dlt_gateway.h @@ -5,14 +5,14 @@ * This code is developed by Advanced Driver Information Technology. * Copyright of Advanced Driver Information Technology, Bosch and DENSO. * - * This file is part of GENIVI Project DLT - Diagnostic Log and Trace. + * This file is part of COVESA Project DLT - Diagnostic Log and Trace. * * This Source Code Form is subject to the terms of the * Mozilla Public License (MPL), v. 2.0. * If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. * - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ /*! diff --git a/src/gateway/dlt_gateway_internal.h b/src/gateway/dlt_gateway_internal.h index 5e83fc169..0aa172630 100644 --- a/src/gateway/dlt_gateway_internal.h +++ b/src/gateway/dlt_gateway_internal.h @@ -5,14 +5,14 @@ * This code is developed by Advanced Driver Information Technology. * Copyright of Advanced Driver Information Technology, Bosch and DENSO. * - * This file is part of GENIVI Project DLT - Diagnostic Log and Trace. + * This file is part of COVESA Project DLT - Diagnostic Log and Trace. * * This Source Code Form is subject to the terms of the * Mozilla Public License (MPL), v. 2.0. * If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. * - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ /*! diff --git a/src/gateway/dlt_gateway_types.h b/src/gateway/dlt_gateway_types.h index 1a7f64503..9213cad90 100644 --- a/src/gateway/dlt_gateway_types.h +++ b/src/gateway/dlt_gateway_types.h @@ -5,14 +5,14 @@ * This code is developed by Advanced Driver Information Technology. * Copyright of Advanced Driver Information Technology, Bosch and DENSO. * - * This file is part of GENIVI Project DLT - Diagnostic Log and Trace. + * This file is part of COVESA Project DLT - Diagnostic Log and Trace. * * This Source Code Form is subject to the terms of the * Mozilla Public License (MPL), v. 2.0. * If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. * - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ /*! diff --git a/src/kpi/CMakeLists.txt b/src/kpi/CMakeLists.txt index 82a681209..22f66048b 100644 --- a/src/kpi/CMakeLists.txt +++ b/src/kpi/CMakeLists.txt @@ -3,14 +3,14 @@ # # Copyright (C) 2011-2015, BMW AG # -# This file is part of GENIVI Project DLT - Diagnostic Log and Trace. +# This file is part of COVESA Project DLT - Diagnostic Log and Trace. # # This Source Code Form is subject to the terms of the # Mozilla Public License (MPL), v. 2.0. # If a copy of the MPL was not distributed with this file, # You can obtain one at http://mozilla.org/MPL/2.0/. # -# For further information see http://www.genivi.org/. +# For further information see http://www.covesa.org/. ####### set (dlt_kpi_SRCS dlt-kpi.c dlt-kpi-options.c dlt-kpi-process.c dlt-kpi-process-list.c dlt-kpi-common.c dlt-kpi-interrupt.c) diff --git a/src/kpi/dlt-kpi-common.c b/src/kpi/dlt-kpi-common.c index b186ef467..d905c1079 100644 --- a/src/kpi/dlt-kpi-common.c +++ b/src/kpi/dlt-kpi-common.c @@ -3,14 +3,14 @@ * * Copyright (C) 2011-2015, BMW AG * - * This file is part of GENIVI Project DLT - Diagnostic Log and Trace. + * This file is part of COVESA Project DLT - Diagnostic Log and Trace. * * This Source Code Form is subject to the terms of the * Mozilla Public License (MPL), v. 2.0. * If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. * - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ /*! diff --git a/src/kpi/dlt-kpi-common.h b/src/kpi/dlt-kpi-common.h index d2624c80d..41bfa085a 100644 --- a/src/kpi/dlt-kpi-common.h +++ b/src/kpi/dlt-kpi-common.h @@ -3,14 +3,14 @@ * * Copyright (C) 2011-2015, BMW AG * - * This file is part of GENIVI Project DLT - Diagnostic Log and Trace. + * This file is part of COVESA Project DLT - Diagnostic Log and Trace. * * This Source Code Form is subject to the terms of the * Mozilla Public License (MPL), v. 2.0. * If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. * - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ /*! diff --git a/src/kpi/dlt-kpi-interrupt.c b/src/kpi/dlt-kpi-interrupt.c index b9a709737..19c9e37c5 100644 --- a/src/kpi/dlt-kpi-interrupt.c +++ b/src/kpi/dlt-kpi-interrupt.c @@ -3,14 +3,14 @@ * * Copyright (C) 2011-2015, BMW AG * - * This file is part of GENIVI Project DLT - Diagnostic Log and Trace. + * This file is part of COVESA Project DLT - Diagnostic Log and Trace. * * This Source Code Form is subject to the terms of the * Mozilla Public License (MPL), v. 2.0. * If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. * - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ /*! diff --git a/src/kpi/dlt-kpi-interrupt.h b/src/kpi/dlt-kpi-interrupt.h index e2640dc45..527ee1824 100644 --- a/src/kpi/dlt-kpi-interrupt.h +++ b/src/kpi/dlt-kpi-interrupt.h @@ -3,14 +3,14 @@ * * Copyright (C) 2011-2015, BMW AG * - * This file is part of GENIVI Project DLT - Diagnostic Log and Trace. + * This file is part of COVESA Project DLT - Diagnostic Log and Trace. * * This Source Code Form is subject to the terms of the * Mozilla Public License (MPL), v. 2.0. * If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. * - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ /*! diff --git a/src/kpi/dlt-kpi-options.c b/src/kpi/dlt-kpi-options.c index 5f07b8b43..551097c1f 100644 --- a/src/kpi/dlt-kpi-options.c +++ b/src/kpi/dlt-kpi-options.c @@ -3,14 +3,14 @@ * * Copyright (C) 2011-2015, BMW AG * - * This file is part of GENIVI Project DLT - Diagnostic Log and Trace. + * This file is part of COVESA Project DLT - Diagnostic Log and Trace. * * This Source Code Form is subject to the terms of the * Mozilla Public License (MPL), v. 2.0. * If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. * - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ /*! diff --git a/src/kpi/dlt-kpi-process-list.c b/src/kpi/dlt-kpi-process-list.c index 985ecc144..56610ebb8 100644 --- a/src/kpi/dlt-kpi-process-list.c +++ b/src/kpi/dlt-kpi-process-list.c @@ -3,14 +3,14 @@ * * Copyright (C) 2011-2015, BMW AG * - * This file is part of GENIVI Project DLT - Diagnostic Log and Trace. + * This file is part of COVESA Project DLT - Diagnostic Log and Trace. * * This Source Code Form is subject to the terms of the * Mozilla Public License (MPL), v. 2.0. * If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. * - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ /*! diff --git a/src/kpi/dlt-kpi-process-list.h b/src/kpi/dlt-kpi-process-list.h index 840aaf098..ccab3b299 100644 --- a/src/kpi/dlt-kpi-process-list.h +++ b/src/kpi/dlt-kpi-process-list.h @@ -3,14 +3,14 @@ * * Copyright (C) 2011-2015, BMW AG * - * This file is part of GENIVI Project DLT - Diagnostic Log and Trace. + * This file is part of COVESA Project DLT - Diagnostic Log and Trace. * * This Source Code Form is subject to the terms of the * Mozilla Public License (MPL), v. 2.0. * If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. * - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ /*! diff --git a/src/kpi/dlt-kpi-process.c b/src/kpi/dlt-kpi-process.c index 27cb54c64..751562f60 100644 --- a/src/kpi/dlt-kpi-process.c +++ b/src/kpi/dlt-kpi-process.c @@ -3,14 +3,14 @@ * * Copyright (C) 2011-2015, BMW AG * - * This file is part of GENIVI Project DLT - Diagnostic Log and Trace. + * This file is part of COVESA Project DLT - Diagnostic Log and Trace. * * This Source Code Form is subject to the terms of the * Mozilla Public License (MPL), v. 2.0. * If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. * - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ /*! diff --git a/src/kpi/dlt-kpi-process.h b/src/kpi/dlt-kpi-process.h index 3e89e4e8b..bdc08fbfa 100644 --- a/src/kpi/dlt-kpi-process.h +++ b/src/kpi/dlt-kpi-process.h @@ -3,14 +3,14 @@ * * Copyright (C) 2011-2015, BMW AG * - * This file is part of GENIVI Project DLT - Diagnostic Log and Trace. + * This file is part of COVESA Project DLT - Diagnostic Log and Trace. * * This Source Code Form is subject to the terms of the * Mozilla Public License (MPL), v. 2.0. * If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. * - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ /*! diff --git a/src/kpi/dlt-kpi.c b/src/kpi/dlt-kpi.c index 6b7c2f886..2ac32bfa4 100644 --- a/src/kpi/dlt-kpi.c +++ b/src/kpi/dlt-kpi.c @@ -3,14 +3,14 @@ * * Copyright (C) 2011-2015, BMW AG * - * This file is part of GENIVI Project DLT - Diagnostic Log and Trace. + * This file is part of COVESA Project DLT - Diagnostic Log and Trace. * * This Source Code Form is subject to the terms of the * Mozilla Public License (MPL), v. 2.0. * If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. * - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ /*! diff --git a/src/kpi/dlt-kpi.h b/src/kpi/dlt-kpi.h index f04e1787e..2c802bd68 100644 --- a/src/kpi/dlt-kpi.h +++ b/src/kpi/dlt-kpi.h @@ -3,14 +3,14 @@ * * Copyright (C) 2011-2015, BMW AG * - * This file is part of GENIVI Project DLT - Diagnostic Log and Trace. + * This file is part of COVESA Project DLT - Diagnostic Log and Trace. * * This Source Code Form is subject to the terms of the * Mozilla Public License (MPL), v. 2.0. * If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. * - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ /*! diff --git a/src/lib/CMakeLists.txt b/src/lib/CMakeLists.txt index e6d63349c..c2b99191c 100644 --- a/src/lib/CMakeLists.txt +++ b/src/lib/CMakeLists.txt @@ -3,14 +3,14 @@ # # Copyright (C) 2011-2015, BMW AG # -# This file is part of GENIVI Project DLT - Diagnostic Log and Trace. +# This file is part of COVESA Project DLT - Diagnostic Log and Trace. # # This Source Code Form is subject to the terms of the # Mozilla Public License (MPL), v. 2.0. # If a copy of the MPL was not distributed with this file, # You can obtain one at http://mozilla.org/MPL/2.0/. # -# For further information see http://www.genivi.org/. +# For further information see http://www.covesa.org/. ####### set(dlt_LIB_SRCS diff --git a/src/lib/dlt_client.c b/src/lib/dlt_client.c index 552ee7a49..310d62f80 100644 --- a/src/lib/dlt_client.c +++ b/src/lib/dlt_client.c @@ -3,14 +3,14 @@ * * Copyright (C) 2011-2015, BMW AG * - * This file is part of GENIVI Project DLT - Diagnostic Log and Trace. + * This file is part of COVESA Project DLT - Diagnostic Log and Trace. * * This Source Code Form is subject to the terms of the * Mozilla Public License (MPL), v. 2.0. * If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. * - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ /*! diff --git a/src/lib/dlt_client_cfg.h b/src/lib/dlt_client_cfg.h index 104823eba..c1d13f846 100644 --- a/src/lib/dlt_client_cfg.h +++ b/src/lib/dlt_client_cfg.h @@ -3,14 +3,14 @@ * * Copyright (C) 2011-2015, BMW AG * - * This file is part of GENIVI Project DLT - Diagnostic Log and Trace. + * This file is part of COVESA Project DLT - Diagnostic Log and Trace. * * This Source Code Form is subject to the terms of the * Mozilla Public License (MPL), v. 2.0. * If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. * - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ /*! diff --git a/src/lib/dlt_env_ll.c b/src/lib/dlt_env_ll.c index 3923704fd..88b0291e6 100644 --- a/src/lib/dlt_env_ll.c +++ b/src/lib/dlt_env_ll.c @@ -3,14 +3,14 @@ * * Copyright (C) 2015 Intel Corporation * - * This file is part of GENIVI Project DLT - Diagnostic Log and Trace. + * This file is part of COVESA Project DLT - Diagnostic Log and Trace. * * This Source Code Form is subject to the terms of the * Mozilla Public License (MPL), v. 2.0. * If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. * - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ /*! diff --git a/src/lib/dlt_filetransfer.c b/src/lib/dlt_filetransfer.c index 3c71e68b0..6578fb04d 100644 --- a/src/lib/dlt_filetransfer.c +++ b/src/lib/dlt_filetransfer.c @@ -3,14 +3,14 @@ * * Copyright (C) 2011-2015, BMW AG * - * This file is part of GENIVI Project DLT - Diagnostic Log and Trace. + * This file is part of COVESA Project DLT - Diagnostic Log and Trace. * * This Source Code Form is subject to the terms of the * Mozilla Public License (MPL), v. 2.0. * If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. * - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ /*! diff --git a/src/lib/dlt_user.c b/src/lib/dlt_user.c index 0397e486f..ceeca680d 100644 --- a/src/lib/dlt_user.c +++ b/src/lib/dlt_user.c @@ -3,14 +3,14 @@ * * Copyright (C) 2011-2015, BMW AG * - * This file is part of GENIVI Project DLT - Diagnostic Log and Trace. + * This file is part of COVESA Project DLT - Diagnostic Log and Trace. * * This Source Code Form is subject to the terms of the * Mozilla Public License (MPL), v. 2.0. * If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. * - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ /*! diff --git a/src/lib/dlt_user_cfg.h b/src/lib/dlt_user_cfg.h index 8037c2841..ce52dc657 100644 --- a/src/lib/dlt_user_cfg.h +++ b/src/lib/dlt_user_cfg.h @@ -3,14 +3,14 @@ * * Copyright (C) 2011-2015, BMW AG * - * This file is part of GENIVI Project DLT - Diagnostic Log and Trace. + * This file is part of COVESA Project DLT - Diagnostic Log and Trace. * * This Source Code Form is subject to the terms of the * Mozilla Public License (MPL), v. 2.0. * If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. * - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ /*! diff --git a/src/offlinelogstorage/dlt_offline_logstorage.c b/src/offlinelogstorage/dlt_offline_logstorage.c index b8793c7ac..bddd96853 100644 --- a/src/offlinelogstorage/dlt_offline_logstorage.c +++ b/src/offlinelogstorage/dlt_offline_logstorage.c @@ -15,7 +15,7 @@ * \author Christoph Lipka ADIT 2015 * * \file: dlt_offline_logstorage.c - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ #include #include diff --git a/src/offlinelogstorage/dlt_offline_logstorage.h b/src/offlinelogstorage/dlt_offline_logstorage.h index 8f32a89f1..0a48f216f 100644 --- a/src/offlinelogstorage/dlt_offline_logstorage.h +++ b/src/offlinelogstorage/dlt_offline_logstorage.h @@ -15,7 +15,7 @@ * \author Christoph Lipka ADIT 2015 * * \file: dlt_offline_logstorage.h - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ /******************************************************************************* diff --git a/src/offlinelogstorage/dlt_offline_logstorage_behavior.c b/src/offlinelogstorage/dlt_offline_logstorage_behavior.c index 666a78bac..396e48fc7 100644 --- a/src/offlinelogstorage/dlt_offline_logstorage_behavior.c +++ b/src/offlinelogstorage/dlt_offline_logstorage_behavior.c @@ -15,7 +15,7 @@ * \author Syed Hameed ADIT 2015 * * \file: dlt_offline_logstorage_behavior.c - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ #include diff --git a/src/offlinelogstorage/dlt_offline_logstorage_behavior.h b/src/offlinelogstorage/dlt_offline_logstorage_behavior.h index 1ed59195f..08cb3d830 100644 --- a/src/offlinelogstorage/dlt_offline_logstorage_behavior.h +++ b/src/offlinelogstorage/dlt_offline_logstorage_behavior.h @@ -14,7 +14,7 @@ * \author Christoph Lipka ADIT 2015 * * \file: dlt_offline_logstorage_behavior.h - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ /******************************************************************************* diff --git a/src/offlinelogstorage/dlt_offline_logstorage_behavior_internal.h b/src/offlinelogstorage/dlt_offline_logstorage_behavior_internal.h index fd23bb889..ee72ea729 100644 --- a/src/offlinelogstorage/dlt_offline_logstorage_behavior_internal.h +++ b/src/offlinelogstorage/dlt_offline_logstorage_behavior_internal.h @@ -14,7 +14,7 @@ * \author Aditya Paluri ADIT 2018 * * \file: dlt_offline_logstorage_behavior_internal.h - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ /******************************************************************************* diff --git a/src/offlinelogstorage/dlt_offline_logstorage_internal.h b/src/offlinelogstorage/dlt_offline_logstorage_internal.h index ed126eb76..269ccdb65 100644 --- a/src/offlinelogstorage/dlt_offline_logstorage_internal.h +++ b/src/offlinelogstorage/dlt_offline_logstorage_internal.h @@ -14,7 +14,7 @@ * \author Aditya Paluri ADIT 2017 * * \file: dlt_offline_logstorage_internal.h - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ /******************************************************************************* diff --git a/src/shared/dlt_common.c b/src/shared/dlt_common.c index cbbe99a4a..c9e8cafa6 100644 --- a/src/shared/dlt_common.c +++ b/src/shared/dlt_common.c @@ -3,14 +3,14 @@ * * Copyright (C) 2011-2015, BMW AG * - * This file is part of GENIVI Project DLT - Diagnostic Log and Trace. + * This file is part of COVESA Project DLT - Diagnostic Log and Trace. * * This Source Code Form is subject to the terms of the * Mozilla Public License (MPL), v. 2.0. * If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. * - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ /*! diff --git a/src/shared/dlt_common_cfg.h b/src/shared/dlt_common_cfg.h index cbd974d03..97621df63 100644 --- a/src/shared/dlt_common_cfg.h +++ b/src/shared/dlt_common_cfg.h @@ -3,14 +3,14 @@ * * Copyright (C) 2011-2015, BMW AG * - * This file is part of GENIVI Project DLT - Diagnostic Log and Trace. + * This file is part of COVESA Project DLT - Diagnostic Log and Trace. * * This Source Code Form is subject to the terms of the * Mozilla Public License (MPL), v. 2.0. * If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. * - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ /*! diff --git a/src/shared/dlt_config_file_parser.c b/src/shared/dlt_config_file_parser.c index 72c57abf2..e2ae5a0da 100644 --- a/src/shared/dlt_config_file_parser.c +++ b/src/shared/dlt_config_file_parser.c @@ -5,14 +5,14 @@ * This code is developed by Advanced Driver Information Technology. * Copyright of Advanced Driver Information Technology, Bosch and DENSO. * - * This file is part of GENIVI Project DLT - Diagnostic Log and Trace. + * This file is part of COVESA Project DLT - Diagnostic Log and Trace. * * This Source Code Form is subject to the terms of the * Mozilla Public License (MPL), v. 2.0. * If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. * - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ /*! diff --git a/src/shared/dlt_config_file_parser.h b/src/shared/dlt_config_file_parser.h index 3c1a6fdce..1de8b009f 100644 --- a/src/shared/dlt_config_file_parser.h +++ b/src/shared/dlt_config_file_parser.h @@ -5,14 +5,14 @@ * This code is developed by Advanced Driver Information Technology. * Copyright of Advanced Driver Information Technology, Bosch and DENSO. * - * This file is part of GENIVI Project DLT - Diagnostic Log and Trace. + * This file is part of COVESA Project DLT - Diagnostic Log and Trace. * * This Source Code Form is subject to the terms of the * Mozilla Public License (MPL), v. 2.0. * If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. * - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ /*! diff --git a/src/shared/dlt_multiple_files.c b/src/shared/dlt_multiple_files.c index 014250570..59d5f4196 100644 --- a/src/shared/dlt_multiple_files.c +++ b/src/shared/dlt_multiple_files.c @@ -3,7 +3,7 @@ * * Copyright (C) 2022, Daimler TSS GmbH * - * This file is part of GENIVI Project DLT - Diagnostic Log and Trace. + * This file is part of COVESA Project DLT - Diagnostic Log and Trace. * * This Source Code Form is subject to the terms of the * Mozilla Public License (MPL), v. 2.0. diff --git a/src/shared/dlt_offline_trace.c b/src/shared/dlt_offline_trace.c index b8b9a85b9..988ed7e9f 100644 --- a/src/shared/dlt_offline_trace.c +++ b/src/shared/dlt_offline_trace.c @@ -3,14 +3,14 @@ * * Copyright (C) 2011-2015, BMW AG * - * This file is part of GENIVI Project DLT - Diagnostic Log and Trace. + * This file is part of COVESA Project DLT - Diagnostic Log and Trace. * * This Source Code Form is subject to the terms of the * Mozilla Public License (MPL), v. 2.0. * If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. * - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ /*! diff --git a/src/shared/dlt_protocol.c b/src/shared/dlt_protocol.c index fc6dea424..e2a34f1de 100644 --- a/src/shared/dlt_protocol.c +++ b/src/shared/dlt_protocol.c @@ -5,14 +5,14 @@ * This code is developed by Advanced Driver Information Technology. * Copyright of Advanced Driver Information Technology, Bosch and DENSO. * - * This file is part of GENIVI Project DLT - Diagnostic Log and Trace. + * This file is part of COVESA Project DLT - Diagnostic Log and Trace. * * This Source Code Form is subject to the terms of the * Mozilla Public License (MPL), v. 2.0. * If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. * - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ /*! diff --git a/src/shared/dlt_shm.c b/src/shared/dlt_shm.c index e1c96b780..ad471c4d8 100644 --- a/src/shared/dlt_shm.c +++ b/src/shared/dlt_shm.c @@ -3,14 +3,14 @@ * * Copyright (C) 2011-2015, BMW AG * - * This file is part of GENIVI Project DLT - Diagnostic Log and Trace. + * This file is part of COVESA Project DLT - Diagnostic Log and Trace. * * This Source Code Form is subject to the terms of the * Mozilla Public License (MPL), v. 2.0. * If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. * - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ /*! diff --git a/src/shared/dlt_user_shared.c b/src/shared/dlt_user_shared.c index c6bc4966f..1511e146a 100644 --- a/src/shared/dlt_user_shared.c +++ b/src/shared/dlt_user_shared.c @@ -3,14 +3,14 @@ * * Copyright (C) 2011-2015, BMW AG * - * This file is part of GENIVI Project DLT - Diagnostic Log and Trace. + * This file is part of COVESA Project DLT - Diagnostic Log and Trace. * * This Source Code Form is subject to the terms of the * Mozilla Public License (MPL), v. 2.0. * If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. * - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ /*! diff --git a/src/shared/dlt_user_shared.h b/src/shared/dlt_user_shared.h index 4417894d1..5e447076e 100644 --- a/src/shared/dlt_user_shared.h +++ b/src/shared/dlt_user_shared.h @@ -3,14 +3,14 @@ * * Copyright (C) 2011-2015, BMW AG * - * This file is part of GENIVI Project DLT - Diagnostic Log and Trace. + * This file is part of COVESA Project DLT - Diagnostic Log and Trace. * * This Source Code Form is subject to the terms of the * Mozilla Public License (MPL), v. 2.0. * If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. * - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ /*! diff --git a/src/shared/dlt_user_shared_cfg.h b/src/shared/dlt_user_shared_cfg.h index 7eecf48d4..d2fdc958a 100644 --- a/src/shared/dlt_user_shared_cfg.h +++ b/src/shared/dlt_user_shared_cfg.h @@ -3,14 +3,14 @@ * * Copyright (C) 2011-2015, BMW AG * - * This file is part of GENIVI Project DLT - Diagnostic Log and Trace. + * This file is part of COVESA Project DLT - Diagnostic Log and Trace. * * This Source Code Form is subject to the terms of the * Mozilla Public License (MPL), v. 2.0. * If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. * - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ /*! diff --git a/src/system/CMakeLists.txt b/src/system/CMakeLists.txt index a0b9bf05f..bd31c1231 100644 --- a/src/system/CMakeLists.txt +++ b/src/system/CMakeLists.txt @@ -3,14 +3,14 @@ # # Copyright (C) 2011-2015, BMW AG # -# This file is part of GENIVI Project DLT - Diagnostic Log and Trace. +# This file is part of COVESA Project DLT - Diagnostic Log and Trace. # # This Source Code Form is subject to the terms of the # Mozilla Public License (MPL), v. 2.0. # If a copy of the MPL was not distributed with this file, # You can obtain one at http://mozilla.org/MPL/2.0/. # -# For further information see http://www.genivi.org/. +# For further information see http://www.covesa.org/. ####### if(WITH_SYSTEMD_WATCHDOG OR WITH_SYSTEMD OR WITH_SYSTEMD_JOURNAL) diff --git a/src/system/dlt-system-filetransfer.c b/src/system/dlt-system-filetransfer.c index a06e51211..c082f226a 100644 --- a/src/system/dlt-system-filetransfer.c +++ b/src/system/dlt-system-filetransfer.c @@ -3,14 +3,14 @@ * * Copyright (C) 2011-2015, BMW AG * - * This file is part of GENIVI Project DLT - Diagnostic Log and Trace. + * This file is part of COVESA Project DLT - Diagnostic Log and Trace. * * This Source Code Form is subject to the terms of the * Mozilla Public License (MPL), v. 2.0. * If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. * - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ /*! diff --git a/src/system/dlt-system-journal.c b/src/system/dlt-system-journal.c index 2506f7df6..9d6380173 100644 --- a/src/system/dlt-system-journal.c +++ b/src/system/dlt-system-journal.c @@ -3,14 +3,14 @@ * * Copyright (C) 2011-2015, BMW AG * - * This file is part of GENIVI Project DLT - Diagnostic Log and Trace. + * This file is part of COVESA Project DLT - Diagnostic Log and Trace. * * This Source Code Form is subject to the terms of the * Mozilla Public License (MPL), v. 2.0. * If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. * - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ /*! diff --git a/src/system/dlt-system-logfile.c b/src/system/dlt-system-logfile.c index 5e916d416..941a3be1e 100644 --- a/src/system/dlt-system-logfile.c +++ b/src/system/dlt-system-logfile.c @@ -3,14 +3,14 @@ * * Copyright (C) 2011-2015, BMW AG * - * This file is part of GENIVI Project DLT - Diagnostic Log and Trace. + * This file is part of COVESA Project DLT - Diagnostic Log and Trace. * * This Source Code Form is subject to the terms of the * Mozilla Public License (MPL), v. 2.0. * If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. * - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ /*! diff --git a/src/system/dlt-system-options.c b/src/system/dlt-system-options.c index d24f278b6..92280f869 100644 --- a/src/system/dlt-system-options.c +++ b/src/system/dlt-system-options.c @@ -3,14 +3,14 @@ * * Copyright (C) 2011-2015, BMW AG * - * This file is part of GENIVI Project DLT - Diagnostic Log and Trace. + * This file is part of COVESA Project DLT - Diagnostic Log and Trace. * * This Source Code Form is subject to the terms of the * Mozilla Public License (MPL), v. 2.0. * If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. * - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ /*! diff --git a/src/system/dlt-system-process-handling.c b/src/system/dlt-system-process-handling.c index c146b49b4..3e092d4e5 100644 --- a/src/system/dlt-system-process-handling.c +++ b/src/system/dlt-system-process-handling.c @@ -3,14 +3,14 @@ * * Copyright (C) 2011-2015, BMW AG * - * This file is part of GENIVI Project DLT - Diagnostic Log and Trace. + * This file is part of COVESA Project DLT - Diagnostic Log and Trace. * * This Source Code Form is subject to the terms of the * Mozilla Public License (MPL), v. 2.0. * If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. * - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ /*! diff --git a/src/system/dlt-system-processes.c b/src/system/dlt-system-processes.c index a6e4918fc..c35596c94 100644 --- a/src/system/dlt-system-processes.c +++ b/src/system/dlt-system-processes.c @@ -3,14 +3,14 @@ * * Copyright (C) 2011-2015, BMW AG * - * This file is part of GENIVI Project DLT - Diagnostic Log and Trace. + * This file is part of COVESA Project DLT - Diagnostic Log and Trace. * * This Source Code Form is subject to the terms of the * Mozilla Public License (MPL), v. 2.0. * If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. * - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ /*! diff --git a/src/system/dlt-system-shell.c b/src/system/dlt-system-shell.c index c7ebe2c20..f48945bcd 100644 --- a/src/system/dlt-system-shell.c +++ b/src/system/dlt-system-shell.c @@ -3,14 +3,14 @@ * * Copyright (C) 2011-2015, BMW AG * - * This file is part of GENIVI Project DLT - Diagnostic Log and Trace. + * This file is part of COVESA Project DLT - Diagnostic Log and Trace. * * This Source Code Form is subject to the terms of the * Mozilla Public License (MPL), v. 2.0. * If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. * - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ /*! diff --git a/src/system/dlt-system-syslog.c b/src/system/dlt-system-syslog.c index 299544184..59e9d3ffd 100644 --- a/src/system/dlt-system-syslog.c +++ b/src/system/dlt-system-syslog.c @@ -3,14 +3,14 @@ * * Copyright (C) 2011-2015, BMW AG * - * This file is part of GENIVI Project DLT - Diagnostic Log and Trace. + * This file is part of COVESA Project DLT - Diagnostic Log and Trace. * * This Source Code Form is subject to the terms of the * Mozilla Public License (MPL), v. 2.0. * If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. * - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ /*! diff --git a/src/system/dlt-system-watchdog.c b/src/system/dlt-system-watchdog.c index 541234586..7ed160406 100644 --- a/src/system/dlt-system-watchdog.c +++ b/src/system/dlt-system-watchdog.c @@ -3,14 +3,14 @@ * * Copyright (C) 2011-2015, BMW AG * - * This file is part of GENIVI Project DLT - Diagnostic Log and Trace. + * This file is part of COVESA Project DLT - Diagnostic Log and Trace. * * This Source Code Form is subject to the terms of the * Mozilla Public License (MPL), v. 2.0. * If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. * - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ /*! diff --git a/src/system/dlt-system.c b/src/system/dlt-system.c index 4f3959e70..d3aef9ef2 100644 --- a/src/system/dlt-system.c +++ b/src/system/dlt-system.c @@ -3,14 +3,14 @@ * * Copyright (C) 2011-2015, BMW AG * - * This file is part of GENIVI Project DLT - Diagnostic Log and Trace. + * This file is part of COVESA Project DLT - Diagnostic Log and Trace. * * This Source Code Form is subject to the terms of the * Mozilla Public License (MPL), v. 2.0. * If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. * - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ /*! diff --git a/src/system/dlt-system.conf b/src/system/dlt-system.conf index 58f56fa53..77bc73e75 100644 --- a/src/system/dlt-system.conf +++ b/src/system/dlt-system.conf @@ -14,7 +14,7 @@ ApplicationId = SYS # Be careful when you enable this feature. The user can send any kind of # shell commands. The commands are executed with the rights of the -# dlt-system process. Dlt-system is started by default as user genivi. +# dlt-system process. Dlt-system is started by default as user covesa. # Enable the Shell for command line injections (Default: 0) ShellEnable = 0 @@ -41,8 +41,8 @@ SyslogPort = 47111 # This feature is only available, when dlt is compiled with # the option "WITH_SYSTEMD_JOURNAL" -# Dlt-system is started by default as user genivi, see dlt-system.service file. -# The user genivi must be added to one of the groups 'adm', 'wheel' or +# Dlt-system is started by default as user covesa, see dlt-system.service file. +# The user covesa must be added to one of the groups 'adm', 'wheel' or # 'systemd-journal' to have access to all journal entries. # Enable Systemd Journal Adapter only when your system doesn't have systemd. # Don't enable both (SyslogEnable = 1 and JournalEnable = 1) together because diff --git a/src/system/dlt-system.h b/src/system/dlt-system.h index 769f78882..f39041323 100644 --- a/src/system/dlt-system.h +++ b/src/system/dlt-system.h @@ -3,14 +3,14 @@ * * Copyright (C) 2011-2015, BMW AG * - * This file is part of GENIVI Project DLT - Diagnostic Log and Trace. + * This file is part of COVESA Project DLT - Diagnostic Log and Trace. * * This Source Code Form is subject to the terms of the * Mozilla Public License (MPL), v. 2.0. * If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. * - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ /*! diff --git a/src/tests/CMakeLists.txt b/src/tests/CMakeLists.txt index 76f89cbda..4474103f3 100644 --- a/src/tests/CMakeLists.txt +++ b/src/tests/CMakeLists.txt @@ -3,14 +3,14 @@ # # Copyright (C) 2011-2015, BMW AG # -# This file is part of GENIVI Project DLT - Diagnostic Log and Trace. +# This file is part of COVESA Project DLT - Diagnostic Log and Trace. # # This Source Code Form is subject to the terms of the # Mozilla Public License (MPL), v. 2.0. # If a copy of the MPL was not distributed with this file, # You can obtain one at http://mozilla.org/MPL/2.0/. # -# For further information see http://www.genivi.org/. +# For further information see http://www.covesa.org/. ####### set(TARGET_LIST ${TARGET_LIST} dlt-test-multi-process) diff --git a/src/tests/dlt-test-client.c b/src/tests/dlt-test-client.c index ad5eee94d..bfe1cc37a 100644 --- a/src/tests/dlt-test-client.c +++ b/src/tests/dlt-test-client.c @@ -3,14 +3,14 @@ * * Copyright (C) 2011-2015, BMW AG * - * This file is part of GENIVI Project DLT - Diagnostic Log and Trace. + * This file is part of COVESA Project DLT - Diagnostic Log and Trace. * * This Source Code Form is subject to the terms of the * Mozilla Public License (MPL), v. 2.0. * If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. * - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ /*! diff --git a/src/tests/dlt-test-cpp-extension.cpp b/src/tests/dlt-test-cpp-extension.cpp index 3c0fc1c69..cd6a394c9 100644 --- a/src/tests/dlt-test-cpp-extension.cpp +++ b/src/tests/dlt-test-cpp-extension.cpp @@ -3,14 +3,14 @@ * * Copyright (C) 2015 Intel Corporation * - * This file is part of GENIVI Project DLT - Diagnostic Log and Trace. + * This file is part of COVESA Project DLT - Diagnostic Log and Trace. * * This Source Code Form is subject to the terms of the * Mozilla Public License (MPL), v. 2.0. * If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. * - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ /*! diff --git a/src/tests/dlt-test-filetransfer.c b/src/tests/dlt-test-filetransfer.c index b4529e6a4..7ec7c57cd 100644 --- a/src/tests/dlt-test-filetransfer.c +++ b/src/tests/dlt-test-filetransfer.c @@ -3,14 +3,14 @@ * * Copyright (C) 2011-2015, BMW AG * - * This file is part of GENIVI Project DLT - Diagnostic Log and Trace. + * This file is part of COVESA Project DLT - Diagnostic Log and Trace. * * This Source Code Form is subject to the terms of the * Mozilla Public License (MPL), v. 2.0. * If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. * - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ /*! diff --git a/src/tests/dlt-test-fork-handler.c b/src/tests/dlt-test-fork-handler.c index 6655a6188..e038edb1d 100644 --- a/src/tests/dlt-test-fork-handler.c +++ b/src/tests/dlt-test-fork-handler.c @@ -3,14 +3,14 @@ * * Copyright (C) 2015 Intel Corporation * - * This file is part of GENIVI Project DLT - Diagnostic Log and Trace. + * This file is part of COVESA Project DLT - Diagnostic Log and Trace. * * This Source Code Form is subject to the terms of the * Mozilla Public License (MPL), v. 2.0. * If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. * - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ /*! diff --git a/src/tests/dlt-test-init-free.c b/src/tests/dlt-test-init-free.c index 6bfee15d1..90933be6f 100644 --- a/src/tests/dlt-test-init-free.c +++ b/src/tests/dlt-test-init-free.c @@ -3,14 +3,14 @@ * * Copyright (C) 2011-2015, BMW AG * - * This file is part of GENIVI Project DLT - Diagnostic Log and Trace. + * This file is part of COVESA Project DLT - Diagnostic Log and Trace. * * This Source Code Form is subject to the terms of the * Mozilla Public License (MPL), v. 2.0. * If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. * - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ /*! diff --git a/src/tests/dlt-test-multi-process-client.c b/src/tests/dlt-test-multi-process-client.c index ca06612f5..2fb609316 100644 --- a/src/tests/dlt-test-multi-process-client.c +++ b/src/tests/dlt-test-multi-process-client.c @@ -3,14 +3,14 @@ * * Copyright (C) 2011-2015, BMW AG * - * This file is part of GENIVI Project DLT - Diagnostic Log and Trace. + * This file is part of COVESA Project DLT - Diagnostic Log and Trace. * * This Source Code Form is subject to the terms of the * Mozilla Public License (MPL), v. 2.0. * If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. * - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ /*! diff --git a/src/tests/dlt-test-multi-process.c b/src/tests/dlt-test-multi-process.c index 90682a3ac..ad5637c87 100644 --- a/src/tests/dlt-test-multi-process.c +++ b/src/tests/dlt-test-multi-process.c @@ -3,14 +3,14 @@ * * Copyright (C) 2011-2015, BMW AG * - * This file is part of GENIVI Project DLT - Diagnostic Log and Trace. + * This file is part of COVESA Project DLT - Diagnostic Log and Trace. * * This Source Code Form is subject to the terms of the * Mozilla Public License (MPL), v. 2.0. * If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. * - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ /*! diff --git a/src/tests/dlt-test-multi-process.h b/src/tests/dlt-test-multi-process.h index de590ee4a..977dddfa5 100644 --- a/src/tests/dlt-test-multi-process.h +++ b/src/tests/dlt-test-multi-process.h @@ -3,14 +3,14 @@ * * Copyright (C) 2011-2015, BMW AG * - * This file is part of GENIVI Project DLT - Diagnostic Log and Trace. + * This file is part of COVESA Project DLT - Diagnostic Log and Trace. * * This Source Code Form is subject to the terms of the * Mozilla Public License (MPL), v. 2.0. * If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. * - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ /*! diff --git a/src/tests/dlt-test-non-verbose.c b/src/tests/dlt-test-non-verbose.c index 6cc793819..9b0d1376c 100644 --- a/src/tests/dlt-test-non-verbose.c +++ b/src/tests/dlt-test-non-verbose.c @@ -5,14 +5,14 @@ * This code is developed by Advanced Driver Information Technology. * Copyright of Advanced Driver Information Technology, Bosch and DENSO. * - * This file is part of GENIVI Project DLT - Diagnostic Log and Trace. + * This file is part of COVESA Project DLT - Diagnostic Log and Trace. * * This Source Code Form is subject to the terms of the * Mozilla Public License (MPL), v. 2.0. * If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. * - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ /*! diff --git a/src/tests/dlt-test-preregister-context.c b/src/tests/dlt-test-preregister-context.c index caa77f041..2fa86c95c 100644 --- a/src/tests/dlt-test-preregister-context.c +++ b/src/tests/dlt-test-preregister-context.c @@ -3,14 +3,14 @@ * * Copyright (C) 2015 Intel Corporation * - * This file is part of GENIVI Project DLT - Diagnostic Log and Trace. + * This file is part of COVESA Project DLT - Diagnostic Log and Trace. * * This Source Code Form is subject to the terms of the * Mozilla Public License (MPL), v. 2.0. * If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. * - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ /*! diff --git a/src/tests/dlt-test-qnx-slogger.c b/src/tests/dlt-test-qnx-slogger.c index 973fbe0f7..b03bc5c4b 100644 --- a/src/tests/dlt-test-qnx-slogger.c +++ b/src/tests/dlt-test-qnx-slogger.c @@ -5,14 +5,14 @@ * This code is developed by Advanced Driver Information Technology. * Copyright of Advanced Driver Information Technology, Bosch and DENSO. * - * This file is part of GENIVI Project DLT - Diagnostic Log and Trace. + * This file is part of COVESA Project DLT - Diagnostic Log and Trace. * * This Source Code Form is subject to the terms of the * Mozilla Public License (MPL), v. 2.0. * If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. * - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ #include diff --git a/src/tests/dlt-test-stress-client.c b/src/tests/dlt-test-stress-client.c index 5370caa1d..e77ac1ccd 100644 --- a/src/tests/dlt-test-stress-client.c +++ b/src/tests/dlt-test-stress-client.c @@ -3,14 +3,14 @@ * * Copyright (C) 2011-2015, BMW AG * - * This file is part of GENIVI Project DLT - Diagnostic Log and Trace. + * This file is part of COVESA Project DLT - Diagnostic Log and Trace. * * This Source Code Form is subject to the terms of the * Mozilla Public License (MPL), v. 2.0. * If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. * - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ /*! diff --git a/src/tests/dlt-test-stress-user.c b/src/tests/dlt-test-stress-user.c index 06abbfd53..7ef68a540 100644 --- a/src/tests/dlt-test-stress-user.c +++ b/src/tests/dlt-test-stress-user.c @@ -3,14 +3,14 @@ * * Copyright (C) 2011-2015, BMW AG * - * This file is part of GENIVI Project DLT - Diagnostic Log and Trace. + * This file is part of COVESA Project DLT - Diagnostic Log and Trace. * * This Source Code Form is subject to the terms of the * Mozilla Public License (MPL), v. 2.0. * If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. * - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ /*! diff --git a/src/tests/dlt-test-stress.c b/src/tests/dlt-test-stress.c index 7b58b3d63..ca6675b2f 100644 --- a/src/tests/dlt-test-stress.c +++ b/src/tests/dlt-test-stress.c @@ -3,14 +3,14 @@ * * Copyright (C) 2011-2015, BMW AG * - * This file is part of GENIVI Project DLT - Diagnostic Log and Trace. + * This file is part of COVESA Project DLT - Diagnostic Log and Trace. * * This Source Code Form is subject to the terms of the * Mozilla Public License (MPL), v. 2.0. * If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. * - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ /*! diff --git a/src/tests/dlt-test-user.c b/src/tests/dlt-test-user.c index b7b28700e..d353c283c 100644 --- a/src/tests/dlt-test-user.c +++ b/src/tests/dlt-test-user.c @@ -3,14 +3,14 @@ * * Copyright (C) 2011-2015, BMW AG * - * This file is part of GENIVI Project DLT - Diagnostic Log and Trace. + * This file is part of COVESA Project DLT - Diagnostic Log and Trace. * * This Source Code Form is subject to the terms of the * Mozilla Public License (MPL), v. 2.0. * If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. * - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ /*! diff --git a/systemd/CMakeLists.txt b/systemd/CMakeLists.txt index bfd4cd952..a44e7bc7d 100644 --- a/systemd/CMakeLists.txt +++ b/systemd/CMakeLists.txt @@ -3,14 +3,14 @@ # # Copyright (C) 2011-2015, BMW AG # -# This file is part of GENIVI Project DLT - Diagnostic Log and Trace. +# This file is part of COVESA Project DLT - Diagnostic Log and Trace. # # This Source Code Form is subject to the terms of the # Mozilla Public License (MPL), v. 2.0. # If a copy of the MPL was not distributed with this file, # You can obtain one at http://mozilla.org/MPL/2.0/. # -# For further information see http://www.genivi.org/. +# For further information see http://www.covesa.org/. ####### if(WITH_SYSTEMD) diff --git a/systemd/dlt-adaptor-udp.service.cmake b/systemd/dlt-adaptor-udp.service.cmake index e06330cb5..fb7b60754 100644 --- a/systemd/dlt-adaptor-udp.service.cmake +++ b/systemd/dlt-adaptor-udp.service.cmake @@ -3,18 +3,18 @@ # # Copyright (C) 2011-2015, BMW AG # -# This file is part of GENIVI Project DLT - Diagnostic Log and Trace. +# This file is part of COVESA Project DLT - Diagnostic Log and Trace. # # This Source Code Form is subject to the terms of the # Mozilla Public License (MPL), v. 2.0. # If a copy of the MPL was not distributed with this file, # You can obtain one at http://mozilla.org/MPL/2.0/. # -# For further information see http://www.genivi.org/. +# For further information see http://www.covesa.org/. ####### [Unit] -Description=GENIVI DLT adaptor stdin. Adaptor for forwarding received UDP messages to DLT daemon. +Description=COVESA DLT adaptor stdin. Adaptor for forwarding received UDP messages to DLT daemon. Wants=dlt.service [Service] diff --git a/systemd/dlt-dbus.service.cmake b/systemd/dlt-dbus.service.cmake index 9baf3e956..ee41ec815 100644 --- a/systemd/dlt-dbus.service.cmake +++ b/systemd/dlt-dbus.service.cmake @@ -3,18 +3,18 @@ # # Copyright (C) 2011-2015, BMW AG # -# This file is part of GENIVI Project DLT - Diagnostic Log and Trace. +# This file is part of COVESA Project DLT - Diagnostic Log and Trace. # # This Source Code Form is subject to the terms of the # Mozilla Public License (MPL), v. 2.0. # If a copy of the MPL was not distributed with this file, # You can obtain one at http://mozilla.org/MPL/2.0/. # -# For further information see http://www.genivi.org/. +# For further information see http://www.covesa.org/. ####### [Unit] -Description=GENIVI DLT DBus. Application to forward DBus messages to DLT. +Description=COVESA DLT DBus. Application to forward DBus messages to DLT. Documentation=man:dlt-dbus(1) man:dlt-dbus.conf(5) Wants=dlt.service diff --git a/systemd/dlt-example-user.service.cmake b/systemd/dlt-example-user.service.cmake index 2f300eca5..cae60e853 100644 --- a/systemd/dlt-example-user.service.cmake +++ b/systemd/dlt-example-user.service.cmake @@ -3,22 +3,22 @@ # # Copyright (C) 2011-2015, BMW AG # -# This file is part of GENIVI Project DLT - Diagnostic Log and Trace. +# This file is part of COVESA Project DLT - Diagnostic Log and Trace. # # This Source Code Form is subject to the terms of the # Mozilla Public License (MPL), v. 2.0. # If a copy of the MPL was not distributed with this file, # You can obtain one at http://mozilla.org/MPL/2.0/. # -# For further information see http://www.genivi.org/. +# For further information see http://www.covesa.org/. ####### [Unit] -Description=GENIVI DLT example user. Generate DLT messages and store them to file or send them to daemon. +Description=COVESA DLT example user. Generate DLT messages and store them to file or send them to daemon. Wants=dlt.service [Service] Type=simple User=@DLT_USER@ -ExecStart=@CMAKE_INSTALL_PREFIX@/bin/dlt-example-user "Hallo from GENIVI DLT example user application" +ExecStart=@CMAKE_INSTALL_PREFIX@/bin/dlt-example-user "Hallo from COVESA DLT example user application" LimitCORE=infinity \ No newline at end of file diff --git a/systemd/dlt-receive.service.cmake b/systemd/dlt-receive.service.cmake index dd53ab7de..8f01f3a99 100644 --- a/systemd/dlt-receive.service.cmake +++ b/systemd/dlt-receive.service.cmake @@ -3,18 +3,18 @@ # # Copyright (C) 2011-2015, BMW AG # -# This file is part of GENIVI Project DLT - Diagnostic Log and Trace. +# This file is part of COVESA Project DLT - Diagnostic Log and Trace. # # This Source Code Form is subject to the terms of the # Mozilla Public License (MPL), v. 2.0. # If a copy of the MPL was not distributed with this file, # You can obtain one at http://mozilla.org/MPL/2.0/. # -# For further information see http://www.genivi.org/. +# For further information see http://www.covesa.org/. ####### [Unit] -Description=GENIVI DLT receive. Receive DLT messages from DLT daemon and print or store the messages. +Description=COVESA DLT receive. Receive DLT messages from DLT daemon and print or store the messages. Documentation=man:dlt-receive(1) Wants=dlt.service diff --git a/systemd/dlt-system.service.cmake b/systemd/dlt-system.service.cmake index 7dfada023..ac170990d 100755 --- a/systemd/dlt-system.service.cmake +++ b/systemd/dlt-system.service.cmake @@ -3,18 +3,18 @@ # # Copyright (C) 2011-2015, BMW AG # -# This file is part of GENIVI Project DLT - Diagnostic Log and Trace. +# This file is part of COVESA Project DLT - Diagnostic Log and Trace. # # This Source Code Form is subject to the terms of the # Mozilla Public License (MPL), v. 2.0. # If a copy of the MPL was not distributed with this file, # You can obtain one at http://mozilla.org/MPL/2.0/. # -# For further information see http://www.genivi.org/. +# For further information see http://www.covesa.org/. ####### [Unit] -Description=GENIVI DLT system. Application to forward syslog messages to DLT, transfer system information, logs and files. +Description=COVESA DLT system. Application to forward syslog messages to DLT, transfer system information, logs and files. Documentation=man:dlt-system(1) man:dlt-system.conf(5) Wants=dlt.service diff --git a/systemd/dlt.service.cmake b/systemd/dlt.service.cmake index 920c81f8d..a19fa7e6d 100755 --- a/systemd/dlt.service.cmake +++ b/systemd/dlt.service.cmake @@ -3,18 +3,18 @@ # # Copyright (C) 2011-2015, BMW AG # -# This file is part of GENIVI Project DLT - Diagnostic Log and Trace. +# This file is part of COVESA Project DLT - Diagnostic Log and Trace. # # This Source Code Form is subject to the terms of the # Mozilla Public License (MPL), v. 2.0. # If a copy of the MPL was not distributed with this file, # You can obtain one at http://mozilla.org/MPL/2.0/. # -# For further information see http://www.genivi.org/. +# For further information see http://www.covesa.org/. ####### [Unit] -Description=GENIVI DLT logging daemon +Description=COVESA DLT logging daemon Documentation=man:dlt-daemon(1) man:dlt.conf(5) [Service] diff --git a/tests/dlt_env_ll_unit_test.cpp b/tests/dlt_env_ll_unit_test.cpp index 7f1a59e51..724cf3251 100644 --- a/tests/dlt_env_ll_unit_test.cpp +++ b/tests/dlt_env_ll_unit_test.cpp @@ -3,14 +3,14 @@ * * Copyright (C) 2015 Intel Corporation * - * This file is part of GENIVI Project DLT - Diagnostic Log and Trace. + * This file is part of COVESA Project DLT - Diagnostic Log and Trace. * * This Source Code Form is subject to the terms of the * Mozilla Public License (MPL), v. 2.0. * If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. * - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ /*! diff --git a/tests/dlt_test_receiver.c b/tests/dlt_test_receiver.c index 23e827c3f..85d55200d 100644 --- a/tests/dlt_test_receiver.c +++ b/tests/dlt_test_receiver.c @@ -3,14 +3,14 @@ * * Copyright (C) 2011-2015, BMW AG * - * This file is part of GENIVI Project DLT - Diagnostic Log and Trace. + * This file is part of COVESA Project DLT - Diagnostic Log and Trace. * * This Source Code Form is subject to the terms of the * Mozilla Public License (MPL), v. 2.0. * If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. * - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ /*! diff --git a/tests/gtest_dlt_common.cpp b/tests/gtest_dlt_common.cpp index 18830bed5..6a80f1142 100644 --- a/tests/gtest_dlt_common.cpp +++ b/tests/gtest_dlt_common.cpp @@ -3,14 +3,14 @@ * * Copyright (C) 2011-2015, BMW AG * - * This file is part of GENIVI Project DLT - Diagnostic Log and Trace. + * This file is part of COVESA Project DLT - Diagnostic Log and Trace. * * This Source Code Form is subject to the terms of the * Mozilla Public License (MPL), v. 2.0. * If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. * - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ /*! diff --git a/tests/gtest_dlt_daemon_common.cpp b/tests/gtest_dlt_daemon_common.cpp index 7935a3a40..f7c036f46 100644 --- a/tests/gtest_dlt_daemon_common.cpp +++ b/tests/gtest_dlt_daemon_common.cpp @@ -3,14 +3,14 @@ * * Copyright (C) 2011-2015, BMW AG * - * This file is part of GENIVI Project DLT - Diagnostic Log and Trace. + * This file is part of COVESA Project DLT - Diagnostic Log and Trace. * * This Source Code Form is subject to the terms of the * Mozilla Public License (MPL), v. 2.0. * If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. * - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ /*! diff --git a/tests/gtest_dlt_daemon_event_handler.cpp b/tests/gtest_dlt_daemon_event_handler.cpp index 8badc7869..029c31d40 100644 --- a/tests/gtest_dlt_daemon_event_handler.cpp +++ b/tests/gtest_dlt_daemon_event_handler.cpp @@ -5,14 +5,14 @@ * This code is developed by Advanced Driver Information Technology. * Copyright of Advanced Driver Information Technology, Bosch and DENSO. * - * This file is part of GENIVI Project DLT - Diagnostic Log and Trace. + * This file is part of COVESA Project DLT - Diagnostic Log and Trace. * * This Source Code Form is subject to the terms of the * Mozilla Public License (MPL), v. 2.0. * If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. * - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ /*! diff --git a/tests/gtest_dlt_daemon_gateway.cpp b/tests/gtest_dlt_daemon_gateway.cpp index a3ea510e3..b4336d88b 100644 --- a/tests/gtest_dlt_daemon_gateway.cpp +++ b/tests/gtest_dlt_daemon_gateway.cpp @@ -5,14 +5,14 @@ * This code is developed by Advanced Driver Information Technology. * Copyright of Advanced Driver Information Technology, Bosch and DENSO. * - * This file is part of GENIVI Project DLT - Diagnostic Log and Trace. + * This file is part of COVESA Project DLT - Diagnostic Log and Trace. * * This Source Code Form is subject to the terms of the * Mozilla Public License (MPL), v. 2.0. * If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. * - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ /*! diff --git a/tests/gtest_dlt_daemon_gateway.sh b/tests/gtest_dlt_daemon_gateway.sh index 185a662c0..c64a8d0f0 100755 --- a/tests/gtest_dlt_daemon_gateway.sh +++ b/tests/gtest_dlt_daemon_gateway.sh @@ -6,14 +6,14 @@ # This code is developed by Advanced Driver Information Technology. # Copyright of Advanced Driver Information Technology, Bosch and DENSO. # -# This file is part of GENIVI Project DLT - Diagnostic Log and Trace. +# This file is part of COVESA Project DLT - Diagnostic Log and Trace. # # This Source Code Form is subject to the terms of the # Mozilla Public License (MPL), v. 2.0. # If a copy of the MPL was not distributed with this file, # You can obtain one at http://mozilla.org/MPL/2.0/. # -# For further information see http://www.genivi.org/. +# For further information see http://www.covesa.org/. ################################################################################ ################################################################################ diff --git a/tests/gtest_dlt_daemon_multiple_files_logging.cpp b/tests/gtest_dlt_daemon_multiple_files_logging.cpp index 05b58f2cc..f7257ce69 100644 --- a/tests/gtest_dlt_daemon_multiple_files_logging.cpp +++ b/tests/gtest_dlt_daemon_multiple_files_logging.cpp @@ -3,14 +3,14 @@ * * Copyright (C) 2011-2015, BMW AG * - * This file is part of GENIVI Project DLT - Diagnostic Log and Trace. + * This file is part of COVESA Project DLT - Diagnostic Log and Trace. * * This Source Code Form is subject to the terms of the * Mozilla Public License (MPL), v. 2.0. * If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. * - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ /*! diff --git a/tests/gtest_dlt_user.cpp b/tests/gtest_dlt_user.cpp index 536c292dd..c94e49f86 100644 --- a/tests/gtest_dlt_user.cpp +++ b/tests/gtest_dlt_user.cpp @@ -3,14 +3,14 @@ * * Copyright (C) 2011-2015, BMW AG * - * This file is part of GENIVI Project DLT - Diagnostic Log and Trace. + * This file is part of COVESA Project DLT - Diagnostic Log and Trace. * * This Source Code Form is subject to the terms of the * Mozilla Public License (MPL), v. 2.0. * If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. * - * For further information see http://www.genivi.org/. + * For further information see http://www.covesa.org/. */ /*! diff --git a/tests/start_logstorage_test.sh b/tests/start_logstorage_test.sh index fde767982..18e02e223 100755 --- a/tests/start_logstorage_test.sh +++ b/tests/start_logstorage_test.sh @@ -6,14 +6,14 @@ # This code is developed by Advanced Driver Information Technology. # Copyright of Advanced Driver Information Technology, Bosch and DENSO. # -# This file is part of GENIVI Project DLT - Diagnostic Log and Trace. +# This file is part of COVESA Project DLT - Diagnostic Log and Trace. # # This Source Code Form is subject to the terms of the # Mozilla Public License (MPL), v. 2.0. # If a copy of the MPL was not distributed with this file, # You can obtain one at http://mozilla.org/MPL/2.0/. # -# For further information see http://www.genivi.org/. +# For further information see http://www.covesa.org/. ################################################################################ ################################################################################ diff --git a/tests/start_multinode_test.sh b/tests/start_multinode_test.sh index 6f7b7701b..ed2274180 100755 --- a/tests/start_multinode_test.sh +++ b/tests/start_multinode_test.sh @@ -6,14 +6,14 @@ # This code is developed by Advanced Driver Information Technology. # Copyright of Advanced Driver Information Technology, Bosch and DENSO. # -# This file is part of GENIVI Project DLT - Diagnostic Log and Trace. +# This file is part of COVESA Project DLT - Diagnostic Log and Trace. # # This Source Code Form is subject to the terms of the # Mozilla Public License (MPL), v. 2.0. # If a copy of the MPL was not distributed with this file, # You can obtain one at http://mozilla.org/MPL/2.0/. # -# For further information see http://www.genivi.org/. +# For further information see http://www.covesa.org/. ################################################################################ ################################################################################ diff --git a/testscripts/CMakeLists.txt b/testscripts/CMakeLists.txt index 6050b9461..f3eac93bc 100644 --- a/testscripts/CMakeLists.txt +++ b/testscripts/CMakeLists.txt @@ -3,14 +3,14 @@ # # Copyright (C) 2011-2015, BMW AG # -# This file is part of GENIVI Project DLT - Diagnostic Log and Trace. +# This file is part of COVESA Project DLT - Diagnostic Log and Trace. # # This Source Code Form is subject to the terms of the # Mozilla Public License (MPL), v. 2.0. # If a copy of the MPL was not distributed with this file, # You can obtain one at http://mozilla.org/MPL/2.0/. # -# For further information see http://www.genivi.org/. +# For further information see http://www.covesa.org/. ####### if(WITH_TESTSCRIPTS) diff --git a/testscripts/Meego/dlt-daemon.cmake b/testscripts/Meego/dlt-daemon.cmake index 8db30eb7e..bb60dedaa 100644 --- a/testscripts/Meego/dlt-daemon.cmake +++ b/testscripts/Meego/dlt-daemon.cmake @@ -5,14 +5,14 @@ # # Copyright (C) 2011-2015, BMW AG # -# This file is part of GENIVI Project DLT - Diagnostic Log and Trace. +# This file is part of COVESA Project DLT - Diagnostic Log and Trace. # # This Source Code Form is subject to the terms of the # Mozilla Public License (MPL), v. 2.0. # If a copy of the MPL was not distributed with this file, # You can obtain one at http://mozilla.org/MPL/2.0/. # -# For further information see http://www.genivi.org/. +# For further information see http://www.covesa.org/. ####### # Starts the DLT Daemon diff --git a/testscripts/Ubuntu/dlt-daemon.cmake b/testscripts/Ubuntu/dlt-daemon.cmake index b27c830cc..bcd1237c2 100644 --- a/testscripts/Ubuntu/dlt-daemon.cmake +++ b/testscripts/Ubuntu/dlt-daemon.cmake @@ -5,14 +5,14 @@ # # Copyright (C) 2011-2015, BMW AG # -# This file is part of GENIVI Project DLT - Diagnostic Log and Trace. +# This file is part of COVESA Project DLT - Diagnostic Log and Trace. # # This Source Code Form is subject to the terms of the # Mozilla Public License (MPL), v. 2.0. # If a copy of the MPL was not distributed with this file, # You can obtain one at http://mozilla.org/MPL/2.0/. # -# For further information see http://www.genivi.org/. +# For further information see http://www.covesa.org/. ####### ### BEGIN INIT INFO diff --git a/util/create_dlt_user_h.py b/util/create_dlt_user_h.py index b0d1eb16c..1adf3eec1 100755 --- a/util/create_dlt_user_h.py +++ b/util/create_dlt_user_h.py @@ -4,14 +4,14 @@ # Advanced Driver Information Technology Corporation, Robert Bosch GmbH, # Robert Bosch Car Multimedia GmbH and DENSO Corporation. # -# This file is part of GENIVI Project DLT - Diagnostic Log and Trace. +# This file is part of COVESA Project DLT - Diagnostic Log and Trace. # # This Source Code Form is subject to the terms of the # Mozilla Public License (MPL), v. 2.0. # If a copy of the MPL was not distributed with this file, # You can obtain one at http://mozilla.org/MPL/2.0/. # -# For further information see http://www.genivi.org/. +# For further information see http://www.covesa.org/. import pathlib import argparse diff --git a/util/create_dlt_version_h.py b/util/create_dlt_version_h.py index 1679f9351..957278327 100755 --- a/util/create_dlt_version_h.py +++ b/util/create_dlt_version_h.py @@ -4,14 +4,14 @@ # Advanced Driver Information Technology Corporation, Robert Bosch GmbH, # Robert Bosch Car Multimedia GmbH and DENSO Corporation. # -# This file is part of GENIVI Project DLT - Diagnostic Log and Trace. +# This file is part of COVESA Project DLT - Diagnostic Log and Trace. # # This Source Code Form is subject to the terms of the # Mozilla Public License (MPL), v. 2.0. # If a copy of the MPL was not distributed with this file, # You can obtain one at http://mozilla.org/MPL/2.0/. # -# For further information see http://www.genivi.org/. +# For further information see http://www.covesa.org/. import pathlib import subprocess import argparse From ae20488b75c55dd4dfc406285d53b276c9253d3e Mon Sep 17 00:00:00 2001 From: Gianfranco Costamagna Date: Wed, 2 Aug 2023 16:22:28 +0200 Subject: [PATCH 05/35] Update CMakeLists.txt: set required std version to gnu++14 (#504) New googletest 1.13.0 defaults to gnu++14, so makes this package FTBFS when building testsuite with this error: In file included from /usr/include/gtest/gtest-message.h:57, from /usr/include/gtest/gtest-assertion-result.h:46, from /usr/include/gtest/gtest.h:64, from /build/1st/dlt-daemon-2.18.9/tests/gtest_dlt_user.cpp:27: /usr/include/gtest/internal/gtest-port.h:270:2: error: #error C++ versions less than C++14 are not supported. 270 | #error C++ versions less than C++14 are not supported. | ^~~~~ Thanks Adrian Bunk for the report and the fix! --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 151d74170..858c9183e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -213,7 +213,7 @@ endif() add_compile_options( $<$:-std=gnu99> - $<$:-std=gnu++11> + $<$:-std=gnu++14> -Wall -Wextra # -pedantic From 774fe3118bd2c624c86b511d42e7668aaac875ed Mon Sep 17 00:00:00 2001 From: Minh Quang Luu <50074497+minminlittleshrimp@users.noreply.github.com> Date: Wed, 2 Aug 2023 21:46:42 +0700 Subject: [PATCH 06/35] cmake: Policy CMP0115 set to OLD behavior for dlt-daemon debian package (#510) Starting in CMake 3.20, CMake prefers all source files to have their extensions explicitly listed (.c,.cpp,etc). To keep dlt-daemon silently built, set this Policy to OLD. Signed-off-by: LUU QUANG MINH Co-authored-by: LUU QUANG MINH --- CMakeLists.txt | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index 858c9183e..6255004a7 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -13,7 +13,11 @@ # For further information see http://www.covesa.org/. ####### +# Set minimum Cmake version and setup policy behavior cmake_minimum_required(VERSION 3.3) +if(${CMAKE_VERSION} VERSION_GREATER "3.20" OR ${CMAKE_VERSION} VERSION_EQUAL "3.20") + cmake_policy(SET CMP0115 OLD) +endif() project(automotive-dlt VERSION 2.18.9) mark_as_advanced(CMAKE_BACKWARDS_COMPATIBILITY) From d3d4bc344ca2270d8d6eadb8852c124af801214a Mon Sep 17 00:00:00 2001 From: Alexander Mohr Date: Wed, 9 Aug 2023 11:21:48 +0200 Subject: [PATCH 07/35] fix usage of pthread_cond_timedwait (#491) * fix usage of pthread_cond_timedwait pthread_cond_timedwait has to be called with a locked mutex using an unlocked mutex is undefined behaviour although it works on many platforms Signed-off-by: Alexander Mohr Signed-off-by: Alexander Mohr * startup: check housekeeper thread every 500ms this commit makes sure that we do not wait for up to 10s if we missed the signal for the condition variable the first time Signed-off-by: Alexander Mohr * Remove unneccesary mutex log --------- Signed-off-by: Alexander Mohr Co-authored-by: Alexander Mohr Co-authored-by: michael-methner --- src/console/dlt-control-common.c | 12 +++++++++--- src/lib/dlt_user.c | 33 +++++++++++++++++++++----------- 2 files changed, 31 insertions(+), 14 deletions(-) diff --git a/src/console/dlt-control-common.c b/src/console/dlt-control-common.c index e869cc386..07cf7b679 100644 --- a/src/console/dlt-control-common.c +++ b/src/console/dlt-control-common.c @@ -565,12 +565,18 @@ int dlt_control_send_message(DltControlMsgBody *body, int timeout) pr_error("Sending message to daemon failed\n"); dlt_message_free(msg, get_verbosity()); free(msg); + + /* make sure the mutex is unlocked to prevent deadlocks */ + pthread_mutex_unlock(&answer_lock); return -1; } - /* If we timeout the lock is not taken back */ - if (!pthread_cond_timedwait(&answer_cond, &answer_lock, &t)) - pthread_mutex_unlock(&answer_lock); + /* + * When a timeouts occurs, pthread_cond_timedwait() + * shall nonetheless release and re-acquire the mutex referenced by mutex + */ + pthread_cond_timedwait(&answer_cond, &answer_lock, &t); + pthread_mutex_unlock(&answer_lock); /* Destroying the message */ dlt_message_free(msg, get_verbosity()); diff --git a/src/lib/dlt_user.c b/src/lib/dlt_user.c index ceeca680d..1aa83292d 100644 --- a/src/lib/dlt_user.c +++ b/src/lib/dlt_user.c @@ -4957,15 +4957,15 @@ void dlt_user_test_corrupt_message_size(int enable, int16_t size) int dlt_start_threads() { - struct timespec time_to_wait; + struct timespec time_to_wait, single_wait; struct timespec now; - int signal_status; + int signal_status = 1; atomic_bool dlt_housekeeper_running = false; /* * Configure the condition varibale to use CLOCK_MONOTONIC. * This makes sure we're protected against changes in the system clock - */ + */ pthread_condattr_t attr; pthread_condattr_init(&attr); pthread_condattr_setclock(&attr, CLOCK_MONOTONIC); @@ -4982,7 +4982,7 @@ int dlt_start_threads() clock_gettime(CLOCK_MONOTONIC, &now); /* wait at most 10s */ time_to_wait.tv_sec = now.tv_sec + 10; - time_to_wait.tv_nsec = 0; + time_to_wait.tv_nsec = now.tv_nsec; /* * wait until the house keeper is up and running @@ -4993,19 +4993,30 @@ int dlt_start_threads() * (spurious wakeup) * To protect against this, a while loop with a timeout is added * */ - while (!dlt_housekeeper_running - && now.tv_sec <= time_to_wait.tv_sec) { + while (!dlt_housekeeper_running + && now.tv_sec <= time_to_wait.tv_sec) { + + /* + * wait 500ms at a time + * this makes sure we don't block too long + * even if we missed the signal + */ + clock_gettime(CLOCK_MONOTONIC, &now); + single_wait.tv_sec = now.tv_sec; + single_wait.tv_nsec = now.tv_nsec + 500000000; + + // pthread_cond_timedwait has to be called on a locked mutex + pthread_mutex_lock(&dlt_housekeeper_running_mutex); signal_status = pthread_cond_timedwait( - &dlt_housekeeper_running_cond, - &dlt_housekeeper_running_mutex, - &time_to_wait); + &dlt_housekeeper_running_cond, + &dlt_housekeeper_running_mutex, + &single_wait); + pthread_mutex_unlock(&dlt_housekeeper_running_mutex); /* otherwise it might be a spurious wakeup, try again until the time is over */ if (signal_status == 0) { break; } - - clock_gettime(CLOCK_MONOTONIC, &now); } if (signal_status != 0 && !dlt_housekeeper_running) { From 96bc07198b0f94fe79846a8f7db8d934e10b406b Mon Sep 17 00:00:00 2001 From: Dinh Cong Toan Date: Tue, 12 Oct 2021 15:26:25 +0700 Subject: [PATCH 08/35] android: improve sepolicy android Adding policy for the path of internal dlt log. Signed-off-by: Dinh Cong Toan --- src/daemon/dlt-daemon.rc | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/daemon/dlt-daemon.rc b/src/daemon/dlt-daemon.rc index 6491081c1..6b9ce5356 100644 --- a/src/daemon/dlt-daemon.rc +++ b/src/daemon/dlt-daemon.rc @@ -5,3 +5,6 @@ service dlt-daemon /vendor/bin/dlt-daemon socket dlt stream 666 root root socket dlt-ctrl.sock stream 660 root root disabled + +on post-fs-data + mkdir /data/vendor/dlt 0775 root root From 0de225c7663c5dc1168bf4f8248518d08af5afbd Mon Sep 17 00:00:00 2001 From: Saya Sugiura Date: Mon, 18 Oct 2021 23:51:20 +0900 Subject: [PATCH 09/35] android: Remove duplicated contexts Same contexts were unregistered twice, hence removing them. Signed-off-by: Saya Sugiura --- src/android/dlt-logd-converter.cpp | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/android/dlt-logd-converter.cpp b/src/android/dlt-logd-converter.cpp index bdb648675..005705877 100644 --- a/src/android/dlt-logd-converter.cpp +++ b/src/android/dlt-logd-converter.cpp @@ -229,11 +229,8 @@ int main(int argc, char *argv[]) android_logger_list_free(logger_list); DLT_UNREGISTER_CONTEXT(dlt_ctx_krnl); - DLT_UNREGISTER_CONTEXT(dlt_ctx_secu); - DLT_UNREGISTER_CONTEXT(dlt_ctx_stat); DLT_UNREGISTER_CONTEXT(dlt_ctx_crsh); DLT_UNREGISTER_CONTEXT(dlt_ctx_syst); - DLT_UNREGISTER_CONTEXT(dlt_ctx_evnt); DLT_UNREGISTER_CONTEXT(dlt_ctx_rdio); DLT_UNREGISTER_CONTEXT(dlt_ctx_main); DLT_UNREGISTER_CONTEXT(dlt_ctx_self); From acf1099dfff3d85345cff2a9365d03b017b07e66 Mon Sep 17 00:00:00 2001 From: Saya Sugiura Date: Tue, 26 Oct 2021 15:45:08 +0900 Subject: [PATCH 10/35] doc: Use DLT in library Signed-off-by: Saya Sugiura --- doc/dlt_for_developers.md | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/doc/dlt_for_developers.md b/doc/dlt_for_developers.md index 355eb0309..b30e56489 100644 --- a/doc/dlt_for_developers.md +++ b/doc/dlt_for_developers.md @@ -10,6 +10,8 @@ Table of Contents 5. [DLT API Usage](#DLT-API-Usage) 6. [DLT injection messages](#DLT-Injection-Messages) 7. [Log level changed callback](#Log-level-changed-callback) +8. [Disable injection messages](#Disable-injection-messages) +9. [Use DLT in library](#Use-DLT-in-library) ## DLT Example Application @@ -989,6 +991,7 @@ context changed. The usage is similar to DLT\_REGISTER\_INJECTION\_CALLBACK. ``` DLT_REGISTER_LOG_LEVEL_CHANGED_CALLBACK(CONTEXT, CALLBACK) ``` + ## Disable injection messages An environment variable named `DLT_DISABLE_INJECTION_MSG_AT_USER` could be used in case @@ -1005,3 +1008,34 @@ To clear: ``` unset DLT_DISABLE_INJECTION_MSG_AT_USER ``` + +## Use DLT in library + +There are cases where a library wants to use DLT interface to output its log message. +In such case, applications and contexts can be registered using following way. + +### Application registration + +The library can check if an application is already registered or not by +`DLT_GET_APPID()` API. If returned application ID is not NULL, it can be considered +that application was already registered previously. If it's NULL, then application +can be registered. + +```Example +// Check if an application is already registered in this process +char appid[DLT_ID_SIZE]; +DLT_GET_APPID(&appid); +if (appid[0] != '\0') +{ + printf("Application is already registered with AppID=[%s]\n", appid); +} +else +{ + DLT_REGISTER_APP("APP", "Application for library xxx"); +} +``` + +### Context registration + +The same context ID can be used among different applications, so context can be +registered as usual. From 1870f133815789081ba2be84a8e3b08b053fc0cb Mon Sep 17 00:00:00 2001 From: Bui Nguyen Quoc Thanh Date: Mon, 29 Nov 2021 09:54:25 +0700 Subject: [PATCH 11/35] common: Fix dlt.conf parse The incorrect check of local_filename. If that is an array of characters, we should check the first character against 0 Signed-off-by: Bui Nguyen Quoc Thanh --- src/console/dlt-control-common.c | 8 ++++++-- src/console/dlt-control-common.h | 2 ++ src/console/dlt-control.c | 13 ++++++++----- 3 files changed, 16 insertions(+), 7 deletions(-) diff --git a/src/console/dlt-control-common.c b/src/console/dlt-control-common.c index 07cf7b679..6fae27c6d 100644 --- a/src/console/dlt-control-common.c +++ b/src/console/dlt-control-common.c @@ -75,7 +75,6 @@ #define DLT_CTRL_APID "DLTC" #define DLT_CTRL_CTID "DLTC" -#define DLT_DAEMON_DEFAULT_CTRL_SOCK_PATH "/tmp/dlt-ctrl.sock" /** @brief Analyze the daemon answer * @@ -98,6 +97,7 @@ static pthread_cond_t answer_cond = PTHREAD_COND_INITIALIZER; static int local_verbose; static char local_ecuid[DLT_CTRL_ECUID_LEN]; /* Name of ECU */ static int local_timeout; +static char local_filename[DLT_MOUNT_PATH_MAX]= {0}; /* Path to dlt.conf */ int get_verbosity(void) { @@ -181,7 +181,11 @@ int dlt_parse_config_param(char *config_id, char **config_data) *config_data = NULL; /* open configuration file */ - filename = CONFIGURATION_FILES_DIR "/dlt.conf"; + if (local_filename[0] != 0) { + filename = local_filename; + } else { + filename = CONFIGURATION_FILES_DIR "/dlt.conf"; + } pFile = fopen(filename, "r"); if (pFile != NULL) { diff --git a/src/console/dlt-control-common.h b/src/console/dlt-control-common.h index afd2577c7..fb1a67556 100644 --- a/src/console/dlt-control-common.h +++ b/src/console/dlt-control-common.h @@ -51,6 +51,8 @@ #define DLT_CTRL_DEFAULT_ECUID "ECU1" +#define DLT_DAEMON_DEFAULT_CTRL_SOCK_PATH "/tmp/dlt-ctrl.sock" + #define NANOSEC_PER_MILLISEC 1000000 #define NANOSEC_PER_SEC 1000000000 diff --git a/src/console/dlt-control.c b/src/console/dlt-control.c index c1bc25a3f..29990e213 100644 --- a/src/console/dlt-control.c +++ b/src/console/dlt-control.c @@ -494,7 +494,14 @@ int main(int argc, char *argv[]) { g_dltclient.mode = DLT_CLIENT_MODE_UNIX; g_dltclient.socketPath = NULL; - dlt_parse_config_param("ControlSocketPath", &g_dltclient.socketPath); + if (dlt_parse_config_param("ControlSocketPath", + &g_dltclient.socketPath) == DLT_RETURN_ERROR) { + /* Failed to read from conf, copy default */ + if (dlt_client_set_socket_path(&g_dltclient, DLT_DAEMON_DEFAULT_CTRL_SOCK_PATH) == -1) { + pr_error("set socket path didn't succeed\n"); + return -1; + } + } } else { g_dltclient.mode = DLT_CLIENT_MODE_TCP; @@ -508,8 +515,6 @@ int main(int argc, char *argv[]) return -1; } - - if (g_dltclient.servIP == 0) { /* no hostname selected, show usage and terminate */ fprintf(stderr, "ERROR: No hostname selected\n"); @@ -526,8 +531,6 @@ int main(int argc, char *argv[]) return -1; } - - if (g_dltclient.serialDevice == 0) { /* no serial device name selected, show usage and terminate */ fprintf(stderr, "ERROR: No serial device name specified\n"); From ae8d5b0874b2f932ba8c317c47a88bc531ec2375 Mon Sep 17 00:00:00 2001 From: Saya Sugiura Date: Tue, 26 Oct 2021 08:05:00 +0000 Subject: [PATCH 12/35] tests: Use env var in gateway gtest In order to use correct path to dlt-daemon, environment variable DLT_UT_DAEMON_PATH is introduced in gateway gtest Signed-off-by: Saya Sugiura Signed-off-by: mayaz --- tests/CMakeLists.txt | 14 +++++++------- tests/gtest_dlt_daemon_gateway.sh | 27 +++++++++++++++++++++++---- 2 files changed, 30 insertions(+), 11 deletions(-) diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index c07742aba..af4b60748 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -4,9 +4,9 @@ enable_testing() SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -isystem ${gtest_SOURCE_DIR}/include") SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -isystem ${gtest_SOURCE_DIR}/include -std=gnu++0x") -configure_file(${PROJECT_SOURCE_DIR}/tests/testfile.dlt ${PROJECT_BINARY_DIR}/tests COPYONLY) -configure_file(${PROJECT_SOURCE_DIR}/tests/testfilter.txt ${PROJECT_BINARY_DIR}/tests COPYONLY) -configure_file(${PROJECT_SOURCE_DIR}/tests/testfile_filetransfer.txt ${PROJECT_BINARY_DIR}/tests COPYONLY) +configure_file(${PROJECT_SOURCE_DIR}/tests/testfile.dlt ${CMAKE_CURRENT_BINARY_DIR} COPYONLY) +configure_file(${PROJECT_SOURCE_DIR}/tests/testfilter.txt ${CMAKE_CURRENT_BINARY_DIR} COPYONLY) +configure_file(${PROJECT_SOURCE_DIR}/tests/testfile_filetransfer.txt ${CMAKE_CURRENT_BINARY_DIR} COPYONLY) if("${GTEST_BOTH_LIBRARIES}" STREQUAL "") set(GTEST_LIBS gtest gtest_main) @@ -45,7 +45,7 @@ set(TARGET_LIST gtest_dlt_common foreach(target IN LISTS TARGET_LIST) set(target_SRCS ${target}) if(${target} STREQUAL "gtest_dlt_daemon_common") - set(target_SRCS ${target_SRCS} ../src/daemon/dlt_daemon_common.c) + set(target_SRCS ${target_SRCS} ${PROJECT_SOURCE_DIR}/src/daemon/dlt_daemon_common.c) endif() add_executable(${target} ${target_SRCS}) target_link_libraries(${target} ${DLT_LIBRARIES}) @@ -91,12 +91,12 @@ endforeach() # DLT control tests ##################### if(WITH_EXTENDED_FILTERING) - configure_file(${PROJECT_SOURCE_DIR}/tests/testfile_extended.dlt ${PROJECT_BINARY_DIR}/tests COPYONLY) - configure_file(${PROJECT_SOURCE_DIR}/tests/testfilter.json ${PROJECT_BINARY_DIR}/tests COPYONLY) + configure_file(${PROJECT_SOURCE_DIR}/tests/testfile_extended.dlt ${CMAKE_CURRENT_BINARY_DIR} COPYONLY) + configure_file(${PROJECT_SOURCE_DIR}/tests/testfilter.json ${CMAKE_CURRENT_BINARY_DIR} COPYONLY) + add_executable(gtest_dlt_json_filter gtest_dlt_json_filter.cpp) target_link_libraries(gtest_dlt_json_filter ${DLT_CONTROL_LIBRARIES}) add_test(NAME gtest_dlt_json_filter COMMAND gtest_dlt_json_filter) set_tests_properties(${target} PROPERTIES TIMEOUT "${seconds}") endif() - diff --git a/tests/gtest_dlt_daemon_gateway.sh b/tests/gtest_dlt_daemon_gateway.sh index c64a8d0f0..533078c35 100755 --- a/tests/gtest_dlt_daemon_gateway.sh +++ b/tests/gtest_dlt_daemon_gateway.sh @@ -40,6 +40,21 @@ getOSname() OS="`uname`" } +################################################################################ +# Function: -getDltDaemonPath() +# +# Description -Retrieves path to dlt-daemon +# +getDltDaemonPath() +{ + if [ -z "${DLT_UT_DAEMON_PATH}" ]; then + echo "WARNNG: env variable DLT_UT_DAEMON_PATH is not set" + DLT_DAEMON=`which dlt-daemon` + else + DLT_DAEMON="${DLT_UT_DAEMON_PATH}" + fi +} + ################################################################################ # # Function: -cleanup() @@ -92,10 +107,11 @@ cleanup() cd $tmpPath - PIDOF dlt-daemon + BASE=`basename $DLT_DAEMON` + PIDOF $BASE if [ $? -eq '0' ] then - KILLALL dlt-daemon + KILLALL $BASE if [ $? -eq '1' ] then echo "Failed to kill daemons" @@ -205,11 +221,12 @@ startDaemons() # checkDaemonStart() { + BASE=`basename $DLT_DAEMON` if [ "$OS" = "QNX" ]; then - slay -p dlt-daemon > /dev/null + slay -p $BASE > /dev/null total=$? else - total=`pgrep -c dlt-daemon` + total=`pgrep -c $BASE` fi if [ $total -ne '2' ]; then @@ -234,6 +251,8 @@ executeTests() getOSname +getDltDaemonPath + echo "Cleaning up dlt-daemon instances" cleanup From 06965d6bf724a3096c0c86b8809daf5e3a8b2628 Mon Sep 17 00:00:00 2001 From: Saya Sugiura Date: Fri, 28 Jan 2022 11:10:04 +0000 Subject: [PATCH 13/35] daemon: Print errno on failure Signed-off-by: Saya Sugiura --- src/daemon/dlt_daemon_unix_socket.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/daemon/dlt_daemon_unix_socket.c b/src/daemon/dlt_daemon_unix_socket.c index 06844be2f..1bdfeac6b 100644 --- a/src/daemon/dlt_daemon_unix_socket.c +++ b/src/daemon/dlt_daemon_unix_socket.c @@ -151,12 +151,14 @@ int dlt_daemon_unix_socket_open(int *sock, char *sock_path, int type, int mask) old_mask = umask(mask); if (bind(*sock, (struct sockaddr *)&addr, sizeof(addr)) == -1) { - dlt_log(LOG_WARNING, "unix socket: bind() error"); + dlt_vlog(LOG_WARNING, "%s: bind() error (%s)\n", __func__, + strerror(errno)); return -1; } if (listen(*sock, 1) == -1) { - dlt_log(LOG_WARNING, "unix socket: listen error"); + dlt_vlog(LOG_WARNING, "%s: listen error (%s)\n", __func__, + strerror(errno)); return -1; } From 552d9f90dc15e0beff045bf5e572b23aa8150d13 Mon Sep 17 00:00:00 2001 From: Bui Nguyen Quoc Thanh Date: Wed, 20 Apr 2022 16:55:36 +0700 Subject: [PATCH 14/35] daemon: Remove unnecessary semaphore Signed-off-by: Bui Nguyen Quoc Thanh --- src/daemon/dlt-daemon.c | 6 ------ src/daemon/dlt_daemon_client.c | 29 ++++++++--------------------- src/daemon/dlt_daemon_common.c | 1 - src/daemon/dlt_daemon_common.h | 14 ++------------ 4 files changed, 10 insertions(+), 40 deletions(-) diff --git a/src/daemon/dlt-daemon.c b/src/daemon/dlt-daemon.c index 4fa4d3f7c..b5b889429 100644 --- a/src/daemon/dlt-daemon.c +++ b/src/daemon/dlt-daemon.c @@ -1490,12 +1490,6 @@ int dlt_daemon_local_init_p2(DltDaemon *daemon, DltDaemonLocal *daemon_local, in if (daemon_local->flags.sendMessageTime) daemon->timingpackets = 1; - /* Binary semaphore for thread */ - if (sem_init(&dlt_daemon_mutex, 0, 1) == -1) { - dlt_log(LOG_ERR, "Could not initialize binary semaphore\n"); - return -1; - } - /* Get ECU version info from a file. If it fails, use dlt_version as fallback. */ if (dlt_daemon_local_ecu_version_init(daemon, daemon_local, daemon_local->flags.vflag) < 0) { daemon->ECUVersionString = malloc(DLT_DAEMON_TEXTBUFSIZE); diff --git a/src/daemon/dlt_daemon_client.c b/src/daemon/dlt_daemon_client.c index 19292b97d..5376f7cfc 100644 --- a/src/daemon/dlt_daemon_client.c +++ b/src/daemon/dlt_daemon_client.c @@ -133,15 +133,12 @@ static int dlt_daemon_client_send_all_multiple(DltDaemon *daemon, continue; } - DLT_DAEMON_SEM_LOCK(); - ret = dlt_connection_send_multiple(temp, data1, size1, data2, size2, daemon->sendserialheader); - DLT_DAEMON_SEM_FREE(); if ((ret != DLT_DAEMON_ERROR_OK) && (DLT_CONNECTION_CLIENT_MSG_TCP == temp->type)) { @@ -184,26 +181,19 @@ int dlt_daemon_client_send(int sock, if ((sock != DLT_DAEMON_SEND_TO_ALL) && (sock != DLT_DAEMON_SEND_FORCE)) { /* Send message to specific socket */ if (isatty(sock)) { - DLT_DAEMON_SEM_LOCK(); - - if ((ret = dlt_daemon_serial_send(sock, data1, size1, data2, size2, (char) daemon->sendserialheader))) { - DLT_DAEMON_SEM_FREE(); + if ((ret = + dlt_daemon_serial_send(sock, data1, size1, data2, size2, + daemon->sendserialheader))) { dlt_vlog(LOG_WARNING, "%s: serial send dlt message failed\n", __func__); return ret; } - - DLT_DAEMON_SEM_FREE(); - } - else { - DLT_DAEMON_SEM_LOCK(); - - if ((ret = dlt_daemon_socket_send(sock, data1, size1, data2, size2, (char) daemon->sendserialheader))) { - DLT_DAEMON_SEM_FREE(); + } else { + if ((ret = + dlt_daemon_socket_send(sock, data1, size1, data2, size2, + daemon->sendserialheader))) { dlt_vlog(LOG_WARNING, "%s: socket send dlt message failed\n", __func__); return ret; } - - DLT_DAEMON_SEM_FREE(); } return DLT_DAEMON_ERROR_OK; @@ -275,11 +265,8 @@ int dlt_daemon_client_send(int sock, ((daemon->state == DLT_DAEMON_STATE_BUFFER) || (daemon->state == DLT_DAEMON_STATE_SEND_BUFFER) || (daemon->state == DLT_DAEMON_STATE_BUFFER_FULL))) { if (daemon->state != DLT_DAEMON_STATE_BUFFER_FULL) { - DLT_DAEMON_SEM_LOCK(); /* Store message in history buffer */ - ret = dlt_buffer_push3(&(daemon->client_ringbuffer), data1, (unsigned int) size1, data2, (unsigned int) size2, 0, 0); - DLT_DAEMON_SEM_FREE(); - + ret = dlt_buffer_push3(&(daemon->client_ringbuffer), data1, size1, data2, size2, 0, 0); if (ret < DLT_RETURN_OK) { dlt_daemon_change_state(daemon, DLT_DAEMON_STATE_BUFFER_FULL); } diff --git a/src/daemon/dlt_daemon_common.c b/src/daemon/dlt_daemon_common.c index 4b5120c02..7820d1fa0 100644 --- a/src/daemon/dlt_daemon_common.c +++ b/src/daemon/dlt_daemon_common.c @@ -87,7 +87,6 @@ #include "dlt_daemon_serial.h" char *app_recv_buffer = NULL; /* pointer to receiver buffer for application msges */ -sem_t dlt_daemon_mutex; static int dlt_daemon_cmp_apid(const void *m1, const void *m2) { diff --git a/src/daemon/dlt_daemon_common.h b/src/daemon/dlt_daemon_common.h index 85eb5faec..548d41657 100644 --- a/src/daemon/dlt_daemon_common.h +++ b/src/daemon/dlt_daemon_common.h @@ -91,18 +91,8 @@ extern "C" { # define DLT_DAEMON_RINGBUFFER_MAX_SIZE 10000000/**< Ring buffer size for storing log messages while no client is connected */ # define DLT_DAEMON_RINGBUFFER_STEP_SIZE 500000/**< Ring buffer size for storing log messages while no client is connected */ -# define DLT_DAEMON_SEND_TO_ALL -3/**< Constant value to identify the command "send to all" */ -# define DLT_DAEMON_SEND_FORCE -4/**< Constant value to identify the command "send force to all" */ - -/* Use a semaphore or mutex from your OS to prevent concurrent access to the DLT buffer. */ - -#define DLT_DAEMON_SEM_LOCK() do{\ - while ((sem_wait(&dlt_daemon_mutex) == -1) && (errno == EINTR)) \ - continue; /* Restart if interrupted */ \ - } while(false) - -#define DLT_DAEMON_SEM_FREE() { sem_post(&dlt_daemon_mutex); } -extern sem_t dlt_daemon_mutex; +#define DLT_DAEMON_SEND_TO_ALL -3 /**< Constant value to identify the command "send to all" */ +#define DLT_DAEMON_SEND_FORCE -4 /**< Constant value to identify the command "send force to all" */ /* UDPMulticart Default IP and Port */ # ifdef UDP_CONNECTION_SUPPORT From eedb8ebfaa9a3253430a02faf14ffe03e06bbe55 Mon Sep 17 00:00:00 2001 From: LUU QUANG MINH Date: Wed, 1 Jun 2022 19:34:40 +0700 Subject: [PATCH 15/35] android: Add jsoncpp lib for dlt-logd-converter Add jsoncpp lib to Android.bp Signed-off-by: LUU QUANG MINH --- Android.bp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Android.bp b/Android.bp index c1061a2fa..14af6b911 100644 --- a/Android.bp +++ b/Android.bp @@ -195,8 +195,12 @@ cc_binary { shared_libs: [ "libdlt", "liblog", + "libjsoncpp", + ], + include_dirs: [ + "system/logging/liblog/include", + "external/jsoncpp/include", ], } // vim: ft=python - From b627b4c69c32c3b10c1d88aca3262135f4a31c1c Mon Sep 17 00:00:00 2001 From: LUU QUANG MINH Date: Wed, 1 Jun 2022 19:40:14 +0700 Subject: [PATCH 16/35] android: Update md file for dlt-logd-converter Signed-off-by: LUU QUANG MINH --- doc/dlt-logd-converter.md | 93 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 93 insertions(+) create mode 100644 doc/dlt-logd-converter.md diff --git a/doc/dlt-logd-converter.md b/doc/dlt-logd-converter.md new file mode 100644 index 000000000..19721c661 --- /dev/null +++ b/doc/dlt-logd-converter.md @@ -0,0 +1,93 @@ +# dlt-logd-converter + +Android specific logging features of dlt are managed by the ```dlt-logd-converter``` process. +It currently contains the message forwarder from logd buffer to DLT. + +The application listens to the system logs on Android (logd) and sends them to +DLT. The prerequisite is that dlt-daemon is already started and running. +dlt-logd-converter loads by default the configuration file ```/vendor/etc/dlt-logd-converter.conf```. + +To change the log level, use application ID and context ID set in configuration +file. ```DLT_INITIAL_LOG_LEVEL``` can be set on startup phase, or control +message can be sent from DLT client (e.g. dlt-control, DLT Viewer) at runtime. +Refer to [dlt_for_developers.md](dlt_for_developers.md) for more detail. + + +## Usage + +```bash +dlt-logd-converter [-h] [-c FILENAME] +``` + +-h + +: Display a short help text. + +-c + +: Load an alternative configuration file. By default the configuration file + */vendor/etc/dlt-logd-converter.conf* is loaded. + + +Non zero is returned in case of failure. + + +## Configuration + +By default, the configuration is loaded from */vendor/etc/dlt-logd-converter.conf*. It +contains a few basic options: + +- *ApplicationID*: this Android system log forwarder will have this applicationn ID +and appear on DLT client. Default value is **LOGD**. + +- *ContextID*: the context ID of the above application to appear on DLT client. +Default value is **LOGF**. + +- *AndroidLogdJSONpath*: the JSON file for MAIN buffer app logs should be looked up at +a defined path to use the context ID extension feature. If not found, the primitive context ID +**MAIN** is applied for all. Default path is */vendor/etc/dlt-logdctxt.json*. + +- *AndroidLogdContextID*: If the JSON path is found, but applications are not listed in JSON file, +default context ID is **OTHE**. + +### Log level mapping + +As the severity levels on Android logs are different from DLT Log Level, the below table shows how they're converted from the former to the latter. + + +| Android System Log Level | DLT Log Level | +|--------------------------|--------------------| +| ANDROID\_LOG\_DEFAULT | DLT\_LOG\_DEFAULT | +| ANDROID\_LOG\_UNKNOWN | DLT\_LOG\_DEFAULT | +| ANDROID\_LOG\_SILENT | DLT\_LOG\_OFF | +| ANDROID\_LOG\_FATAL | DLT\_LOG\_FATAL | +| ANDROID\_LOG\_ERROR | DLT\_LOG\_ERROR | +| ANDROID\_LOG\_WARN | DLT\_LOG\_WARN | +| ANDROID\_LOG\_INFO | DLT\_LOG\_INFO | +| ANDROID\_LOG\_DEBUG | DLT\_LOG\_DEBUG | +| ANDROID\_LOG\_VERBOSE | DLT\_LOG\_VERBOSE | + + +### Context Mapping + +The json file dlt-logdctxt.json can be used to map android tags to dlt-contexts. + +#### Example + +Here is an example that sets a mapping from the tag "usbcore" to the DLT context "USBC", +and the tag "dummy_hcd.0" to the DLT Context "DUMM". +The description field is in the registration with libdlt. + +```python +{ + "USBC": { + "tag": "usbcore", + "description": "" + }, + "DUMM": { + "tag": "dummy_hcd.0", + "description": "" + } +} +``` +For the tags that are not listed, the mapping context ID should all be "OTHE". From a2007807aaf661042fdfed43e0e3cd56f854a7af Mon Sep 17 00:00:00 2001 From: LUU QUANG MINH Date: Wed, 1 Jun 2022 19:43:47 +0700 Subject: [PATCH 17/35] android: dlt-logd-converter enhancement for Android tags + Construct functions for json parsing and json tag matching + Create conf file + Add an example of json file Signed-off-by: LUU QUANG MINH --- src/android/dlt-logd-converter.conf | 18 ++ src/android/dlt-logd-converter.cpp | 385 +++++++++++++++++++++++++--- src/android/dlt-logdctxt.json | 19 ++ 3 files changed, 389 insertions(+), 33 deletions(-) create mode 100644 src/android/dlt-logd-converter.conf create mode 100644 src/android/dlt-logdctxt.json diff --git a/src/android/dlt-logd-converter.conf b/src/android/dlt-logd-converter.conf new file mode 100644 index 000000000..190f141c6 --- /dev/null +++ b/src/android/dlt-logd-converter.conf @@ -0,0 +1,18 @@ +# Configuration file of dlt-logd-converter +######################################################################## +# General configuration +######################################################################## + +# The common application ID for Android native applications to appear on DLT client (Default: LOGD) +ApplicationID = LOGD + +# The common context ID for Android native applications to appear on DLT client (Default: LOGF) +ContextID = LOGF + +# Path for JSON file (Default: /vendor/etc/dlt-logdctxt.json) +AndroidLogdJSONpath = /vendor/etc/dlt-logdctxt.json + +# The common context ID for the case where the JSON path is found, +# but applications are not listed in JSON file (Default: OTHE) +AndroidLogdContextID = OTHE + diff --git a/src/android/dlt-logd-converter.cpp b/src/android/dlt-logd-converter.cpp index 005705877..bb1043fe9 100644 --- a/src/android/dlt-logd-converter.cpp +++ b/src/android/dlt-logd-converter.cpp @@ -1,20 +1,42 @@ /** - * @licence app begin@ - * Copyright (C) 2019 Advanced Driver Information Technology. + * Copyright (C) 2019-2022 Advanced Driver Information Technology. * This code is developed by Advanced Driver Information Technology. * Copyright of Advanced Driver Information Technology, Bosch and DENSO. * - * DLT logd converter: Retrieve log entries from logd and forward them to DLT. + * dlt-logd-converter : Retrieve log entries from logd and forward them to DLT. * * \copyright * This Source Code Form is subject to the terms of the * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with * this file, You can obtain one at http://mozilla.org/MPL/2.0/. * - * \file: dlt-logd-convert + * + * \Author Luu Quang Minh ADIT 2022 + * + * \file: dlt-logd-converter.cpp * For further information see http://www.covesa.org/. - * @licence end@ - */ + **/ + +/******************************************************************************* +** ** +** SRC-MODULE: dlt-logd-converter.cpp ** +** ** +** TARGET : ANDROID ** +** ** +** PROJECT : DLT ** +** ** +** AUTHOR : Minh.LuuQuang@vn.bosch.com ** +** ** +** PURPOSE : Retrieve log entries from logd and forward them to DLT. ** +** ** +** REMARKS : ** +** ** +** PLATFORM DEPENDANT [yes/no]: yes ** +** ** +** TO BE CHANGED BY USER [yes/no]: no ** +** ** +*******************************************************************************/ + #include #include #include @@ -23,8 +45,15 @@ #include +#include +#include +#include +#include +#include #include +using namespace std; + DLT_DECLARE_CONTEXT(dlt_ctx_self) DLT_DECLARE_CONTEXT(dlt_ctx_main) DLT_DECLARE_CONTEXT(dlt_ctx_rdio) @@ -34,15 +63,259 @@ DLT_DECLARE_CONTEXT(dlt_ctx_crsh) DLT_DECLARE_CONTEXT(dlt_ctx_stat) /* Binary Buffer */ DLT_DECLARE_CONTEXT(dlt_ctx_secu) /* Binary Buffer */ DLT_DECLARE_CONTEXT(dlt_ctx_krnl) +DLT_DECLARE_CONTEXT(dlt_ctx_othe) + +/* MACRO */ +#define CONFIGURATION_FILE_DIR "/vendor/etc/dlt-logd-converter.conf" +#define JSON_FILE_DIR "/vendor/etc/dlt-logdctxt.json" +#define MAX_LINE 1024 +/* Global variables and data structures */ +typedef struct +{ + char *appID; + char *ctxID; + char *json_file_dir; + char *default_ctxID; + char *conf_file_dir; +} dlt_logd_configuration; + +static dlt_logd_configuration *logd_conf = nullptr; volatile sig_atomic_t exit_parser_loop = false; +static unordered_map map_ctx_json; +bool json_is_available = false; + +/** + * Print manual page for instruction. + */ +static void usage(char *prog_name) +{ + char version[255]; + dlt_get_version(version, 255); + + cout << "Usage: " << prog_name << " [-h] [-c FILENAME]" << endl; + cout << "Application to manage Android logs." << endl; + cout << "Format and forward Android messages from ANDROID to DLT." << endl; + cout << version << endl; + cout << "Options:" << endl; + cout << " -h Display a short help text." << endl; + cout << " -c filename Use an alternative configuration file." << endl; + cout << " Default: " << CONFIGURATION_FILE_DIR << endl; +} + +/** + * Initialize configuration to default values. + */ +static int init_configuration() +{ + logd_conf = new dlt_logd_configuration; + if (logd_conf == nullptr) { + cerr << "Fail to allocate, out of memory!" << endl; + return -1; + } + logd_conf->appID = strdup("LOGD"); + logd_conf->ctxID = strdup("LOGF"); + logd_conf->json_file_dir = strdup(JSON_FILE_DIR); + logd_conf->default_ctxID = strdup("OTHE"); + logd_conf->conf_file_dir = strdup(CONFIGURATION_FILE_DIR); + return 0; +} + +/** + * Read command line options and set the values in provided structure + */ +static int read_command_line(int argc, char *argv[]) +{ + int opt; + while ((opt = getopt(argc, argv, "hc:")) != -1) { + switch (opt) { + case 'h': + { + usage(argv[0]); + exit(0); + return -1; + } + case 'c': + { + if (logd_conf->conf_file_dir) { + delete logd_conf->conf_file_dir; + logd_conf->conf_file_dir = nullptr; + } + logd_conf->conf_file_dir = new char [strlen(optarg)+1]; + strcpy(logd_conf->conf_file_dir, optarg); + break; + } + default: + { + usage(argv[0]); + return -1; + } + } + } + return 0; +} + +/** + * Read options from the configuration file + */ +static int load_configuration_file(const char *file_name) +{ + ifstream file(file_name); + char *token; + string pattern; + + if (!file.is_open()) { + DLT_LOG(dlt_ctx_self, DLT_LOG_WARN, + DLT_STRING("dlt-logd-converter could not open cofiguration file."), + DLT_STRING("Initial values applied.")); + cout << "Configuration file could not be opened, inital values applied" << endl; + return -1; + } + + while (!file.eof()) { + getline(file, pattern); + if (pattern.size() == 0) { + continue; + } + if (pattern[0] != '#') { + token = strtok(&pattern[0], " \t="); + if (strcmp(token, "ApplicationID") == 0) { + if (logd_conf->appID) { + delete logd_conf->appID; + } + token = strtok(nullptr, " \t="); + logd_conf->appID = strndup(token, DLT_ID_SIZE); + } + else if (strcmp(token, "ContextID") == 0) { + if (logd_conf->ctxID) { + delete logd_conf->ctxID; + } + token = strtok(NULL, " \t="); + logd_conf->ctxID = strndup(token, DLT_ID_SIZE); + } + else if (strcmp(token, "AndroidLogdJSONpath") == 0) { + if (logd_conf->json_file_dir) { + delete logd_conf->json_file_dir; + } + token = strtok(NULL, " \t="); + logd_conf->json_file_dir = strndup(token, MAX_LINE); + } + else if (strcmp(token, "AndroidLogdContextID") == 0) { + if (logd_conf->default_ctxID) { + delete logd_conf->default_ctxID; + } + token = strtok(NULL, " \t="); + logd_conf->default_ctxID = strndup(token, DLT_ID_SIZE); + } + } + } + file.close(); + return 0; +} + +static void clean_mem() +{ + if (logd_conf->appID) { + delete logd_conf->appID; + logd_conf->appID = nullptr; + } + if (logd_conf->ctxID) { + delete logd_conf->ctxID; + logd_conf->ctxID = nullptr; + } + if (logd_conf->json_file_dir) { + delete logd_conf->json_file_dir; + logd_conf->json_file_dir = nullptr; + } + if (logd_conf->default_ctxID) { + delete logd_conf->default_ctxID; + logd_conf->default_ctxID = nullptr; + } + if (logd_conf->conf_file_dir) { + delete logd_conf->conf_file_dir; + logd_conf->conf_file_dir = nullptr; + } + if (logd_conf) { + delete logd_conf; + logd_conf = nullptr; + } + if (json_is_available) { + for (auto &map_malloc: map_ctx_json) { + delete map_malloc.second; + map_malloc.second = nullptr; + } + map_ctx_json.clear(); + } +} + +/** + * Parses data from a json file into an internal data + * structure and do registration with the new ctxID. + */ +static void json_parser() +{ + Json::Value console = Json::nullValue; + Json::CharReaderBuilder builder; + string errs; + ifstream file(logd_conf->json_file_dir); + if (parseFromStream(builder, file, &console, &errs)) { + json_is_available = true; + } + + if (json_is_available) { + Json::Value::iterator iter; + DLT_REGISTER_CONTEXT(dlt_ctx_othe, logd_conf->default_ctxID, ""); + + for (iter = console.begin(); iter != console.end(); ++iter) { + string json_ctxID = iter.key().asString(); + string json_tag = (*iter)["tag"].asString(); + string json_description = (*iter)["description"].asString(); + + DltContext *ctx = new DltContext(); + auto ret = map_ctx_json.emplace(json_tag, ctx); + if (!ret.second) { + DLT_LOG(dlt_ctx_self, DLT_LOG_WARN, + DLT_STRING(json_tag.c_str()), + DLT_STRING("is duplicated, please check the json file.")); + } + DLT_REGISTER_CONTEXT(*(ret.first->second), + json_ctxID.c_str(), + json_description.c_str()); + } + } + file.close(); +} + +/** + * Doing tag matching in a loop from first + * elementof json vector to the end of the list. + */ +static DltContext* find_tag_in_json(const char *tag) +{ + string tag_str(tag); + auto search = map_ctx_json.find(tag_str); + if (search == map_ctx_json.end()) { + DLT_LOG(dlt_ctx_self, DLT_LOG_VERBOSE, + DLT_STRING(tag), + DLT_STRING("could not be found. Apply default contextID:"), + DLT_STRING(logd_conf->default_ctxID)); + return &(dlt_ctx_othe); + } + else { + DLT_LOG(dlt_ctx_self, DLT_LOG_VERBOSE, + DLT_STRING("Tag found and applied:"), + DLT_STRING(tag)); + return search->second; + } +} static inline struct logger *init_logger(struct logger_list *logger_list, log_id_t log_id) { struct logger *logger; logger = android_logger_open(logger_list, log_id); if (logger == nullptr) { - DLT_LOG(dlt_ctx_self, DLT_LOG_WARN, DLT_STRING("could not open logd buffer id="), DLT_INT64(log_id)); + DLT_LOG(dlt_ctx_self, DLT_LOG_WARN, + DLT_STRING("Could not open logd buffer ID = "), DLT_INT64(log_id)); } return logger; } @@ -52,7 +325,7 @@ static struct logger_list *init_logger_list(bool skip_binary_buffers) struct logger_list *logger_list; logger_list = android_logger_list_alloc(O_RDONLY, 0, 0); if (logger_list == nullptr) { - DLT_LOG(dlt_ctx_self, DLT_LOG_FATAL, DLT_STRING("could not allocate logger list")); + DLT_LOG(dlt_ctx_self, DLT_LOG_FATAL, DLT_STRING("Could not allocate logger list")); return nullptr; } @@ -142,6 +415,7 @@ static int logd_parser_loop(struct logger_list *logger_list) { struct log_msg log_msg; int ret; + DltContext *ctx = nullptr; DLT_LOG(dlt_ctx_self, DLT_LOG_VERBOSE, DLT_STRING("Entering parsing loop")); @@ -152,32 +426,40 @@ static int logd_parser_loop(struct logger_list *logger_list) break; } continue; - } else if (ret == -EINVAL || ret == -ENOMEM || ret == -ENODEV || ret == -EIO) { - DLT_LOG(dlt_ctx_self, DLT_LOG_FATAL, DLT_STRING("Could not cannot retrieve logs, permanent error="), DLT_INT32(ret)); + } + else if (ret == -EINVAL || ret == -ENOMEM || ret == -ENODEV || ret == -EIO) { + DLT_LOG(dlt_ctx_self, DLT_LOG_FATAL, + DLT_STRING("Could not retrieve logs, permanent error="), DLT_INT32(ret)); return ret; - } else if (ret <= 0) { - DLT_LOG(dlt_ctx_self, DLT_LOG_ERROR, DLT_STRING("android_logger_list_read unexpected return="), DLT_INT32(ret)); + } + else if (ret <= 0) { + DLT_LOG(dlt_ctx_self, DLT_LOG_ERROR, + DLT_STRING("android_logger_list_read unexpected return="), DLT_INT32(ret)); return ret; } - DltContext *ctx = nullptr; - ctx = get_log_context_from_log_msg(&log_msg); - - DltLogLevelType log_level; - log_level = get_log_level_from_log_msg(&log_msg); - /* Look into system/core/liblog/logprint.c for buffer format. "\0\0" */ const char *tag = ""; - const char *message= ""; - if(log_msg.entry.len > 1) - tag = log_msg.msg() + 1; - if (log_msg.entry.len > 1 + strlen(tag) + 1) + const char *message = ""; + if (log_msg.entry.len > 1) { + tag = log_msg.msg() + 1; + } + if (log_msg.entry.len > 1 + strlen(tag) + 1) { message = tag + strlen(tag) + 1; + } + /* Find tag in JSON file, apply new contextID if available */ + if ((log_msg.id() == LOG_ID_MAIN) && (json_is_available)) { + ctx = find_tag_in_json(tag); + } + else { + ctx = get_log_context_from_log_msg(&log_msg); + } + + DltLogLevelType log_level = get_log_level_from_log_msg(&log_msg); - uint32_t ts; - ts = get_timestamp_from_log_msg(&log_msg); + uint32_t ts = get_timestamp_from_log_msg(&log_msg); /* Binary buffers are not supported by DLT_STRING DLT_RAW would need the message length */ DLT_LOG_TS(*ctx, log_level, ts, @@ -197,20 +479,46 @@ int main(int argc, char *argv[]) (void) argc; (void) argv; bool skip_binary_buffers = true; + if (init_configuration() < 0) { + cerr << "dlt-logd-converter could not allocate memory." << endl; + return -1; + } + if (read_command_line(argc, argv) < 0) { + cerr << "Failed to read command line!" << endl; + return -1; + } + if (load_configuration_file(logd_conf->conf_file_dir) < 0) { + cout << "No configuration file found, use default values!" << endl; + } - DLT_REGISTER_APP("LOGD", "logd -> dlt adapter"); - DLT_REGISTER_CONTEXT(dlt_ctx_self, "LOGF", "logd retriever"); - DLT_REGISTER_CONTEXT(dlt_ctx_main, "MAIN", "logd type: main"); + DLT_REGISTER_APP(logd_conf->appID, "logd -> dlt adapter"); + DLT_REGISTER_CONTEXT(dlt_ctx_self, logd_conf->ctxID, "logd retriever"); DLT_REGISTER_CONTEXT(dlt_ctx_rdio, "RDIO", "logd type: rdio"); DLT_REGISTER_CONTEXT(dlt_ctx_syst, "SYST", "logd type: syst"); DLT_REGISTER_CONTEXT(dlt_ctx_crsh, "CRSH", "logd type: crsh"); DLT_REGISTER_CONTEXT(dlt_ctx_krnl, "KRNL", "logd type: krnl"); - if(!skip_binary_buffers){ + if (!skip_binary_buffers) { DLT_REGISTER_CONTEXT(dlt_ctx_evnt, "EVNT", "logd type: evnt"); DLT_REGISTER_CONTEXT(dlt_ctx_stat, "STAT", "logd type: stat"); DLT_REGISTER_CONTEXT(dlt_ctx_secu, "SECU", "logd type: secu"); } + /* Parse json data into internal data structure and do registration */ + json_parser(); + if (json_is_available) { + DLT_LOG(dlt_ctx_self, DLT_LOG_INFO, + DLT_STRING("Found JSON file at "), + DLT_STRING(logd_conf->json_file_dir), + DLT_STRING(". Extension is ON!")); + } + else { + DLT_LOG(dlt_ctx_self, DLT_LOG_INFO, + DLT_STRING("No JSON file available at "), + DLT_STRING(logd_conf->json_file_dir); + DLT_STRING(". Extension is OFF!")); + DLT_REGISTER_CONTEXT(dlt_ctx_main, "MAIN", "logd type: main"); + } + struct sigaction act; act.sa_handler = signal_handler; sigemptyset(&act.sa_mask); @@ -220,11 +528,14 @@ int main(int argc, char *argv[]) struct logger_list *logger_list; /* Binary buffers are currently not supported */ logger_list = init_logger_list(skip_binary_buffers); - if (logger_list == nullptr) + if (logger_list == nullptr) { return EXIT_FAILURE; + } int ret; - ret = logd_parser_loop(logger_list); /* Main loop */ + + /* Main loop */ + ret = logd_parser_loop(logger_list); android_logger_list_free(logger_list); @@ -232,15 +543,23 @@ int main(int argc, char *argv[]) DLT_UNREGISTER_CONTEXT(dlt_ctx_crsh); DLT_UNREGISTER_CONTEXT(dlt_ctx_syst); DLT_UNREGISTER_CONTEXT(dlt_ctx_rdio); - DLT_UNREGISTER_CONTEXT(dlt_ctx_main); DLT_UNREGISTER_CONTEXT(dlt_ctx_self); - if(!skip_binary_buffers){ + if (!skip_binary_buffers) { DLT_UNREGISTER_CONTEXT(dlt_ctx_evnt); DLT_UNREGISTER_CONTEXT(dlt_ctx_stat); DLT_UNREGISTER_CONTEXT(dlt_ctx_secu); } + if (json_is_available) { + DLT_UNREGISTER_CONTEXT(dlt_ctx_othe); + for (auto &tag_map: map_ctx_json) { + DLT_UNREGISTER_CONTEXT(*(tag_map.second)); + } + } + else { + DLT_UNREGISTER_CONTEXT(dlt_ctx_main); + } DLT_UNREGISTER_APP_FLUSH_BUFFERED_LOGS(); - + clean_mem(); return ret; } diff --git a/src/android/dlt-logdctxt.json b/src/android/dlt-logdctxt.json new file mode 100644 index 000000000..41dbf99d9 --- /dev/null +++ b/src/android/dlt-logdctxt.json @@ -0,0 +1,19 @@ +{ + "QTIV": { + "tag": "QtiVehicleHal ", + "description": "" + }, + "NETW": { + "tag": "NetworkSecurityConfig", + "description": "" + }, + "PROC": { + "tag": "ProcessState", + "description": "" + }, + "ZYGO": { + "tag": "Zygote", + "description": "" + } +} + From 1737de27825c691e925a7d42abe34311159c48c6 Mon Sep 17 00:00:00 2001 From: Suprathik Narasimhaiah Date: Thu, 14 Jul 2022 22:35:53 +0200 Subject: [PATCH 18/35] dlt-daemon: Handle partial message parsing in receiver buffer When partial DLT messages are received by DLT Daemon from the application side, to prevent errors in the DLT Client when such messages are being parsed, identify & ignore them inside the receiver buffer. Signed-off-by: Suprathik Narasimhaiah --- src/daemon/dlt-daemon.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/daemon/dlt-daemon.c b/src/daemon/dlt-daemon.c index b5b889429..42728d05a 100644 --- a/src/daemon/dlt-daemon.c +++ b/src/daemon/dlt-daemon.c @@ -3451,6 +3451,17 @@ int dlt_daemon_process_user_message_log(DltDaemon *daemon, * or the headers are corrupted (error case). */ dlt_log(LOG_DEBUG, "Can't read messages from receiver\n"); + if (dlt_receiver_remove(rec, rec->bytesRcvd) != DLT_RETURN_OK) { + /* In certain rare scenarios where only a partial message has been received + * (Eg: kernel IPC buffer memory being full), we want to discard the message + * and not broadcast it forward to connected clients. Since the DLT library + * checks return value of the writev() call against the sent total message + * length, the partial message will be buffered and retransmitted again. + * This implicitly ensures that no message loss occurs. + */ + dlt_log(LOG_WARNING, "failed to remove required bytes from receiver.\n"); + } + return DLT_DAEMON_ERROR_UNKNOWN; } From 53e0ceb9a23f4ba762682fa887ed8129f64738d5 Mon Sep 17 00:00:00 2001 From: LUU QUANG MINH Date: Thu, 14 Jul 2022 23:20:13 +0700 Subject: [PATCH 19/35] android: Fix memory leak + Fix memory leak if tag duplicated in json file. + Remove minor duplicated warning message. Signed-off-by: LUU QUANG MINH --- src/android/dlt-logd-converter.cpp | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/src/android/dlt-logd-converter.cpp b/src/android/dlt-logd-converter.cpp index bb1043fe9..58feedeb2 100644 --- a/src/android/dlt-logd-converter.cpp +++ b/src/android/dlt-logd-converter.cpp @@ -166,9 +166,7 @@ static int load_configuration_file(const char *file_name) if (!file.is_open()) { DLT_LOG(dlt_ctx_self, DLT_LOG_WARN, - DLT_STRING("dlt-logd-converter could not open cofiguration file."), - DLT_STRING("Initial values applied.")); - cout << "Configuration file could not be opened, inital values applied" << endl; + DLT_STRING("No configuration file found, use default values!")); return -1; } @@ -277,10 +275,14 @@ static void json_parser() DLT_LOG(dlt_ctx_self, DLT_LOG_WARN, DLT_STRING(json_tag.c_str()), DLT_STRING("is duplicated, please check the json file.")); + delete ctx; + ctx = nullptr; + } + else { + DLT_REGISTER_CONTEXT(*(ret.first->second), + json_ctxID.c_str(), + json_description.c_str()); } - DLT_REGISTER_CONTEXT(*(ret.first->second), - json_ctxID.c_str(), - json_description.c_str()); } } file.close(); From 7496be2367dcc52294addd137b5c6b70ce6e34fe Mon Sep 17 00:00:00 2001 From: LUU QUANG MINH Date: Tue, 19 Jul 2022 10:24:37 +0700 Subject: [PATCH 20/35] android: Remove redundant code Signed-off-by: LUU QUANG MINH --- src/android/dlt-logd-converter.cpp | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/android/dlt-logd-converter.cpp b/src/android/dlt-logd-converter.cpp index 58feedeb2..b536bc1a7 100644 --- a/src/android/dlt-logd-converter.cpp +++ b/src/android/dlt-logd-converter.cpp @@ -165,8 +165,6 @@ static int load_configuration_file(const char *file_name) string pattern; if (!file.is_open()) { - DLT_LOG(dlt_ctx_self, DLT_LOG_WARN, - DLT_STRING("No configuration file found, use default values!")); return -1; } From 170d3e4984b53005d5146062437c51dd0edea243 Mon Sep 17 00:00:00 2001 From: LUU QUANG MINH Date: Tue, 19 Jul 2022 11:40:45 +0700 Subject: [PATCH 21/35] qnx: Eliminate project specific information Remove unrelated part in script for qnx system test Signed-off-by: LUU QUANG MINH --- tests/start_qnx_system_test.sh | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/tests/start_qnx_system_test.sh b/tests/start_qnx_system_test.sh index 90478f74d..febb2dd99 100755 --- a/tests/start_qnx_system_test.sh +++ b/tests/start_qnx_system_test.sh @@ -92,24 +92,22 @@ dlt_qnx_run_app() { pr_verbose "$0" "Start dlt-qnx-system testing" - export LD_LIBRARY_PATH=/opt/lib_tmp:$LD_LIBRARY_PATH - # Prepare a text file to filter log messages by specific AppID and Ctx ID echo "QSYM QSLA" > "${DLT_RECEIVE_FILTER}" # Start dlt-receive echo "Start dlt-receive" - "${DEV_AAP_DLT_PATH}"/dlt-receive -a -f "${DLT_RECEIVE_FILTER}" localhost > "${DLT_TEST_RESULT}" & + "${DEV_DLT_PATH}"/dlt-receive -a -f "${DLT_RECEIVE_FILTER}" 127.0.0.1 > "${DLT_TEST_RESULT}" & sleep "${SLEEP_TIME}" # Start dlt-qnx-system echo "Start dlt-qnx-system" - "${DEV_AAP_DLT_PATH}"/dlt-qnx-system > /dev/null & + "${DEV_DLT_PATH}"/dlt-qnx-system > /dev/null & sleep "${SLEEP_TIME}" # Start dlt-test-qnx-slogger and wait until it's done echo "Start dlt-test-qnx-slogger" - "${DEV_AAP_DLT_PATH}"/dlt-test-qnx-slogger -n "${COUNT}" -d "${DELAY}" -l "${LENGTH}" > /dev/null + "${DEV_DLT_PATH}"/dlt-test-qnx-slogger -n "${COUNT}" -d "${DELAY}" -l "${LENGTH}" > /dev/null sleep "${SLEEP_TIME}" } @@ -220,7 +218,7 @@ LENGTH=100 DLT_TEST_RESULT="dlt_qnx_system_test.txt" DLT_RECEIVE_FILTER="dlt_receive_filter.txt" -DEV_AAP_DLT_PATH="/usr/bin" +DEV_DLT_PATH="/usr/bin" # OS if [ "$(uname)" != "QNX" ]; then @@ -257,16 +255,16 @@ echo " Payload length: ${LENGTH} bytes" echo "*******************************" echo "" -# Verify if rb-dltd is running -if [ ! "$(slay -p -Q rb-dltd)" ]; then - echo "Start rb-dltd before running this script!" - exit 1 +# Start dlt-daemon +if [ ! "$(pidin u | grep dlt-daemon)" ]; then + echo "Start dlt-daemon in daemonized mode" + dlt-daemon -d fi # Verify necessary binaries are available under the target -dlt_qnx_verify_app ${DEV_AAP_DLT_PATH}/dlt-receive -dlt_qnx_verify_app ${DEV_AAP_DLT_PATH}/dlt-qnx-system -dlt_qnx_verify_app ${DEV_AAP_DLT_PATH}/dlt-test-qnx-slogger +dlt_qnx_verify_app ${DEV_DLT_PATH}/dlt-receive +dlt_qnx_verify_app ${DEV_DLT_PATH}/dlt-qnx-system +dlt_qnx_verify_app ${DEV_DLT_PATH}/dlt-test-qnx-slogger #dlt_qnx_configure_setup @@ -278,3 +276,5 @@ dlt_qnx_clean_app dlt_qnx_test_result dlt_qnx_clean_log + +slay dlt-daemon From 930ce80c3c47d3778efb45f9d0a79d144f9f9346 Mon Sep 17 00:00:00 2001 From: Le Tin Date: Wed, 20 Jul 2022 16:39:29 +0700 Subject: [PATCH 22/35] android: Add some binaries in Android Add some binaries for RFW testcases in Android Signed-off-by: Le Tin --- Android.bp | 99 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 99 insertions(+) diff --git a/Android.bp b/Android.bp index 14af6b911..28571aa0b 100644 --- a/Android.bp +++ b/Android.bp @@ -203,4 +203,103 @@ cc_binary { ], } +cc_binary { + + name: "dlt-control", + defaults: ["dlt_defaults"], + + srcs: [ + "src/console/dlt-control-common.c", + "src/console/dlt-control.c", + ], + + shared_libs: [ + "libc", + "libdlt", + ], +} + +cc_binary { + + name: "dlt-convert", + defaults: ["dlt_defaults"], + + srcs: [ + "src/console/dlt-convert.c", + ], + + shared_libs: [ + "libc", + "libdlt", + ], +} + +cc_binary { + + name: "dlt-test-non-verbose", + defaults: ["dlt_defaults"], + + srcs: [ + "src/tests/dlt-test-non-verbose.c", + ], + + shared_libs: [ + "libc", + "libdlt", + ], +} + +cc_binary { + + name: "dlt-test-logstorage", + defaults: ["dlt_defaults"], + + srcs: [ + "src/tests/dlt-test-logstorage.c", + ], + + shared_libs: [ + "libc", + "libdlt", + ], +} + +cc_binary { + + name: "dlt-test-multi-process", + defaults: ["dlt_defaults"], + + srcs: [ + "src/tests/dlt-test-multi-process.c", + ], + + shared_libs: [ + "libc", + "libdlt", + ], +} + +cc_binary { + + name: "dlt-logstorage-ctrl", + defaults: ["dlt_defaults"], + + local_include_dirs: [ + "systemd/3rdparty/", + "src/console", + "src/console/logstorage", + ], + + srcs: [ + "src/console/dlt-control-common.c", + "src/console/logstorage/dlt-logstorage-common.c", + "src/console/logstorage/dlt-logstorage-ctrl.c", + ], + + shared_libs: [ + "libc", + "libdlt", + ], +} + // vim: ft=python From b378a2525fac12550bb7bae9db46cc6c933ee5ba Mon Sep 17 00:00:00 2001 From: Le Tin Date: Fri, 1 Jul 2022 16:26:33 +0700 Subject: [PATCH 23/35] dlt-control-common: Remove pthread_cancel Socket is shutdown and closed before that, so thread will complete its task, here is the listening task Calling pthread_cancel does not need here Signed-off-by: Le Tin --- src/console/dlt-control-common.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/console/dlt-control-common.c b/src/console/dlt-control-common.c index 6fae27c6d..dcdc96eda 100644 --- a/src/console/dlt-control-common.c +++ b/src/console/dlt-control-common.c @@ -651,8 +651,7 @@ int dlt_control_deinit(void) close(g_client.receiver.fd); g_client.receiver.fd = -1; } - /* Stopping the listener thread */ - pthread_cancel(daemon_connect_thread); + /* Waiting for thread to complete */ pthread_join(daemon_connect_thread, NULL); /* Closing the socket */ return dlt_client_cleanup(&g_client, get_verbosity()); From 565d9c6972efdf4d23aed833dd602fe948064067 Mon Sep 17 00:00:00 2001 From: Bui Nguyen Quoc Thanh Date: Tue, 2 Aug 2022 13:48:56 +0700 Subject: [PATCH 24/35] qnx: timer pipes could be invalid Before writing to the timer pipes, the fd must be checked to ensure that it is a valid fd Signed-off-by: Bui Nguyen Quoc Thanh --- src/daemon/dlt-daemon.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/daemon/dlt-daemon.c b/src/daemon/dlt-daemon.c index 42728d05a..e0dce59bc 100644 --- a/src/daemon/dlt-daemon.c +++ b/src/daemon/dlt-daemon.c @@ -3741,7 +3741,8 @@ static void *timer_thread(void *data) } while (1) { - if (0 > write(dlt_timer_pipes[timer_thread_data->timer_id][1], "1", 1)) { + if ((dlt_timer_pipes[timer_thread_data->timer_id][1] > 0) && + (0 > write(dlt_timer_pipes[timer_thread_data->timer_id][1], "1", 1))) { dlt_vlog(LOG_ERR, "Failed to send notification for timer [%s]!\n", dlt_timer_names[timer_thread_data->timer_id]); pexit = 1; From 6500d4a0a5c9075872f1ae5e907168e11e7986ce Mon Sep 17 00:00:00 2001 From: Bui Nguyen Quoc Thanh Date: Tue, 16 Aug 2022 16:58:34 +0700 Subject: [PATCH 25/35] daemon: overflow message should be sent one Improve mechanism to help overflow message sent only one time Signed-off-by: Bui Nguyen Quoc Thanh --- src/daemon/dlt_daemon_client.c | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/src/daemon/dlt_daemon_client.c b/src/daemon/dlt_daemon_client.c index 5376f7cfc..11655a288 100644 --- a/src/daemon/dlt_daemon_client.c +++ b/src/daemon/dlt_daemon_client.c @@ -129,7 +129,7 @@ static int dlt_daemon_client_send_all_multiple(DltDaemon *daemon, if ((temp == NULL) || (temp->receiver == NULL) || !((1 << temp->type) & type_mask)) { - dlt_vlog(LOG_DEBUG, "The connection not found or the connection type not TCP/Serial.\n"); + dlt_log(LOG_DEBUG, "The connection not found or the connection type not TCP/Serial.\n"); continue; } @@ -172,6 +172,7 @@ int dlt_daemon_client_send(int sock, int verbose) { int sent, ret; + static int sent_message_overflow_cnt = 0; if ((daemon == NULL) || (daemon_local == NULL)) { dlt_vlog(LOG_ERR, "%s: Invalid arguments\n", __func__); @@ -280,11 +281,22 @@ int dlt_daemon_client_send(int sock, } } else { if ((daemon->overflow_counter > 0) && - (daemon_local->client_connections > 0) && - (dlt_daemon_send_message_overflow(daemon, daemon_local, verbose) == DLT_DAEMON_ERROR_OK)) { - dlt_vlog(LOG_WARNING, "%s: %u messages discarded! Now able to send messages to the client.\n", - __func__, daemon->overflow_counter); - daemon->overflow_counter = 0; + (daemon_local->client_connections > 0)) { + sent_message_overflow_cnt++; + if (sent_message_overflow_cnt >= 2) { + sent_message_overflow_cnt--; + } + else { + if (dlt_daemon_send_message_overflow(daemon, daemon_local, + verbose) == DLT_DAEMON_ERROR_OK) { + dlt_vlog(LOG_WARNING, + "%s: %u messages discarded! Now able to send messages to the client.\n", + __func__, + daemon->overflow_counter); + daemon->overflow_counter = 0; + sent_message_overflow_cnt--; + } + } } } From 30e9a3189fa999f3f5aafd76ca68fbe9f4712b00 Mon Sep 17 00:00:00 2001 From: LUU QUANG MINH Date: Thu, 11 Aug 2022 19:40:16 +0700 Subject: [PATCH 26/35] unittest: Add conf files and json file for unit test Signed-off-by: LUU QUANG MINH --- tests/abnormal-dlt-logd-converter.conf | 6 ++++++ tests/dlt-logd-converter.conf | 17 +++++++++++++++++ tests/dlt-logdctxt.json | 18 ++++++++++++++++++ 3 files changed, 41 insertions(+) create mode 100644 tests/abnormal-dlt-logd-converter.conf create mode 100644 tests/dlt-logd-converter.conf create mode 100644 tests/dlt-logdctxt.json diff --git a/tests/abnormal-dlt-logd-converter.conf b/tests/abnormal-dlt-logd-converter.conf new file mode 100644 index 000000000..e6757c5dd --- /dev/null +++ b/tests/abnormal-dlt-logd-converter.conf @@ -0,0 +1,6 @@ +ApplicationID=LOGDCONV + + ContextID=DLT +AndroidLogdJSONpath= + + # AndroidLogdContextID=CCCCC diff --git a/tests/dlt-logd-converter.conf b/tests/dlt-logd-converter.conf new file mode 100644 index 000000000..a9559ab59 --- /dev/null +++ b/tests/dlt-logd-converter.conf @@ -0,0 +1,17 @@ +# Configuration file of dlt-logd-converter +######################################################################## +# General configuration +######################################################################## + +# The common application ID for Android native applications to appear on DLT client (Default: LOGD) +ApplicationID = LOGD + +# The common context ID for Android native applications to appear on DLT client (Default: LOGF) +ContextID = LOGF + +# Path for JSON file (Default: /vendor/etc/dlt-logdctxt.json) +AndroidLogdJSONpath = /vendor/etc/dlt-logdctxt.json + +# The common context ID for the case where the JSON path is found, +# but applications are not listed in JSON file (Default: OTHE) +AndroidLogdContextID = OTHE diff --git a/tests/dlt-logdctxt.json b/tests/dlt-logdctxt.json new file mode 100644 index 000000000..82291040a --- /dev/null +++ b/tests/dlt-logdctxt.json @@ -0,0 +1,18 @@ +{ + "QTIV": { + "tag": "QtiVehicleHal ", + "description": "" + }, + "NETW": { + "tag": "NetworkSecurityConfig", + "description": "" + }, + "PROC": { + "tag": "ProcessState", + "description": "" + }, + "ZYGO": { + "tag": "Zygote", + "description": "" + } + } From 4a9e66dd089f039b9075bbfadbff532c1cc2dbab Mon Sep 17 00:00:00 2001 From: LUU QUANG MINH Date: Thu, 18 Aug 2022 11:08:36 +0700 Subject: [PATCH 27/35] common: Modify dlt_common unit test Increase buffer sizes to get longer file paths, hence avoiding test fails. Signed-off-by: LUU QUANG MINH --- tests/gtest_dlt_common.cpp | 396 +++++++++++++++++++------------------ 1 file changed, 200 insertions(+), 196 deletions(-) diff --git a/tests/gtest_dlt_common.cpp b/tests/gtest_dlt_common.cpp index 6a80f1142..c60d58498 100644 --- a/tests/gtest_dlt_common.cpp +++ b/tests/gtest_dlt_common.cpp @@ -28,6 +28,10 @@ #include #include +#define MAX_LINE 200 +#define BINARY_FILE_NAME "/testfile.dlt" +#define FILTER_FILE_NAME "/testfilter.txt" + extern "C" { #include "dlt-daemon.h" @@ -1592,13 +1596,13 @@ TEST(t_dlt_file_open, normal) { DltFile file; /* Get PWD so file can be used*/ - char pwd[100]; - char openfile[114]; + char pwd[MAX_LINE]; + char openfile[MAX_LINE+sizeof(BINARY_FILE_NAME)]; /* ignore returned value from getcwd */ - if (getcwd(pwd, 100) == NULL) {} + if (getcwd(pwd, MAX_LINE) == NULL) {} - sprintf(openfile, "%s/testfile.dlt", pwd); + sprintf(openfile, "%s" BINARY_FILE_NAME, pwd); /*---------------------------------------*/ /* Normal Use-Case, expected 0 */ @@ -1614,10 +1618,10 @@ TEST(t_dlt_file_open, abnormal) { /* DltFile file; */ /* / * Get PWD so file can be used* / */ -/* char pwd[100]; */ -/* getcwd(pwd, 100); */ -/* char openfile[114]; */ -/* sprintf(openfile, "%s/testfile.dlt", pwd); */ +/* char pwd[MAX_LINE]; */ +/* getcwd(pwd, MAX_LINE); */ +/* char openfile[MAX_LINE+sizeof(BINARY_FILE_NAME)]; */ +/* sprintf(openfile, "%s" BINARY_FILE_NAME, pwd); */ /*---------------------------------------*/ /* Uninizialsied, expected -1 */ @@ -1634,13 +1638,13 @@ TEST(t_dlt_file_open, nullpointer) { DltFile file; /* Get PWD so file can be used*/ - char pwd[100]; - char openfile[114]; + char pwd[MAX_LINE]; + char openfile[MAX_LINE+sizeof(BINARY_FILE_NAME)]; /* ignore returned value from getcwd */ - if (getcwd(pwd, 100) == NULL) {} + if (getcwd(pwd, MAX_LINE) == NULL) {} - sprintf(openfile, "%s/testfile.dlt", pwd); + sprintf(openfile, "%s" BINARY_FILE_NAME, pwd); /*---------------------------------------*/ /* NULL-Pointer, expected -1 */ @@ -1661,14 +1665,14 @@ TEST(t_dlt_file_quick_parsing, normal) { DltFile file; /* Get PWD so file can be used*/ - char pwd[100]; - char openfile[114]; + char pwd[MAX_LINE]; + char openfile[MAX_LINE+sizeof(BINARY_FILE_NAME)]; char output[128] = "/tmp/output_testfile.txt"; /* ignore returned value from getcwd */ - if (getcwd(pwd, 100) == NULL) {} + if (getcwd(pwd, MAX_LINE) == NULL) {} - sprintf(openfile, "%s/testfile.dlt", pwd); + sprintf(openfile, "%s" BINARY_FILE_NAME, pwd); /*---------------------------------------*/ /* Normal Use-Case, expected 0 */ @@ -1683,14 +1687,14 @@ TEST(t_dlt_file_quick_parsing, abnormal) { DltFile file; /* Get PWD so file can be used*/ - char pwd[100]; - char openfile[114]; + char pwd[MAX_LINE]; + char openfile[MAX_LINE+sizeof(BINARY_FILE_NAME)]; char output[128] = "/tmp/output_testfile.txt"; /* ignore returned value from getcwd */ - if (getcwd(pwd, 100) == NULL) {} + if (getcwd(pwd, MAX_LINE) == NULL) {} - sprintf(openfile, "%s/testfile.dlt", pwd); + sprintf(openfile, "%s" BINARY_FILE_NAME, pwd); /*---------------------------------------*/ /* Abnormal Use-Case, expected DLT_RETURN_WRONG_PARAMETER (-5) */ @@ -1717,13 +1721,13 @@ TEST(t_dlt_message_print_ascii, normal) static char text[DLT_DAEMON_TEXTSIZE]; /* Get PWD so file can be used*/ - char pwd[100]; - char openfile[114]; + char pwd[MAX_LINE]; + char openfile[MAX_LINE+sizeof(BINARY_FILE_NAME)]; /* ignore returned value from getcwd */ - if (getcwd(pwd, 100) == NULL) {} + if (getcwd(pwd, MAX_LINE) == NULL) {} - sprintf(openfile, "%s/testfile.dlt", pwd); + sprintf(openfile, "%s" BINARY_FILE_NAME, pwd); /*---------------------------------------*/ /* Normal Use-Case, expected 0 */ @@ -1750,10 +1754,10 @@ TEST(t_dlt_message_print_ascii, abnormal) /* static char text[DLT_DAEMON_TEXTSIZE]; */ /* / * Get PWD so file and filter can be used* / */ -/* char pwd[100]; */ -/* getcwd(pwd, 100); */ -/* char openfile[114]; */ -/* sprintf(openfile, "%s/testfile.dlt", pwd); */ +/* char pwd[MAX_LINE]; */ +/* getcwd(pwd, MAX_LINE); */ +/* char openfile[MAX_LINE+sizeof(BINARY_FILE_NAME)]; */ +/* sprintf(openfile, "%s" BINARY_FILE_NAME, pwd); */ /*---------------------------------------*/ /* No messages read, expected -1 */ @@ -1779,13 +1783,13 @@ TEST(t_dlt_message_print_ascii, nullpointer) static char text[DLT_DAEMON_TEXTSIZE]; /* Get PWD so file can be used*/ - char pwd[100]; - char openfile[114]; + char pwd[MAX_LINE]; + char openfile[MAX_LINE+sizeof(BINARY_FILE_NAME)]; /* ignore returned value from getcwd */ - if (getcwd(pwd, 100) == NULL) {} + if (getcwd(pwd, MAX_LINE) == NULL) {} - sprintf(openfile, "%s/testfile.dlt", pwd); + sprintf(openfile, "%s" BINARY_FILE_NAME, pwd); /*---------------------------------------*/ /* NULL-Pointer, expected -1 */ @@ -1815,15 +1819,15 @@ TEST(t_dlt_message_print_ascii_with_filter, normal) static char text[DLT_DAEMON_TEXTSIZE]; /* Get PWD so file can be used*/ - char pwd[100]; - char openfile[114]; + char pwd[MAX_LINE]; + char openfile[MAX_LINE+sizeof(BINARY_FILE_NAME)]; /* ignore returned value from getcwd */ - if (getcwd(pwd, 100) == NULL) {} + if (getcwd(pwd, MAX_LINE) == NULL) {} - char openfilter[117]; - sprintf(openfile, "%s/testfile.dlt", pwd); - sprintf(openfilter, "%s/testfilter.txt", pwd); + char openfilter[MAX_LINE+sizeof(FILTER_FILE_NAME)]; + sprintf(openfile, "%s" BINARY_FILE_NAME, pwd); + sprintf(openfilter, "%s" FILTER_FILE_NAME, pwd); /*---------------------------------------*/ /* Normal Use-Case, expect 0 */ @@ -1867,13 +1871,13 @@ TEST(t_dlt_message_print_header, normal) static char text[DLT_DAEMON_TEXTSIZE]; /* Get PWD so file can be used*/ - char pwd[100]; - char openfile[114]; + char pwd[MAX_LINE]; + char openfile[MAX_LINE+sizeof(BINARY_FILE_NAME)]; /* ignore returned value from getcwd */ - if (getcwd(pwd, 100) == NULL) {} + if (getcwd(pwd, MAX_LINE) == NULL) {} - sprintf(openfile, "%s/testfile.dlt", pwd); + sprintf(openfile, "%s" BINARY_FILE_NAME, pwd); /*---------------------------------------*/ /* Normal Use-Case, expected 0 */ @@ -1900,10 +1904,10 @@ TEST(t_dlt_message_print_header, abnormal) /* static char text[DLT_DAEMON_TEXTSIZE]; */ /* / * Get PWD so file and filter can be used* / */ -/* char pwd[100]; */ -/* getcwd(pwd, 100); */ -/* char openfile[114]; */ -/* sprintf(openfile, "%s/testfile.dlt", pwd); */ +/* char pwd[MAX_LINE]; */ +/* getcwd(pwd, MAX_LINE); */ +/* char openfile[MAX_LINE+sizeof(BINARY_FILE_NAME)];; */ +/* sprintf(openfile, "%s" BINARY_FILE_NAME, pwd); */ /*---------------------------------------*/ /* No messages read, expected -1 */ @@ -1929,13 +1933,13 @@ TEST(t_dlt_message_print_header, nullpointer) static char text[DLT_DAEMON_TEXTSIZE]; /* Get PWD so file can be used*/ - char pwd[100]; - char openfile[114]; + char pwd[MAX_LINE]; + char openfile[MAX_LINE+sizeof(BINARY_FILE_NAME)]; /* ignore returned value from getcwd */ - if (getcwd(pwd, 100) == NULL) {} + if (getcwd(pwd, MAX_LINE) == NULL) {} - sprintf(openfile, "%s/testfile.dlt", pwd); + sprintf(openfile, "%s" BINARY_FILE_NAME, pwd); /*---------------------------------------*/ /* NULL-Pointer, expected -1 */ @@ -1966,15 +1970,15 @@ TEST(t_dlt_message_print_header_with_filter, normal) static char text[DLT_DAEMON_TEXTSIZE]; /* Get PWD so file can be used*/ - char pwd[100]; - char openfile[114]; + char pwd[MAX_LINE]; + char openfile[MAX_LINE+sizeof(BINARY_FILE_NAME)]; /* ignore returned value from getcwd */ - if (getcwd(pwd, 100) == NULL) {} + if (getcwd(pwd, MAX_LINE) == NULL) {} - char openfilter[117]; - sprintf(openfile, "%s/testfile.dlt", pwd); - sprintf(openfilter, "%s/testfilter.txt", pwd); + char openfilter[MAX_LINE+sizeof(FILTER_FILE_NAME)]; + sprintf(openfile, "%s" BINARY_FILE_NAME, pwd); + sprintf(openfilter, "%s" FILTER_FILE_NAME, pwd); /*---------------------------------------*/ /* Normal Use-Case, expect 0 */ @@ -2018,13 +2022,13 @@ TEST(t_dlt_message_print_hex, normal) static char text[DLT_DAEMON_TEXTSIZE]; /* Get PWD so file can be used*/ - char pwd[100]; - char openfile[114]; + char pwd[MAX_LINE]; + char openfile[MAX_LINE+sizeof(BINARY_FILE_NAME)]; /* ignore returned value from getcwd */ - if (getcwd(pwd, 100) == NULL) {} + if (getcwd(pwd, MAX_LINE) == NULL) {} - sprintf(openfile, "%s/testfile.dlt", pwd); + sprintf(openfile, "%s" BINARY_FILE_NAME, pwd); /*---------------------------------------*/ /* Normal Use-Case, expected 0 */ @@ -2051,10 +2055,10 @@ TEST(t_dlt_message_print_hex, abnormal) /* static char text[DLT_DAEMON_TEXTSIZE]; */ /* / * Get PWD so file and filter can be used* / */ -/* char pwd[100]; */ -/* getcwd(pwd, 100); */ -/* char openfile[114]; */ -/* sprintf(openfile, "%s/testfile.dlt", pwd); */ +/* char pwd[MAX_LINE]; */ +/* getcwd(pwd, MAX_LINE); */ +/* char openfile[MAX_LINE+sizeof(BINARY_FILE_NAME)];; */ +/* sprintf(openfile, "%s" BINARY_FILE_NAME, pwd); */ /*---------------------------------------*/ /* No messages read, expected -1 */ @@ -2080,13 +2084,13 @@ TEST(t_dlt_message_print_hex, nullpointer) static char text[DLT_DAEMON_TEXTSIZE]; /* Get PWD so file can be used*/ - char pwd[100]; - char openfile[114]; + char pwd[MAX_LINE]; + char openfile[MAX_LINE+sizeof(BINARY_FILE_NAME)]; /* ignore returned value from getcwd */ - if (getcwd(pwd, 100) == NULL) {} + if (getcwd(pwd, MAX_LINE) == NULL) {} - sprintf(openfile, "%s/testfile.dlt", pwd); + sprintf(openfile, "%s" BINARY_FILE_NAME, pwd); /*---------------------------------------*/ /* NULL-Pointer, expected -1 */ @@ -2117,15 +2121,15 @@ TEST(t_dlt_message_print_hex_with_filter, normal) static char text[DLT_DAEMON_TEXTSIZE]; /* Get PWD so file can be used*/ - char pwd[100]; - char openfile[114]; + char pwd[MAX_LINE]; + char openfile[MAX_LINE+sizeof(BINARY_FILE_NAME)]; /* ignore returned value from getcwd */ - if (getcwd(pwd, 100) == NULL) {} + if (getcwd(pwd, MAX_LINE) == NULL) {} - char openfilter[117]; - sprintf(openfile, "%s/testfile.dlt", pwd); - sprintf(openfilter, "%s/testfilter.txt", pwd); + char openfilter[MAX_LINE+sizeof(FILTER_FILE_NAME)]; + sprintf(openfile, "%s" BINARY_FILE_NAME, pwd); + sprintf(openfilter, "%s" FILTER_FILE_NAME, pwd); /*---------------------------------------*/ /* Normal Use-Case, expect 0 */ @@ -2169,13 +2173,13 @@ TEST(t_dlt_message_print_mixed_plain, normal) static char text[DLT_DAEMON_TEXTSIZE]; /* Get PWD so file can be used*/ - char pwd[100]; - char openfile[114]; + char pwd[MAX_LINE]; + char openfile[MAX_LINE+sizeof(BINARY_FILE_NAME)]; /* ignore returned value from getcwd */ - if (getcwd(pwd, 100) == NULL) {} + if (getcwd(pwd, MAX_LINE) == NULL) {} - sprintf(openfile, "%s/testfile.dlt", pwd); + sprintf(openfile, "%s" BINARY_FILE_NAME, pwd); /*---------------------------------------*/ /* Normal Use-Case, expected 0 */ @@ -2202,10 +2206,10 @@ TEST(t_dlt_message_print_mixed_plain, abnormal) /* static char text[DLT_DAEMON_TEXTSIZE]; */ /* / * Get PWD so file and filter can be used* / */ -/* char pwd[100]; */ -/* getcwd(pwd, 100); */ -/* char openfile[114]; */ -/* sprintf(openfile, "%s/testfile.dlt", pwd); */ +/* char pwd[MAX_LINE]; */ +/* getcwd(pwd, MAX_LINE); */ +/* char openfile[MAX_LINE+sizeof(BINARY_FILE_NAME)];; */ +/* sprintf(openfile, "%s" BINARY_FILE_NAME, pwd); */ /*---------------------------------------*/ /* No messages read, expected -1 */ @@ -2231,13 +2235,13 @@ TEST(t_dlt_message_print_mixed_plain, nullpointer) static char text[DLT_DAEMON_TEXTSIZE]; /* Get PWD so file can be used*/ - char pwd[100]; - char openfile[114]; + char pwd[MAX_LINE]; + char openfile[MAX_LINE+sizeof(BINARY_FILE_NAME)]; /* ignore returned value from getcwd */ - if (getcwd(pwd, 100) == NULL) {} + if (getcwd(pwd, MAX_LINE) == NULL) {} - sprintf(openfile, "%s/testfile.dlt", pwd); + sprintf(openfile, "%s" BINARY_FILE_NAME, pwd); /*---------------------------------------*/ /* NULL-Pointer, expected -1 */ @@ -2268,15 +2272,15 @@ TEST(t_dlt_message_print_mixed_plain_with_filter, normal) static char text[DLT_DAEMON_TEXTSIZE]; /* Get PWD so file can be used*/ - char pwd[100]; - char openfile[114]; + char pwd[MAX_LINE]; + char openfile[MAX_LINE+sizeof(BINARY_FILE_NAME)]; /* ignore returned value from getcwd */ - if (getcwd(pwd, 100) == NULL) {} + if (getcwd(pwd, MAX_LINE) == NULL) {} - char openfilter[117]; - sprintf(openfile, "%s/testfile.dlt", pwd); - sprintf(openfilter, "%s/testfilter.txt", pwd); + char openfilter[MAX_LINE+sizeof(FILTER_FILE_NAME)]; + sprintf(openfile, "%s" BINARY_FILE_NAME, pwd); + sprintf(openfilter, "%s" FILTER_FILE_NAME, pwd); /*---------------------------------------*/ /* Normal Use-Case, expect 0 */ @@ -2319,13 +2323,13 @@ TEST(t_dlt_message_print_mixed_html, normal) static char text[DLT_DAEMON_TEXTSIZE]; /* Get PWD so file can be used*/ - char pwd[100]; - char openfile[114]; + char pwd[MAX_LINE]; + char openfile[MAX_LINE+sizeof(BINARY_FILE_NAME)]; /* ignore returned value from getcwd */ - if (getcwd(pwd, 100) == NULL) {} + if (getcwd(pwd, MAX_LINE) == NULL) {} - sprintf(openfile, "%s/testfile.dlt", pwd); + sprintf(openfile, "%s" BINARY_FILE_NAME, pwd); /*---------------------------------------*/ /* Normal Use-Case, expected 0 */ @@ -2352,10 +2356,10 @@ TEST(t_dlt_message_print_mixed_html, abnormal) /* static char text[DLT_DAEMON_TEXTSIZE]; */ /* / * Get PWD so file and filter can be used* / */ -/* char pwd[100]; */ -/* getcwd(pwd, 100); */ -/* char openfile[114]; */ -/* sprintf(openfile, "%s/testfile.dlt", pwd); */ +/* char pwd[MAX_LINE]; */ +/* getcwd(pwd, MAX_LINE); */ +/* char openfile[MAX_LINE+sizeof(BINARY_FILE_NAME)];; */ +/* sprintf(openfile, "%s" BINARY_FILE_NAME, pwd); */ /*---------------------------------------*/ /* No messages read, expected -1 */ @@ -2381,13 +2385,13 @@ TEST(t_dlt_message_print_mixed_html, nullpointer) static char text[DLT_DAEMON_TEXTSIZE]; /* Get PWD so file can be used*/ - char pwd[100]; - char openfile[114]; + char pwd[MAX_LINE]; + char openfile[MAX_LINE+sizeof(BINARY_FILE_NAME)]; /* ignore returned value from getcwd */ - if (getcwd(pwd, 100) == NULL) {} + if (getcwd(pwd, MAX_LINE) == NULL) {} - sprintf(openfile, "%s/testfile.dlt", pwd); + sprintf(openfile, "%s" BINARY_FILE_NAME, pwd); /*---------------------------------------*/ /* NULL-Pointer, expected -1 */ @@ -2417,15 +2421,15 @@ TEST(t_dlt_message_print_mixed_html_with_filter, normal) static char text[DLT_DAEMON_TEXTSIZE]; /* Get PWD so file can be used*/ - char pwd[100]; - char openfile[114]; + char pwd[MAX_LINE]; + char openfile[MAX_LINE+sizeof(BINARY_FILE_NAME)]; /* ignore returned value from getcwd */ - if (getcwd(pwd, 100) == NULL) {} + if (getcwd(pwd, MAX_LINE) == NULL) {} - char openfilter[117]; - sprintf(openfile, "%s/testfile.dlt", pwd); - sprintf(openfilter, "%s/testfilter.txt", pwd); + char openfilter[MAX_LINE+sizeof(FILTER_FILE_NAME)]; + sprintf(openfile, "%s" BINARY_FILE_NAME, pwd); + sprintf(openfilter, "%s" FILTER_FILE_NAME, pwd); /*---------------------------------------*/ /* Normal Use-Case, expect 0 */ @@ -2469,15 +2473,15 @@ TEST(t_dlt_message_filter_check, normal) DltFilter filter; /* Get PWD so file can be used*/ - char pwd[100]; - char openfile[114]; + char pwd[MAX_LINE]; + char openfile[MAX_LINE+sizeof(BINARY_FILE_NAME)]; /* ignore returned value from getcwd */ - if (getcwd(pwd, 100) == NULL) {} + if (getcwd(pwd, MAX_LINE) == NULL) {} - char openfilter[117]; - sprintf(openfile, "%s/testfile.dlt", pwd); - sprintf(openfilter, "%s/testfilter.txt", pwd); + char openfilter[MAX_LINE+sizeof(FILTER_FILE_NAME)]; + sprintf(openfile, "%s" BINARY_FILE_NAME, pwd); + sprintf(openfilter, "%s" FILTER_FILE_NAME, pwd); /*---------------------------------------*/ /* Normal Use-Case, expected > 0 */ @@ -2507,12 +2511,12 @@ TEST(t_dlt_message_filter_check, abnormal) /* DltFilter filter; */ /* Get PWD so file and filter can be used*/ -/* char pwd[100]; */ -/* getcwd(pwd, 100); */ -/* char openfile[114]; */ -/* char openfilter[117]; */ -/* sprintf(openfile, "%s/testfile.dlt", pwd); */ -/* sprintf(openfilter, "%s/testfilter.txt", pwd); */ +/* char pwd[MAX_LINE]; */ +/* getcwd(pwd, MAX_LINE); */ +/* char openfile[MAX_LINE+sizeof(BINARY_FILE_NAME)]; */ +/* char openfilter[MAX_LINE+sizeof(FILTER_FILE_NAME)]; */ +/* sprintf(openfile, "%s" BINARY_FILE_NAME, pwd); */ +/* sprintf(openfilter, "%s" FILTER_FILE_NAME, pwd); */ /*---------------------------------------*/ /* No messages read, expected -1 */ @@ -2538,15 +2542,15 @@ TEST(t_dlt_message_filter_check, nullpointer) DltFilter filter; /* Get PWD so file can be used*/ - char pwd[100]; - char openfile[114]; + char pwd[MAX_LINE]; + char openfile[MAX_LINE+sizeof(BINARY_FILE_NAME)]; /* ignore returned value from getcwd */ - if (getcwd(pwd, 100) == NULL) {} + if (getcwd(pwd, MAX_LINE) == NULL) {} - char openfilter[117]; - sprintf(openfile, "%s/testfile.dlt", pwd); - sprintf(openfilter, "%s/testfilter.txt", pwd); + char openfilter[MAX_LINE+sizeof(FILTER_FILE_NAME)]; + sprintf(openfile, "%s" BINARY_FILE_NAME, pwd); + sprintf(openfilter, "%s" FILTER_FILE_NAME, pwd); /*---------------------------------------*/ /* NULL-Pointer, expected -1 */ @@ -2568,13 +2572,13 @@ TEST(t_dlt_message_get_extraparamters, normal) DltFile file; /* Get PWD so file can be used*/ - char pwd[100]; - char openfile[114]; + char pwd[MAX_LINE]; + char openfile[MAX_LINE+sizeof(BINARY_FILE_NAME)]; /* ignore returned value from getcwd */ - if (getcwd(pwd, 100) == NULL) {} + if (getcwd(pwd, MAX_LINE) == NULL) {} - sprintf(openfile, "%s/testfile.dlt", pwd); + sprintf(openfile, "%s" BINARY_FILE_NAME, pwd); /*---------------------------------------*/ /* Normal Use-Case, expect >0 */ @@ -2600,10 +2604,10 @@ TEST(t_dlt_message_get_extraparamters, abnormal) /* DltFile file; */ /* Get PWD so file and filter can be used*/ -/* char pwd[100]; */ -/* getcwd(pwd, 100); */ -/* char openfile[114]; */ -/* sprintf(openfile, "%s/testfile.dlt", pwd); */ +/* char pwd[MAX_LINE]; */ +/* getcwd(pwd, MAX_LINE); */ +/* char openfile[MAX_LINE+sizeof(BINARY_FILE_NAME)];; */ +/* sprintf(openfile, "%s" BINARY_FILE_NAME, pwd); */ /*---------------------------------------*/ /* Uninizialised, expected -1 */ @@ -2641,13 +2645,13 @@ TEST(t_dlt_message_header, normal) static char text[DLT_DAEMON_TEXTSIZE]; /* Get PWD so file can be used*/ - char pwd[100]; - char openfile[114]; + char pwd[MAX_LINE]; + char openfile[MAX_LINE+sizeof(BINARY_FILE_NAME)]; /* ignore returned value from getcwd */ - if (getcwd(pwd, 100) == NULL) {} + if (getcwd(pwd, MAX_LINE) == NULL) {} - sprintf(openfile, "%s/testfile.dlt", pwd); + sprintf(openfile, "%s" BINARY_FILE_NAME, pwd); /*---------------------------------------*/ /* Normal Use-Case, expect 0 */ @@ -2676,10 +2680,10 @@ TEST(t_dlt_message_header, abnormal) /* static char text[DLT_DAEMON_TEXTSIZE]; */ /* Get PWD so file and filter can be used*/ -/* char pwd[100]; */ -/* getcwd(pwd, 100); */ -/* char openfile[114]; */ -/* sprintf(openfile, "%s/testfile.dlt", pwd); */ +/* char pwd[MAX_LINE]; */ +/* getcwd(pwd, MAX_LINE); */ +/* char openfile[MAX_LINE+sizeof(BINARY_FILE_NAME)];; */ +/* sprintf(openfile, "%s" BINARY_FILE_NAME, pwd); */ /*---------------------------------------*/ /* Uninizialised, expected -1 */ @@ -2706,13 +2710,13 @@ TEST(t_dlt_message_header, nullpointer) static char text[DLT_DAEMON_TEXTSIZE]; /* Get PWD so file can be used*/ - char pwd[100]; - char openfile[114]; + char pwd[MAX_LINE]; + char openfile[MAX_LINE+sizeof(BINARY_FILE_NAME)]; /* ignore returned value from getcwd */ - if (getcwd(pwd, 100) == NULL) {} + if (getcwd(pwd, MAX_LINE) == NULL) {} - sprintf(openfile, "%s/testfile.dlt", pwd); + sprintf(openfile, "%s" BINARY_FILE_NAME, pwd); /*---------------------------------------*/ /* NULL-Pointer, expected -1 */ @@ -2759,13 +2763,13 @@ TEST(t_dlt_message_header_flags, normal) static char text[DLT_DAEMON_TEXTSIZE]; /* Get PWD so file can be used*/ - char pwd[100]; - char openfile[114]; + char pwd[MAX_LINE]; + char openfile[MAX_LINE+sizeof(BINARY_FILE_NAME)]; /* ignore returned value from getcwd */ - if (getcwd(pwd, 100) == NULL) {} + if (getcwd(pwd, MAX_LINE) == NULL) {} - sprintf(openfile, "%s/testfile.dlt", pwd); + sprintf(openfile, "%s" BINARY_FILE_NAME, pwd); /*---------------------------------------*/ /* Normal Use-Case, expected 0 */ @@ -2862,10 +2866,10 @@ TEST(t_dlt_message_header_flags, abnormal) /* static char text[DLT_DAEMON_TEXTSIZE]; */ /* / * Get PWD so file and filter can be used* / */ -/* char pwd[100]; */ -/* getcwd(pwd, 100); */ -/* char openfile[114];; */ -/* sprintf(openfile, "%s/testfile.dlt", pwd); */ +/* char pwd[MAX_LINE]; */ +/* getcwd(pwd, MAX_LINE); */ +/* char openfile[MAX_LINE+sizeof(BINARY_FILE_NAME)];;; */ +/* sprintf(openfile, "%s" BINARY_FILE_NAME, pwd); */ /*---------------------------------------*/ /* Uninizialised, expected -1 */ @@ -2914,13 +2918,13 @@ TEST(t_dlt_message_header_flags, nullpointer) static char text[DLT_DAEMON_TEXTSIZE]; /* Get PWD so file can be used*/ - char pwd[100]; - char openfile[114]; + char pwd[MAX_LINE]; + char openfile[MAX_LINE+sizeof(BINARY_FILE_NAME)]; /* ignore returned value from getcwd */ - if (getcwd(pwd, 100) == NULL) {} + if (getcwd(pwd, MAX_LINE) == NULL) {} - sprintf(openfile, "%s/testfile.dlt", pwd); + sprintf(openfile, "%s" BINARY_FILE_NAME, pwd); /*---------------------------------------*/ /* NULL-Pointer, expected -1 */ @@ -3157,13 +3161,13 @@ TEST(t_dlt_message_payload, normal) static char text[DLT_DAEMON_TEXTSIZE]; /* Get PWD so file can be used*/ - char pwd[100]; - char openfile[114]; + char pwd[MAX_LINE]; + char openfile[MAX_LINE+sizeof(BINARY_FILE_NAME)]; /* ignore returned value from getcwd */ - if (getcwd(pwd, 100) == NULL) {} + if (getcwd(pwd, MAX_LINE) == NULL) {} - sprintf(openfile, "%s/testfile.dlt", pwd); + sprintf(openfile, "%s" BINARY_FILE_NAME, pwd); /*---------------------------------------*/ /* Normal Use-Case, expected 0 */ @@ -3214,11 +3218,11 @@ TEST(t_dlt_message_payload, abnormal) static char text[DLT_DAEMON_TEXTSIZE]; /* Get PWD so file and filter can be used*/ - char pwd[100]; - if (getcwd(pwd, 100) == NULL) {} + char pwd[MAX_LINE]; + if (getcwd(pwd, MAX_LINE) == NULL) {} - char openfile[114]; - sprintf(openfile, "%s/testfile.dlt", pwd); + char openfile[MAX_LINE+sizeof(BINARY_FILE_NAME)];; + sprintf(openfile, "%s" BINARY_FILE_NAME, pwd); /*---------------------------------------*/ /* Uninizialised, expected -1 */ @@ -3363,13 +3367,13 @@ TEST(t_dlt_message_set_extraparamters, normal) { DltFile file; /* Get PWD so file can be used*/ - char pwd[100]; - char openfile[114]; + char pwd[MAX_LINE]; + char openfile[MAX_LINE+sizeof(BINARY_FILE_NAME)]; /* ignore returned value from getcwd */ - if (getcwd(pwd, 100) == NULL) {} + if (getcwd(pwd, MAX_LINE) == NULL) {} - sprintf(openfile, "%s/testfile.dlt", pwd); + sprintf(openfile, "%s" BINARY_FILE_NAME, pwd); /*---------------------------------------*/ /* Normal Use-Case, expect 0 */ @@ -3394,10 +3398,10 @@ TEST(t_dlt_message_set_extraparamters, abnormal) { /* DltFile file; */ /* // Get PWD so file and filter can be used */ -/* char pwd[100]; */ -/* getcwd(pwd, 100); */ -/* char openfile[114]; */ -/* sprintf(openfile, "%s/testfile.dlt", pwd); */ +/* char pwd[MAX_LINE]; */ +/* getcwd(pwd, MAX_LINE); */ +/* char openfile[MAX_LINE+sizeof(BINARY_FILE_NAME)];; */ +/* sprintf(openfile, "%s" BINARY_FILE_NAME, pwd); */ /*---------------------------------------*/ /* Uninizialised, expected -1 */ @@ -3432,13 +3436,13 @@ TEST(t_dlt_message_read, normal) { DltFile file; /* Get PWD so file can be used */ - char pwd[100]; - char openfile[114]; + char pwd[MAX_LINE]; + char openfile[MAX_LINE+sizeof(BINARY_FILE_NAME)]; /* ignore returned value from getcwd */ - if (getcwd(pwd, 100) == NULL) {} + if (getcwd(pwd, MAX_LINE) == NULL) {} - sprintf(openfile, "%s/testfile.dlt", pwd); + sprintf(openfile, "%s" BINARY_FILE_NAME, pwd); /*---------------------------------------*/ DltBuffer buf; @@ -3480,13 +3484,13 @@ TEST(t_dlt_message_read, nullpointer) { DltFile file; /* Get PWD so file can be used*/ - char pwd[100]; - char openfile[114]; + char pwd[MAX_LINE]; + char openfile[MAX_LINE+sizeof(BINARY_FILE_NAME)]; /* ignore returned value from getcwd */ - if (getcwd(pwd, 100) == NULL) {} + if (getcwd(pwd, MAX_LINE) == NULL) {} - sprintf(openfile, "%s/testfile.dlt", pwd); + sprintf(openfile, "%s" BINARY_FILE_NAME, pwd); /*---------------------------------------*/ DltBuffer buf; @@ -3508,13 +3512,13 @@ TEST(t_dlt_message_argument_print, normal) { DltFile file; /* Get PWD so file can be used*/ - char pwd[100]; - char openfile[114]; + char pwd[MAX_LINE]; + char openfile[MAX_LINE+sizeof(BINARY_FILE_NAME)]; /* ignore returned value from getcwd */ - if (getcwd(pwd, 100) == NULL) {} + if (getcwd(pwd, MAX_LINE) == NULL) {} - sprintf(openfile, "%s/testfile.dlt", pwd); + sprintf(openfile, "%s" BINARY_FILE_NAME, pwd); static char text[DLT_DAEMON_TEXTSIZE]; /*---------------------------------------*/ uint8_t *ptr; @@ -3566,10 +3570,10 @@ TEST(t_dlt_message_argument_print, abnormal) { /* DltFile file; */ /* Get PWD so file and filter can be used */ -/* char pwd[100]; */ -/* getcwd(pwd, 100); */ -/* char openfile[114]; */ -/* sprintf(openfile, "%s/testfile.dlt", pwd); */ +/* char pwd[MAX_LINE]; */ +/* getcwd(pwd, MAX_LINE); */ +/* char openfile[MAX_LINE+sizeof(BINARY_FILE_NAME)];; */ +/* sprintf(openfile, "%s" BINARY_FILE_NAME, pwd); */ /* static char text[DLT_DAEMON_TEXTSIZE]; */ /*---------------------------------------*/ /* uint8_t *ptr; */ @@ -3600,13 +3604,13 @@ TEST(t_dlt_message_argument_print, nullpointer) { DltFile file; /* Get PWD so file can be used*/ - char pwd[100]; - char openfile[114]; + char pwd[MAX_LINE]; + char openfile[MAX_LINE+sizeof(BINARY_FILE_NAME)]; /* ignore returned value from getcwd */ - if (getcwd(pwd, 100) == NULL) {} + if (getcwd(pwd, MAX_LINE) == NULL) {} - sprintf(openfile, "%s/testfile.dlt", pwd); + sprintf(openfile, "%s" BINARY_FILE_NAME, pwd); static char text[DLT_DAEMON_TEXTSIZE]; /*---------------------------------------*/ uint8_t *ptr; From be4f780ee13e3db7828b1a34a9303eb92528404f Mon Sep 17 00:00:00 2001 From: LUU QUANG MINH Date: Thu, 11 Aug 2022 19:46:24 +0700 Subject: [PATCH 28/35] unittest: Unit test for dlt-logd-converter + Add header file + Add gtest file source + Small modification for binary source code + Add test for dlt-logd-converter in CMakeLists Signed-off-by: LUU QUANG MINH --- include/dlt/dlt-logd-converter.hpp | 270 +++++++ src/android/dlt-logd-converter.cpp | 135 ++-- .../dlt-logd-converter/CMakeLists.txt | 15 + .../abnormal-dlt-logd-converter.conf | 0 .../dlt-logd-converter.conf | 0 .../dlt-logd-converter}/dlt-logdctxt.json | 2 +- .../gtest_dlt_logd_converter.cpp | 698 ++++++++++++++++++ 7 files changed, 1067 insertions(+), 53 deletions(-) create mode 100644 include/dlt/dlt-logd-converter.hpp create mode 100644 tests/component/dlt-logd-converter/CMakeLists.txt rename tests/{ => component/dlt-logd-converter}/abnormal-dlt-logd-converter.conf (100%) rename tests/{ => component/dlt-logd-converter}/dlt-logd-converter.conf (100%) rename tests/{ => component/dlt-logd-converter}/dlt-logdctxt.json (89%) create mode 100644 tests/component/dlt-logd-converter/gtest_dlt_logd_converter.cpp diff --git a/include/dlt/dlt-logd-converter.hpp b/include/dlt/dlt-logd-converter.hpp new file mode 100644 index 000000000..069e884fd --- /dev/null +++ b/include/dlt/dlt-logd-converter.hpp @@ -0,0 +1,270 @@ +/** + * Copyright (C) 2019-2022 Advanced Driver Information Technology. + * This code is developed by Advanced Driver Information Technology. + * Copyright of Advanced Driver Information Technology, Bosch and DENSO. + * + * dlt-logd-converter : Retrieve log entries from logd and forward them to DLT. + * + * \copyright + * This Source Code Form is subject to the terms of the + * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with + * this file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * + * \Author Luu Quang Minh ADIT 2022 + * + * \file: dlt-logd-converter.hpp + * For further information see http://www.covesa.org/. + **/ + +/******************************************************************************* +** ** +** SRC-MODULE: dlt-logd-converter.hpp ** +** ** +** TARGET : ANDROID ** +** ** +** PROJECT : DLT ** +** ** +** AUTHOR : Minh.LuuQuang@vn.bosch.com ** +** ** +** PURPOSE : Header for DLT logd converter ** +** ** +** REMARKS : ** +** ** +** PLATFORM DEPENDANT [yes/no]: yes ** +** ** +** TO BE CHANGED BY USER [yes/no]: no ** +** ** +*******************************************************************************/ + +#ifndef DLT_LOGD_CONVERTER_HPP +#define DLT_LOGD_CONVERTER_HPP + +#pragma once +#include +#include +#include +#include +#include + +#ifndef DLT_UNIT_TESTS +# include +# include +# include +#endif + +#include +#include +#include +#include +#include + +using namespace std; + +/* MACRO */ +#define CONFIGURATION_FILE_DIR "/vendor/etc/dlt-logd-converter.conf" +#define JSON_FILE_DIR "/vendor/etc/dlt-logdctxt.json" +#define MAX_LINE 1024 + +typedef struct +{ + char *appID; + char *ctxID; + char *json_file_dir; + char *default_ctxID; + char *conf_file_dir; +} dlt_logd_configuration; + +#ifdef DLT_UNIT_TESTS +#define LOGGER_LOGD (1U << 31) +#define READ_ONLY 0x0000 +#define NS_PER_SEC 1000000000ULL +#define LOGGER_ENTRY_MAX_LEN (5 * 1024) + +struct logger_list +{ + int mode; + unsigned int tail; + pid_t pid; + uint32_t log_mask; + int signal; + char dummy_data[96]; +}; + +typedef enum { + LOG_ID_MIN = 0, + + /** The main log buffer. This is the only log buffer available to apps. */ + LOG_ID_MAIN = 0, + /** The radio log buffer. */ + LOG_ID_RADIO = 1, + /** The event log buffer. */ + LOG_ID_EVENTS = 2, + /** The system log buffer. */ + LOG_ID_SYSTEM = 3, + /** The crash log buffer. */ + LOG_ID_CRASH = 4, + /** The statistics log buffer. */ + LOG_ID_STATS = 5, + /** The security log buffer. */ + LOG_ID_SECURITY = 6, + /** The kernel log buffer. */ + LOG_ID_KERNEL = 7, + + LOG_ID_MAX, + + /** Let the logging function choose the best log target. */ + LOG_ID_DEFAULT = 0x7FFFFFFF +} log_id_t; + +typedef enum { + /** For internal use only. */ + ANDROID_LOG_UNKNOWN = 0, + /** The default priority, for internal use only. */ + ANDROID_LOG_DEFAULT, /* only for SetMinPriority() */ + /** Verbose logging. Should typically be disabled for a release apk. */ + ANDROID_LOG_VERBOSE, + /** Debug logging. Should typically be disabled for a release apk. */ + ANDROID_LOG_DEBUG, + /** Informational logging. Should typically be disabled for a release apk. */ + ANDROID_LOG_INFO, + /** Warning logging. For use with recoverable failures. */ + ANDROID_LOG_WARN, + /** Error logging. For use with unrecoverable failures. */ + ANDROID_LOG_ERROR, + /** Fatal logging. For use when aborting. */ + ANDROID_LOG_FATAL, + /** For internal use only. */ + ANDROID_LOG_SILENT, /* only for SetMinPriority(); must be last */ +} android_LogPriority; + +struct logger_entry { + uint16_t len; /* length of the payload */ + uint16_t hdr_size; /* sizeof(struct logger_entry) */ + int32_t pid; /* generating process's pid */ + uint32_t tid; /* generating process's tid */ + uint32_t sec; /* seconds since Epoch */ + uint32_t nsec; /* nanoseconds */ + uint32_t lid; /* log id of the payload, bottom 4 bits currently */ + uint32_t uid; /* generating process's uid */ +}; + +struct log_msg { + union { + unsigned char buf[LOGGER_ENTRY_MAX_LEN + 1]; + struct logger_entry entry; + } __attribute__((aligned(4))); + uint64_t nsec() const { + return static_cast(entry.sec) * NS_PER_SEC + entry.nsec; + } + log_id_t id() { + return static_cast(entry.lid); + } + char* msg() { + unsigned short hdr_size = entry.hdr_size; + if (hdr_size >= sizeof(struct log_msg) - sizeof(entry)) { + return nullptr; + } + return reinterpret_cast(buf) + hdr_size; + } + unsigned int len() { return entry.hdr_size + entry.len; } +}; + +struct dlt_log_container { + DltContext *ctx; + DltLogLevelType log_level; + uint32_t ts; + const char *tag; + const char *message; +}; + +/* Android API faked method for unit test */ +string t_load_json_file(); +struct logger *t_android_logger_open(logger_list *logger_list,log_id_t log_id); +struct logger_list *t_android_logger_list_alloc(int mode, unsigned int tail, pid_t pid); +int t_android_logger_list_read(logger_list *logger_list, log_msg *t_log_msg); +#endif +/** + * Prints manual page for instruction + * @param prog_name binary name from stdin + * @return void + */ +DLT_STATIC void usage(char *prog_name); +/** + * Initializes configuration to default values + * @return scenario statement + */ +DLT_STATIC int init_configuration(); +/** + * Reads command line options and set the values in provided structure + * @return scenario statement + */ +DLT_STATIC int read_command_line(int argc, char *argv[]); +/** + * Reads options from the configuration file + * @param file_name configuration file name/path + * @return scenario statement + */ +DLT_STATIC int load_configuration_file(const char *file_name); +/** + * Frees the memory allocated for configuration values. + * @return void + */ +DLT_STATIC void clean_mem(); +/** + * Parses data from a JSON file into an internal data + * structure and do registration with the new ctxID. + * @return void + */ +DLT_STATIC void json_parser(); +/** + * Doing tag matching for pairs in JSON unordered map. + * @param tag tag of the application that needs new context ID + * @return pointer to DLT context mapped with the corresponding tag + */ +DLT_STATIC DltContext* find_tag_in_json(const char *tag); +/** + * Doing initialization for logger. + * @param logger_list pointer to a logger list struct + * @param log_id identifies a specific log buffer + * @return pointer to a logger object logging messages for applications + */ +DLT_STATIC struct logger *init_logger(struct logger_list *logger_list, log_id_t log_id); +/** + * Doing initialization for logger list. + * @param skip_binary_buffers boolean value to use event buffers + * @return pointer to a logger list struct + */ +DLT_STATIC struct logger_list *init_logger_list(bool skip_binary_buffers); +/** + * Getting a context from an android log message. + * @param log_msg struct contains android log data including log messages + * @return pointer to DLT context mapped with the corresponding tag + */ +DLT_STATIC DltContext *get_log_context_from_log_msg(struct log_msg *log_msg); +/** + * Getting timestamp from an android log message. + * @param log_msg struct contains android log data including log messages + * @return timestamp of messages from a logger entry + */ +DLT_STATIC uint32_t get_timestamp_from_log_msg(struct log_msg *log_msg); +/** + * Getting log level from an android log message. + * @param log_msg struct contains android log data including log messages + * @return DLT log level + */ +DLT_STATIC DltLogLevelType get_log_level_from_log_msg(struct log_msg *log_msg); +/** + * Handling received signal. + * @param signal received signal to handle + * @return void + */ +void signal_handler(int signal); +/** + * Continuously converting android logs to dlt logs. + * @param logger_list pointer to a logger list struct + * @return scenario statement + */ +DLT_STATIC int logd_parser_loop(struct logger_list *logger_list); + +#endif /* DLT_LOGD_CONVERTER_HPP */ diff --git a/src/android/dlt-logd-converter.cpp b/src/android/dlt-logd-converter.cpp index b536bc1a7..785f47253 100644 --- a/src/android/dlt-logd-converter.cpp +++ b/src/android/dlt-logd-converter.cpp @@ -37,22 +37,7 @@ ** ** *******************************************************************************/ -#include -#include -#include -#include -#include - -#include - -#include -#include -#include -#include -#include -#include - -using namespace std; +#include "dlt-logd-converter.hpp" DLT_DECLARE_CONTEXT(dlt_ctx_self) DLT_DECLARE_CONTEXT(dlt_ctx_main) @@ -65,30 +50,16 @@ DLT_DECLARE_CONTEXT(dlt_ctx_secu) /* Binary Buffer */ DLT_DECLARE_CONTEXT(dlt_ctx_krnl) DLT_DECLARE_CONTEXT(dlt_ctx_othe) -/* MACRO */ -#define CONFIGURATION_FILE_DIR "/vendor/etc/dlt-logd-converter.conf" -#define JSON_FILE_DIR "/vendor/etc/dlt-logdctxt.json" -#define MAX_LINE 1024 - -/* Global variables and data structures */ -typedef struct -{ - char *appID; - char *ctxID; - char *json_file_dir; - char *default_ctxID; - char *conf_file_dir; -} dlt_logd_configuration; - -static dlt_logd_configuration *logd_conf = nullptr; +/* Global variables */ +DLT_STATIC dlt_logd_configuration *logd_conf = nullptr; volatile sig_atomic_t exit_parser_loop = false; -static unordered_map map_ctx_json; +DLT_STATIC unordered_map map_ctx_json; bool json_is_available = false; /** * Print manual page for instruction. */ -static void usage(char *prog_name) +DLT_STATIC void usage(char *prog_name) { char version[255]; dlt_get_version(version, 255); @@ -106,7 +77,7 @@ static void usage(char *prog_name) /** * Initialize configuration to default values. */ -static int init_configuration() +DLT_STATIC int init_configuration() { logd_conf = new dlt_logd_configuration; if (logd_conf == nullptr) { @@ -124,7 +95,7 @@ static int init_configuration() /** * Read command line options and set the values in provided structure */ -static int read_command_line(int argc, char *argv[]) +DLT_STATIC int read_command_line(int argc, char *argv[]) { int opt; while ((opt = getopt(argc, argv, "hc:")) != -1) { @@ -158,7 +129,7 @@ static int read_command_line(int argc, char *argv[]) /** * Read options from the configuration file */ -static int load_configuration_file(const char *file_name) +DLT_STATIC int load_configuration_file(const char *file_name) { ifstream file(file_name); char *token; @@ -209,7 +180,7 @@ static int load_configuration_file(const char *file_name) return 0; } -static void clean_mem() +DLT_STATIC void clean_mem() { if (logd_conf->appID) { delete logd_conf->appID; @@ -248,8 +219,9 @@ static void clean_mem() * Parses data from a json file into an internal data * structure and do registration with the new ctxID. */ -static void json_parser() +DLT_STATIC void json_parser() { +#ifndef DLT_UNIT_TESTS Json::Value console = Json::nullValue; Json::CharReaderBuilder builder; string errs; @@ -266,7 +238,27 @@ static void json_parser() string json_ctxID = iter.key().asString(); string json_tag = (*iter)["tag"].asString(); string json_description = (*iter)["description"].asString(); - +#endif +#ifdef DLT_UNIT_TESTS + if (json_is_available) { + string json_ctxID; + string json_tag; + string json_description; + string str = t_load_json_file(); + char *token = strtok(&str[0], " "); + while(token != nullptr) { + json_ctxID = string(token); + token = strtok(nullptr, " "); + + json_tag = string(token); + token = strtok(nullptr, " "); + + json_description = string(token); + if (json_description == "null") { + json_description = ""; + } + token = strtok(nullptr, " "); +#endif DltContext *ctx = new DltContext(); auto ret = map_ctx_json.emplace(json_tag, ctx); if (!ret.second) { @@ -281,16 +273,22 @@ static void json_parser() json_ctxID.c_str(), json_description.c_str()); } +#ifdef DLT_UNIT_TESTS + } + } +#endif +#ifndef DLT_UNIT_TESTS } } file.close(); +#endif } /** * Doing tag matching in a loop from first * elementof json vector to the end of the list. */ -static DltContext* find_tag_in_json(const char *tag) +DLT_STATIC DltContext* find_tag_in_json(const char *tag) { string tag_str(tag); auto search = map_ctx_json.find(tag_str); @@ -309,26 +307,38 @@ static DltContext* find_tag_in_json(const char *tag) } } -static inline struct logger *init_logger(struct logger_list *logger_list, log_id_t log_id) +DLT_STATIC struct logger *init_logger(struct logger_list *logger_list, log_id_t log_id) { struct logger *logger; +#ifndef DLT_UNIT_TESTS logger = android_logger_open(logger_list, log_id); if (logger == nullptr) { DLT_LOG(dlt_ctx_self, DLT_LOG_WARN, DLT_STRING("Could not open logd buffer ID = "), DLT_INT64(log_id)); } +#endif +#ifdef DLT_UNIT_TESTS + logger = t_android_logger_open(logger_list, log_id); +#endif return logger; } -static struct logger_list *init_logger_list(bool skip_binary_buffers) +DLT_STATIC struct logger_list *init_logger_list(bool skip_binary_buffers) { struct logger_list *logger_list; +#ifndef DLT_UNIT_TESTS logger_list = android_logger_list_alloc(O_RDONLY, 0, 0); if (logger_list == nullptr) { DLT_LOG(dlt_ctx_self, DLT_LOG_FATAL, DLT_STRING("Could not allocate logger list")); return nullptr; } - +#endif +#ifdef DLT_UNIT_TESTS + logger_list = t_android_logger_list_alloc(READ_ONLY, 0, 0); + if (logger_list == nullptr) { + return nullptr; + } +#endif /** * logd buffer types are defined in: * system/core/include/log/android/log.h @@ -348,7 +358,7 @@ static struct logger_list *init_logger_list(bool skip_binary_buffers) return logger_list; } -static DltContext *get_log_context_from_log_msg(struct log_msg *log_msg) +DLT_STATIC DltContext *get_log_context_from_log_msg(struct log_msg *log_msg) { switch (log_msg->id()) { case LOG_ID_MAIN: @@ -372,13 +382,13 @@ static DltContext *get_log_context_from_log_msg(struct log_msg *log_msg) } } -static uint32_t get_timestamp_from_log_msg(struct log_msg *log_msg) +DLT_STATIC uint32_t get_timestamp_from_log_msg(struct log_msg *log_msg) { /* in 0.1 ms = 100 us */ return (uint32_t)log_msg->entry.sec * 10000 + (uint32_t)log_msg->entry.nsec / 100000; } -static DltLogLevelType get_log_level_from_log_msg(struct log_msg *log_msg) +DLT_STATIC DltLogLevelType get_log_level_from_log_msg(struct log_msg *log_msg) { android_LogPriority priority = static_cast(log_msg->msg()[0]); switch (priority) { @@ -411,12 +421,12 @@ void signal_handler(int signal) } } -static int logd_parser_loop(struct logger_list *logger_list) +DLT_STATIC int logd_parser_loop(struct logger_list *logger_list) { - struct log_msg log_msg; int ret; DltContext *ctx = nullptr; - +#ifndef DLT_UNIT_TESTS + struct log_msg log_msg; DLT_LOG(dlt_ctx_self, DLT_LOG_VERBOSE, DLT_STRING("Entering parsing loop")); while (!exit_parser_loop) { @@ -437,7 +447,18 @@ static int logd_parser_loop(struct logger_list *logger_list) DLT_STRING("android_logger_list_read unexpected return="), DLT_INT32(ret)); return ret; } - +#endif +#ifdef DLT_UNIT_TESTS + extern struct dlt_log_container *dlt_log_data; + extern struct log_msg t_log_msg; + struct log_msg &log_msg = t_log_msg; + ret = t_android_logger_list_read(logger_list, &log_msg); + if (ret == -EAGAIN || ret == -EINTR || + ret == -EINVAL || ret == -ENOMEM || + ret == -ENODEV || ret == -EIO) { + return ret; + } +#endif /* Look into system/core/liblog/logprint.c for buffer format. "\0\0" */ const char *tag = ""; @@ -461,6 +482,7 @@ static int logd_parser_loop(struct logger_list *logger_list) uint32_t ts = get_timestamp_from_log_msg(&log_msg); +#ifndef DLT_UNIT_TESTS /* Binary buffers are not supported by DLT_STRING DLT_RAW would need the message length */ DLT_LOG_TS(*ctx, log_level, ts, DLT_STRING(tag), @@ -470,10 +492,18 @@ static int logd_parser_loop(struct logger_list *logger_list) } DLT_LOG(dlt_ctx_self, DLT_LOG_VERBOSE, DLT_STRING("Exited parsing loop")); - +#endif +#ifdef DLT_UNIT_TESTS + dlt_log_data->ctx = ctx; + dlt_log_data->log_level = log_level; + dlt_log_data->ts = ts; + dlt_log_data->tag = tag; + dlt_log_data->message = message; +#endif return EXIT_SUCCESS; } +#ifndef DLT_UNIT_TESTS int main(int argc, char *argv[]) { (void) argc; @@ -563,3 +593,4 @@ int main(int argc, char *argv[]) clean_mem(); return ret; } +#endif diff --git a/tests/component/dlt-logd-converter/CMakeLists.txt b/tests/component/dlt-logd-converter/CMakeLists.txt new file mode 100644 index 000000000..8a91654f9 --- /dev/null +++ b/tests/component/dlt-logd-converter/CMakeLists.txt @@ -0,0 +1,15 @@ +########################## +# DLT logd-converter test +########################## +configure_file(${PROJECT_SOURCE_DIR}/tests/component/dlt-logd-converter/dlt-logd-converter.conf ${CMAKE_CURRENT_BINARY_DIR} COPYONLY) +configure_file(${PROJECT_SOURCE_DIR}/tests/component/dlt-logd-converter/dlt-logdctxt.json ${CMAKE_CURRENT_BINARY_DIR} COPYONLY) +configure_file(${PROJECT_SOURCE_DIR}/tests/component/dlt-logd-converter/abnormal-dlt-logd-converter.conf ${CMAKE_CURRENT_BINARY_DIR} COPYONLY) + +set(dlt_logd_converter_SRC ${PROJECT_SOURCE_DIR}/src/android/dlt-logd-converter.cpp) +set(gtest_dlt_logd_converter_SRC ${PROJECT_SOURCE_DIR}/tests/component/dlt-logd-converter/gtest_dlt_logd_converter.cpp) + +add_executable(gtest_dlt_logd_converter ${dlt_logd_converter_SRC} ${gtest_dlt_logd_converter_SRC}) +target_link_libraries(gtest_dlt_logd_converter ${DLT_LIBRARIES}) + +add_test(NAME gtest_dlt_logd_converter + COMMAND gtest_dlt_logd_converter) diff --git a/tests/abnormal-dlt-logd-converter.conf b/tests/component/dlt-logd-converter/abnormal-dlt-logd-converter.conf similarity index 100% rename from tests/abnormal-dlt-logd-converter.conf rename to tests/component/dlt-logd-converter/abnormal-dlt-logd-converter.conf diff --git a/tests/dlt-logd-converter.conf b/tests/component/dlt-logd-converter/dlt-logd-converter.conf similarity index 100% rename from tests/dlt-logd-converter.conf rename to tests/component/dlt-logd-converter/dlt-logd-converter.conf diff --git a/tests/dlt-logdctxt.json b/tests/component/dlt-logd-converter/dlt-logdctxt.json similarity index 89% rename from tests/dlt-logdctxt.json rename to tests/component/dlt-logd-converter/dlt-logdctxt.json index 82291040a..6bcdf7818 100644 --- a/tests/dlt-logdctxt.json +++ b/tests/component/dlt-logd-converter/dlt-logdctxt.json @@ -1,6 +1,6 @@ { "QTIV": { - "tag": "QtiVehicleHal ", + "tag": "QtiVehicleHal", "description": "" }, "NETW": { diff --git a/tests/component/dlt-logd-converter/gtest_dlt_logd_converter.cpp b/tests/component/dlt-logd-converter/gtest_dlt_logd_converter.cpp new file mode 100644 index 000000000..ffd3615f8 --- /dev/null +++ b/tests/component/dlt-logd-converter/gtest_dlt_logd_converter.cpp @@ -0,0 +1,698 @@ +/** + * Copyright (C) 2019-2022 Advanced Driver Information Technology. + * This code is developed by Advanced Driver Information Technology. + * Copyright of Advanced Driver Information Technology, Bosch and DENSO. + * + * dlt-logd-converter : Retrieve log entries from logd and forward them to DLT. + * + * \copyright + * This Source Code Form is subject to the terms of the + * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with + * this file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * + * \Author Luu Quang Minh ADIT 2022 + * + * \file: gtest_dlt_logd_converter.cpp + * For further information see http://www.covesa.org/. + **/ + +/******************************************************************************* +** ** +** SRC-MODULE: gtest_dlt_logd_converter.cpp ** +** ** +** TARGET : ANDROID ** +** ** +** PROJECT : DLT ** +** ** +** AUTHOR : Minh.LuuQuang@vn.bosch.com ** +** ** +** PURPOSE : Retrieve log entries from logd and forward them to DLT. ** +** ** +** REMARKS : ** +** ** +** PLATFORM DEPENDANT [yes/no]: yes ** +** ** +** TO BE CHANGED BY USER [yes/no]: no ** +** ** +*******************************************************************************/ + +#include "gtest/gtest.h" +#include "dlt-logd-converter.hpp" + +/* MACRO */ +#undef CONFIGURATION_FILE_DIR +#undef JSON_FILE_DIR +#define CONFIGURATION_FILE_DIR "dlt-logd-converter.conf" +#define JSON_FILE_DIR "dlt-logdctxt.json" +#define ABNORMAL_CONFIGURATION_FILE_DIR "abnormal-dlt-logd-converter.conf" + +extern dlt_logd_configuration *logd_conf; +extern unordered_map map_ctx_json; +extern bool json_is_available; +extern volatile sig_atomic_t exit_parser_loop; + +DLT_IMPORT_CONTEXT(dlt_ctx_self); +DLT_IMPORT_CONTEXT(dlt_ctx_main); +DLT_IMPORT_CONTEXT(dlt_ctx_rdio); +DLT_IMPORT_CONTEXT(dlt_ctx_evnt); +DLT_IMPORT_CONTEXT(dlt_ctx_syst); +DLT_IMPORT_CONTEXT(dlt_ctx_crsh); +DLT_IMPORT_CONTEXT(dlt_ctx_stat); +DLT_IMPORT_CONTEXT(dlt_ctx_secu); +DLT_IMPORT_CONTEXT(dlt_ctx_krnl); +DLT_IMPORT_CONTEXT(dlt_ctx_othe); + +struct logger_list *t_logger_list = nullptr; +struct dlt_log_container *dlt_log_data = nullptr; +struct log_msg t_log_msg; + +string t_load_json_file() +{ + ifstream file(JSON_FILE_DIR); + char *token; + string pattern; + string json_sequence; + + file.is_open(); + while (!file.eof()) { + getline(file, pattern); + if (pattern.size() == 0) { + continue; + } + if (pattern[0] != '#') { + token = strtok(&pattern[0], " {\":,}"); + while( token != NULL ) { + if(strcmp(token, "tag") != 0 && strcmp(token, "description") != 0) { + json_sequence = json_sequence + strdup(token) + " "; + } + else { + if(pattern.find("\"\"") != string::npos) { + json_sequence = json_sequence + strdup("null") + " "; + } + } + token = strtok(NULL, " {\":,}"); + } + } + } + file.close(); + return json_sequence; +} + +struct logger *t_android_logger_open(struct logger_list *logger_list, log_id_t log_id) +{ + if (logger_list ==nullptr || (log_id >= LOG_ID_MAX)) { + return nullptr; + } + logger_list->log_mask |= 1 << log_id; + uintptr_t t_logger = log_id | LOGGER_LOGD; + return reinterpret_cast(t_logger); +} + +struct logger_list *t_android_logger_list_alloc(int mode, unsigned int tail, pid_t pid) +{ + t_logger_list = new logger_list; + t_logger_list->mode = mode; + t_logger_list->tail = tail; + t_logger_list->pid = pid; + t_logger_list->log_mask = 0; + + return t_logger_list; +} + +int t_android_logger_list_read(logger_list *logger_list, struct log_msg *t_log_msg) +{ + if (!t_log_msg->entry.len) { + t_log_msg->entry.len = LOGGER_ENTRY_MAX_LEN; + } + if (!t_log_msg->entry.hdr_size) { + t_log_msg->entry.hdr_size = 100; + } + if (!t_log_msg->entry.sec) { + t_log_msg->entry.sec = 1/10000; + } + if (!t_log_msg->entry.nsec) { + t_log_msg->entry.nsec = 100000; + } + if (!t_log_msg->entry.lid) { + t_log_msg->entry.lid = LOG_ID_MAIN; + } + if (!t_log_msg->buf[t_log_msg->entry.hdr_size]) { + t_log_msg->buf[t_log_msg->entry.hdr_size] = (unsigned char)ANDROID_LOG_INFO; + } + if (logger_list->signal == -EINVAL) { + return -EINVAL; + } + if (logger_list->signal == -EAGAIN) { + return -EAGAIN; + } + if (logger_list->signal == -EINTR) { + return -EINTR; + } + if (logger_list->signal == -ENOMEM) { + return -ENOMEM; + } + if (logger_list->signal == -ENODEV) { + return -ENODEV; + } + if (logger_list->signal == -EIO) { + return -EIO; + } + return logger_list->signal; +} + +TEST(t_usage, normal) +{ + char version[255]; + dlt_get_version(version, 255); + stringstream buffer; + streambuf *prev_cout_buf = cout.rdbuf(buffer.rdbuf()); + + usage(strdup("dlt-logd-converter")); + + EXPECT_NE(buffer.str().find("Usage: dlt-logd-converter [-h] [-c FILENAME]"), + string::npos); + EXPECT_NE(buffer.str().find("Application to manage Android logs."), + string::npos); + EXPECT_NE(buffer.str().find("Format and forward Android messages from ANDROID to DLT."), + string::npos); + EXPECT_NE(buffer.str().find(string(version)), + string::npos); + EXPECT_NE(buffer.str().find("Options:"), + string::npos); + EXPECT_NE(buffer.str().find(" -h Display a short help text."), + string::npos); + EXPECT_NE(buffer.str().find(" -c filename Use an alternative configuration file."), + string::npos); + EXPECT_NE(buffer.str().find(" Default: "), + string::npos); + EXPECT_NE(buffer.str().find("/vendor/etc/dlt-logd-converter.conf"), + string::npos); + cout.rdbuf(prev_cout_buf); +} + +TEST(t_init_configuration, normal) +{ + int ret = init_configuration(); + + EXPECT_EQ(DLT_RETURN_OK, ret); + EXPECT_STREQ("LOGD", logd_conf->appID); + EXPECT_STREQ("LOGF", logd_conf->ctxID); + EXPECT_STREQ("/vendor/etc/dlt-logdctxt.json", logd_conf->json_file_dir); + EXPECT_STREQ("OTHE", logd_conf->default_ctxID); + EXPECT_STREQ("/vendor/etc/dlt-logd-converter.conf", logd_conf->conf_file_dir); +} + +TEST(t_read_command_line, normal) +{ + char *arg[2]; + arg[0] = strdup("dlt-logd-converter"); + arg[1] = strdup("h"); + EXPECT_EQ(DLT_RETURN_OK, read_command_line(2, arg)); + + char *t_arg[3]; + t_arg[0] = strdup("dlt-logd-converter"); + t_arg[1] = strdup("c"); + t_arg[2] = strdup("custom.conf"); + EXPECT_EQ(DLT_RETURN_OK, read_command_line(3, t_arg)); +} + +TEST(t_load_configuration_file, normal) +{ + logd_conf->appID = strdup("LOGD"); + logd_conf->ctxID = strdup("LOGF"); + logd_conf->json_file_dir = strdup(JSON_FILE_DIR); + logd_conf->default_ctxID = strdup("OTHE"); + logd_conf->conf_file_dir = strdup(CONFIGURATION_FILE_DIR); + int ret = load_configuration_file(CONFIGURATION_FILE_DIR); + + EXPECT_EQ(DLT_RETURN_OK, ret); + EXPECT_STREQ("LOGD", logd_conf->appID); + EXPECT_STREQ("LOGF", logd_conf->ctxID); + EXPECT_STREQ("/vendor/etc/dlt-logdctxt.json", logd_conf->json_file_dir); + EXPECT_STREQ("OTHE", logd_conf->default_ctxID); +} + +/* +TEST(t_load_configuration_file, abnormal) +{ + logd_conf->appID = strdup("LOGD"); + logd_conf->ctxID = strdup("LOGF"); + logd_conf->json_file_dir = strdup(JSON_FILE_DIR); + logd_conf->default_ctxID = strdup("OTHE"); + logd_conf->conf_file_dir = strdup(CONFIGURATION_FILE_DIR); + int ret = load_configuration_file(ABNORMAL_CONFIGURATION_FILE_DIR); + + EXPECT_EQ(DLT_RETURN_OK, ret); + EXPECT_STREQ("LOGDCONV", logd_conf->appID); + EXPECT_STREQ("DLT", logd_conf->ctxID); + EXPECT_STREQ("/vendor/etc/dlt-logdctxt.json", logd_conf->json_file_dir); + EXPECT_STREQ("OTHE", logd_conf->default_ctxID); +}*/ + +TEST(t_load_configuration_file, nullpointer) +{ + EXPECT_EQ(DLT_RETURN_ERROR, load_configuration_file(nullptr)); +} + +TEST(t_clean_mem, normal) +{ + logd_conf->appID = strdup("LOGD"); + logd_conf->ctxID = strdup("LOGF"); + logd_conf->json_file_dir = strdup(JSON_FILE_DIR); + logd_conf->default_ctxID = strdup("OTHE"); + logd_conf->conf_file_dir = strdup(CONFIGURATION_FILE_DIR); + + json_is_available = true; + string json_ctxID; + string json_tag; + string json_description; + string str = t_load_json_file(); + char *token = strtok(&str[0], " "); + while(token != nullptr) { + json_ctxID = string(token); + token = strtok(nullptr, " "); + + json_tag = string(token); + token = strtok(nullptr, " "); + + json_description = string(token); + if (json_description == "null") { + json_description = ""; + } + token = strtok(nullptr, " "); + + DltContext *ctx = new DltContext(); + auto ret = map_ctx_json.emplace(json_tag, ctx); + if (!ret.second) { + delete ctx; + ctx = nullptr; + } + } + + clean_mem(); + + EXPECT_TRUE(logd_conf == nullptr); + EXPECT_TRUE(map_ctx_json.find("QtiVehicleHal") == map_ctx_json.end()); + EXPECT_TRUE(map_ctx_json.find("NetworkSecurityConfig") == map_ctx_json.end()); + EXPECT_TRUE(map_ctx_json.find("ProcessState") == map_ctx_json.end()); + EXPECT_TRUE(map_ctx_json.find("Zygote") == map_ctx_json.end()); +} + +TEST(t_json_parser, normal) +{ + EXPECT_EQ(DLT_RETURN_OK, system("dlt-daemon -d > /dev/null")); + EXPECT_EQ(DLT_RETURN_OK, system("sleep 0.2")); + DLT_REGISTER_APP("LOGD", "logd -> dlt adapter"); + DLT_REGISTER_CONTEXT(dlt_ctx_self, "LOGF", "logd retriever"); + + json_is_available = true; + json_parser(); + + EXPECT_TRUE(map_ctx_json.find("QtiVehicleHal") != map_ctx_json.end()); + EXPECT_TRUE(map_ctx_json.find("NetworkSecurityConfig") != map_ctx_json.end()); + EXPECT_TRUE(map_ctx_json.find("ProcessState") != map_ctx_json.end()); + EXPECT_TRUE(map_ctx_json.find("Zygote") != map_ctx_json.end()); + + DLT_UNREGISTER_CONTEXT(dlt_ctx_self); + for (auto &map_malloc: map_ctx_json) { + DLT_UNREGISTER_CONTEXT(*(map_malloc.second)); + delete map_malloc.second; + map_malloc.second = nullptr; + } + map_ctx_json.clear(); + + DLT_UNREGISTER_APP_FLUSH_BUFFERED_LOGS(); + EXPECT_LT(DLT_RETURN_OK, system("kill -9 $(pgrep -f \"dlt-daemon -d\") > /dev/null")); +} + +TEST(t_find_tag_in_json, normal) +{ + EXPECT_EQ(DLT_RETURN_OK, system("dlt-daemon -d > /dev/null")); + EXPECT_EQ(DLT_RETURN_OK, system("sleep 0.2")); + + string json_ctxID; + string json_tag; + string json_description; + string str = t_load_json_file(); + char *token = strtok(&str[0], " "); + while(token != nullptr) { + json_ctxID = string(token); + token = strtok(nullptr, " "); + + json_tag = string(token); + token = strtok(nullptr, " "); + + json_description = string(token); + if (json_description == "null") { + json_description = ""; + } + token = strtok(nullptr, " "); + + DltContext *ctx = new DltContext(); + auto ret = map_ctx_json.emplace(json_tag, ctx); + if (!ret.second) { + delete ctx; + ctx = nullptr; + } + } + + EXPECT_EQ(find_tag_in_json("QtiVehicleHal"), + (map_ctx_json.find("QtiVehicleHal")->second)); + EXPECT_EQ(find_tag_in_json("NetworkSecurityConfig"), + (map_ctx_json.find("NetworkSecurityConfig")->second)); + EXPECT_EQ(find_tag_in_json("ProcessState"), + (map_ctx_json.find("ProcessState")->second)); + EXPECT_EQ(find_tag_in_json("Zygote"), + (map_ctx_json.find("Zygote")->second)); + EXPECT_EQ(find_tag_in_json("Other tags"), &(dlt_ctx_othe)); + + for (auto &map_malloc: map_ctx_json) { + delete map_malloc.second; + map_malloc.second = nullptr; + } + map_ctx_json.clear(); + + EXPECT_LT(DLT_RETURN_OK, system("kill -9 $(pgrep -f \"dlt-daemon -d\") > /dev/null")); +} + +TEST(t_find_tag_in_json, nullpointer) +{ + GTEST_FLAG_SET(death_test_style, "threadsafe"); + ASSERT_ANY_THROW(find_tag_in_json(nullptr)); +} + +TEST(t_init_logger, normal) +{ + t_logger_list = new logger_list; + t_logger_list->mode = READ_ONLY; + t_logger_list->tail = 0; + t_logger_list->pid = 0; + + struct logger *logger_ptr = reinterpret_cast(LOG_ID_MAIN | LOGGER_LOGD); + EXPECT_EQ(logger_ptr, init_logger(t_logger_list, LOG_ID_MAIN)); + logger_ptr = reinterpret_cast(LOG_ID_RADIO | LOGGER_LOGD); + EXPECT_EQ(logger_ptr, init_logger(t_logger_list, LOG_ID_RADIO)); + logger_ptr = reinterpret_cast(LOG_ID_EVENTS | LOGGER_LOGD); + EXPECT_EQ(logger_ptr, init_logger(t_logger_list, LOG_ID_EVENTS)); + logger_ptr = reinterpret_cast(LOG_ID_SYSTEM | LOGGER_LOGD); + EXPECT_EQ(logger_ptr, init_logger(t_logger_list, LOG_ID_SYSTEM)); + logger_ptr = reinterpret_cast(LOG_ID_CRASH | LOGGER_LOGD); + EXPECT_EQ(logger_ptr, init_logger(t_logger_list, LOG_ID_CRASH)); + logger_ptr = reinterpret_cast(LOG_ID_STATS | LOGGER_LOGD); + EXPECT_EQ(logger_ptr, init_logger(t_logger_list, LOG_ID_STATS)); + logger_ptr = reinterpret_cast(LOG_ID_SECURITY | LOGGER_LOGD); + EXPECT_EQ(logger_ptr, init_logger(t_logger_list, LOG_ID_SECURITY)); + logger_ptr = reinterpret_cast(LOG_ID_KERNEL | LOGGER_LOGD); + EXPECT_EQ(logger_ptr, init_logger(t_logger_list, LOG_ID_KERNEL)); + delete t_logger_list; + t_logger_list = nullptr; +} + +TEST(t_init_logger, nullpointer) +{ + EXPECT_EQ(nullptr, t_logger_list); + EXPECT_EQ(nullptr, init_logger(t_logger_list, LOG_ID_MAIN)); + EXPECT_EQ(nullptr, init_logger(t_logger_list, LOG_ID_RADIO)); + EXPECT_EQ(nullptr, init_logger(t_logger_list, LOG_ID_EVENTS)); + EXPECT_EQ(nullptr, init_logger(t_logger_list, LOG_ID_SYSTEM)); + EXPECT_EQ(nullptr, init_logger(t_logger_list, LOG_ID_CRASH)); + EXPECT_EQ(nullptr, init_logger(t_logger_list, LOG_ID_STATS)); + EXPECT_EQ(nullptr, init_logger(t_logger_list, LOG_ID_SECURITY)); + EXPECT_EQ(nullptr, init_logger(t_logger_list, LOG_ID_KERNEL)); +} + +TEST(t_init_logger_list, normal) +{ + EXPECT_EQ(0b0000000010011011, (init_logger_list(true)->log_mask) & 0x00FF); + EXPECT_EQ(0b0000000011111111, (init_logger_list(false)->log_mask) & 0x00FF); + delete t_logger_list; + t_logger_list = nullptr; +} + +TEST(t_get_log_context_from_log_msg, normal) +{ + struct log_msg *t_log_msg = nullptr; + t_log_msg = new log_msg; + t_log_msg->entry.lid = LOG_ID_MAIN; + EXPECT_EQ(&dlt_ctx_main, get_log_context_from_log_msg(t_log_msg)); + t_log_msg->entry.lid = LOG_ID_RADIO; + EXPECT_EQ(&dlt_ctx_rdio, get_log_context_from_log_msg(t_log_msg)); + t_log_msg->entry.lid = LOG_ID_EVENTS; + EXPECT_EQ(&dlt_ctx_evnt, get_log_context_from_log_msg(t_log_msg)); + t_log_msg->entry.lid = LOG_ID_SYSTEM; + EXPECT_EQ(&dlt_ctx_syst, get_log_context_from_log_msg(t_log_msg)); + t_log_msg->entry.lid = LOG_ID_CRASH; + EXPECT_EQ(&dlt_ctx_crsh, get_log_context_from_log_msg(t_log_msg)); + t_log_msg->entry.lid = LOG_ID_STATS; + EXPECT_EQ(&dlt_ctx_stat, get_log_context_from_log_msg(t_log_msg)); + t_log_msg->entry.lid = LOG_ID_SECURITY; + EXPECT_EQ(&dlt_ctx_secu, get_log_context_from_log_msg(t_log_msg)); + t_log_msg->entry.lid = LOG_ID_KERNEL; + EXPECT_EQ(&dlt_ctx_krnl, get_log_context_from_log_msg(t_log_msg)); + t_log_msg->entry.lid = 1024; + EXPECT_EQ(&dlt_ctx_self, get_log_context_from_log_msg(t_log_msg)); + delete t_log_msg; + t_log_msg = nullptr; +} + +TEST(t_get_log_context_from_log_msg, nullpointer) +{ + GTEST_FLAG_SET(death_test_style, "threadsafe"); + ASSERT_EXIT((get_log_context_from_log_msg(nullptr),exit(SIGSEGV)), + ::testing::KilledBySignal(SIGSEGV),".*"); +} + +TEST(t_get_timestamp_from_log_msg, normal) +{ + struct log_msg *t_log_msg = nullptr; + t_log_msg = new log_msg; + t_log_msg->entry.sec = 0; + t_log_msg->entry.nsec = 0; + EXPECT_EQ(0, get_timestamp_from_log_msg(t_log_msg)); + t_log_msg->entry.sec = 1/10000; + t_log_msg->entry.nsec = 100000; + EXPECT_EQ(1, get_timestamp_from_log_msg(t_log_msg)); + t_log_msg->entry.sec = 100; + t_log_msg->entry.nsec = 1000000; + EXPECT_EQ(1000010, get_timestamp_from_log_msg(t_log_msg)); +} + +TEST(t_get_timestamp_from_log_msg, nullpointer) +{ + GTEST_FLAG_SET(death_test_style, "threadsafe"); + ASSERT_EXIT((get_timestamp_from_log_msg(nullptr), exit(SIGSEGV)), + ::testing::KilledBySignal(SIGSEGV), ".*"); +} + +TEST(t_get_log_level_from_log_msg, normal) +{ + struct log_msg *t_log_msg = nullptr; + t_log_msg = new log_msg; + t_log_msg->entry.hdr_size = 0; + t_log_msg->buf[0] = (unsigned char)ANDROID_LOG_VERBOSE; + EXPECT_EQ(DLT_LOG_VERBOSE, get_log_level_from_log_msg(t_log_msg)); + t_log_msg->buf[0] = (unsigned char)ANDROID_LOG_DEBUG; + EXPECT_EQ(DLT_LOG_DEBUG, get_log_level_from_log_msg(t_log_msg)); + t_log_msg->buf[0] = (unsigned char)ANDROID_LOG_INFO; + EXPECT_EQ(DLT_LOG_INFO, get_log_level_from_log_msg(t_log_msg)); + t_log_msg->buf[0] = (unsigned char)ANDROID_LOG_WARN; + EXPECT_EQ(DLT_LOG_WARN, get_log_level_from_log_msg(t_log_msg)); + t_log_msg->buf[0] = (unsigned char)ANDROID_LOG_ERROR; + EXPECT_EQ(DLT_LOG_ERROR, get_log_level_from_log_msg(t_log_msg)); + t_log_msg->buf[0] = (unsigned char)ANDROID_LOG_FATAL; + EXPECT_EQ(DLT_LOG_FATAL, get_log_level_from_log_msg(t_log_msg)); + t_log_msg->buf[0] = (unsigned char)ANDROID_LOG_SILENT; + EXPECT_EQ(DLT_LOG_OFF, get_log_level_from_log_msg(t_log_msg)); + t_log_msg->buf[0] = (unsigned char)ANDROID_LOG_UNKNOWN; + EXPECT_EQ(DLT_LOG_DEFAULT, get_log_level_from_log_msg(t_log_msg)); + t_log_msg->buf[0] = (unsigned char)ANDROID_LOG_DEFAULT; + EXPECT_EQ(DLT_LOG_DEFAULT, get_log_level_from_log_msg(t_log_msg)); + delete t_log_msg; + t_log_msg = nullptr; +} + +TEST(t_get_log_level_from_log_msg, abnormal) +{ + struct log_msg t_log_msg; + t_log_msg.entry.hdr_size = 10000; + GTEST_FLAG_SET(death_test_style, "threadsafe"); + t_log_msg.buf[t_log_msg.entry.hdr_size] = (unsigned char)ANDROID_LOG_VERBOSE; + ASSERT_EXIT((get_log_level_from_log_msg(&t_log_msg), exit(SIGSEGV)), + ::testing::KilledBySignal(SIGSEGV), ".*"); +} + +TEST(t_get_log_level_from_log_msg, nullpointer) +{ + GTEST_FLAG_SET(death_test_style, "threadsafe"); + ASSERT_EXIT((get_log_level_from_log_msg(nullptr), exit(SIGSEGV)), + ::testing::KilledBySignal(SIGSEGV), ".*"); +} + +TEST(t_signal_handler, normal) +{ + exit_parser_loop = false; + signal_handler(SIGTERM); + EXPECT_TRUE(exit_parser_loop == true); + exit_parser_loop = false; + signal_handler(SIGSEGV); + EXPECT_TRUE(exit_parser_loop == false); +} + +TEST(t_logd_parser_loop, normal) +{ + EXPECT_EQ(DLT_RETURN_OK, system("dlt-daemon -d > /dev/null")); + EXPECT_EQ(DLT_RETURN_OK, system("sleep 0.2")); + + struct logger_list *t_list = nullptr; + t_list = new logger_list; + t_list->mode = READ_ONLY; + t_list->tail = 0; + t_list->pid = 0; + + t_list->signal = -EINVAL; + EXPECT_TRUE(logd_parser_loop(t_list) == -EINVAL); + t_list->signal = -EAGAIN; + EXPECT_TRUE(logd_parser_loop(t_list) == -EAGAIN); + t_list->signal = -EINTR; + EXPECT_TRUE(logd_parser_loop(t_list) == -EINTR); + t_list->signal = -ENOMEM; + EXPECT_TRUE(logd_parser_loop(t_list) == -ENOMEM); + t_list->signal = -ENODEV; + EXPECT_TRUE(logd_parser_loop(t_list) == -ENODEV); + t_list->signal = -EIO; + EXPECT_TRUE(logd_parser_loop(t_list) == -EIO); + + delete t_list; + t_list = nullptr; + + t_logger_list = new logger_list; + t_logger_list->mode = READ_ONLY; + t_logger_list->tail = 0; + t_logger_list->pid = 0; + t_logger_list->signal = 0; + + json_is_available = true; + string json_ctxID; + string json_tag; + string json_description; + string str = t_load_json_file(); + char *token = strtok(&str[0], " "); + while(token != nullptr) { + json_ctxID = string(token); + token = strtok(nullptr, " "); + + json_tag = string(token); + token = strtok(nullptr, " "); + + json_description = string(token); + if (json_description == "null") { + json_description = ""; + } + token = strtok(nullptr, " "); + + DltContext *ctx = new DltContext(); + auto ret = map_ctx_json.emplace(json_tag, ctx); + if (!ret.second) { + delete ctx; + ctx = nullptr; + } + } + + dlt_log_data = new dlt_log_container; + json_is_available = true; + + /* TEST with available tag in JSON file */ + unsigned char tag[sizeof("QtiVehicleHal")] = "QtiVehicleHal"; + unsigned char message[sizeof("dlt-logd-converter")] = "dlt-logd-converter"; + for (uint idx = 0; idx < sizeof(tag); idx++) { + t_log_msg.buf[idx + t_log_msg.entry.hdr_size + 1] = tag[idx]; + } + for (uint idx = 0; idx < sizeof(message); idx++) { + t_log_msg.buf[idx + t_log_msg.entry.hdr_size + sizeof(tag) + 1] = message[idx]; + } + + auto search = map_ctx_json.find("QtiVehicleHal"); + int ret = logd_parser_loop(t_logger_list); + + EXPECT_EQ(DLT_RETURN_OK, ret); + EXPECT_EQ(search->second, dlt_log_data->ctx); + EXPECT_EQ(DLT_LOG_INFO, dlt_log_data->log_level); + EXPECT_EQ(1, dlt_log_data->ts); + EXPECT_STREQ("QtiVehicleHal", dlt_log_data->tag); + EXPECT_STREQ("dlt-logd-converter", dlt_log_data->message); + + /* TEST with other tags not listed JSON file */ + unsigned char othe_tag[sizeof("OtherTags")] = "OtherTags"; + unsigned char othe_message[sizeof("No tag found")] = "No tag found"; + for (uint idx = 0; idx < sizeof(othe_tag); idx++) { + t_log_msg.buf[idx + t_log_msg.entry.hdr_size + 1] = othe_tag[idx]; + } + for (uint idx = 0; idx < sizeof(othe_message); idx++) { + t_log_msg.buf[idx + t_log_msg.entry.hdr_size + sizeof(othe_tag) + 1] = othe_message[idx]; + } + + search = map_ctx_json.find("OtherTags"); + ret = logd_parser_loop(t_logger_list); + + EXPECT_EQ(DLT_RETURN_OK, ret); + EXPECT_EQ(&(dlt_ctx_othe), dlt_log_data->ctx); + EXPECT_EQ(DLT_LOG_INFO, dlt_log_data->log_level); + EXPECT_EQ(1, dlt_log_data->ts); + EXPECT_STREQ("OtherTags", dlt_log_data->tag); + EXPECT_STREQ("No tag found", dlt_log_data->message); + + /* TEST with another buffer */ + t_log_msg.entry.lid = LOG_ID_RADIO; + unsigned char radio_tag[sizeof("RadioTag")] = "RadioTag"; + unsigned char radio_message[sizeof("It is from radio buffer")] = "It is from radio buffer"; + for (uint idx = 0; idx < sizeof(radio_tag); idx++) { + t_log_msg.buf[idx + t_log_msg.entry.hdr_size + 1] = radio_tag[idx]; + } + for (uint idx = 0; idx < sizeof(radio_message); idx++) { + t_log_msg.buf[idx + t_log_msg.entry.hdr_size + sizeof(radio_tag) + 1] = radio_message[idx]; + } + + ret = logd_parser_loop(t_logger_list); + + EXPECT_EQ(DLT_RETURN_OK, ret); + EXPECT_EQ(&(dlt_ctx_rdio), dlt_log_data->ctx); + EXPECT_EQ(DLT_LOG_INFO, dlt_log_data->log_level); + EXPECT_EQ(1, dlt_log_data->ts); + EXPECT_STREQ("RadioTag", dlt_log_data->tag); + EXPECT_STREQ("It is from radio buffer", dlt_log_data->message); + + /* TEST with no JSON file */ + t_log_msg.entry.lid = LOG_ID_KERNEL; + json_is_available = false; + unsigned char no_json_tag[sizeof("Kernel")] = "Kernel"; + unsigned char no_json_message[sizeof("It is from kernel")] = "It is from kernel"; + for (uint idx = 0; idx < sizeof(no_json_tag); idx++) { + t_log_msg.buf[idx + t_log_msg.entry.hdr_size + 1] = no_json_tag[idx]; + } + for (uint idx = 0; idx < sizeof(no_json_message); idx++) { + t_log_msg.buf[idx + t_log_msg.entry.hdr_size + sizeof(no_json_tag) + 1] = no_json_message[idx]; + } + + ret = logd_parser_loop(t_logger_list); + + EXPECT_EQ(DLT_RETURN_OK, ret); + EXPECT_EQ(&(dlt_ctx_krnl), dlt_log_data->ctx); + EXPECT_EQ(DLT_LOG_INFO, dlt_log_data->log_level); + EXPECT_EQ(1, dlt_log_data->ts); + EXPECT_STREQ("Kernel", dlt_log_data->tag); + EXPECT_STREQ("It is from kernel", dlt_log_data->message); + + delete dlt_log_data; + dlt_log_data = nullptr; + delete t_logger_list; + t_logger_list = nullptr; + + EXPECT_LT(DLT_RETURN_OK, system("kill -9 $(pgrep -f \"dlt-daemon -d\") > /dev/null")); +} + + +int main(int argc, char** argv) { + ::testing::InitGoogleTest(&argc, argv); + return RUN_ALL_TESTS(); +} From f85f609b7b72f5bf8be16cc2424c50933e77b6a6 Mon Sep 17 00:00:00 2001 From: LUU QUANG MINH Date: Mon, 29 Aug 2022 08:14:11 +0700 Subject: [PATCH 29/35] android: Replace macro and use flag directly Signed-off-by: LUU QUANG MINH --- .../dlt-logd-converter/gtest_dlt_logd_converter.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/tests/component/dlt-logd-converter/gtest_dlt_logd_converter.cpp b/tests/component/dlt-logd-converter/gtest_dlt_logd_converter.cpp index ffd3615f8..b6a1da6d9 100644 --- a/tests/component/dlt-logd-converter/gtest_dlt_logd_converter.cpp +++ b/tests/component/dlt-logd-converter/gtest_dlt_logd_converter.cpp @@ -378,7 +378,7 @@ TEST(t_find_tag_in_json, normal) TEST(t_find_tag_in_json, nullpointer) { - GTEST_FLAG_SET(death_test_style, "threadsafe"); + (void)(::testing::GTEST_FLAG(death_test_style) = "threadsafe"); ASSERT_ANY_THROW(find_tag_in_json(nullptr)); } @@ -458,7 +458,7 @@ TEST(t_get_log_context_from_log_msg, normal) TEST(t_get_log_context_from_log_msg, nullpointer) { - GTEST_FLAG_SET(death_test_style, "threadsafe"); + (void)(::testing::GTEST_FLAG(death_test_style) = "threadsafe"); ASSERT_EXIT((get_log_context_from_log_msg(nullptr),exit(SIGSEGV)), ::testing::KilledBySignal(SIGSEGV),".*"); } @@ -480,7 +480,7 @@ TEST(t_get_timestamp_from_log_msg, normal) TEST(t_get_timestamp_from_log_msg, nullpointer) { - GTEST_FLAG_SET(death_test_style, "threadsafe"); + (void)(::testing::GTEST_FLAG(death_test_style) = "threadsafe"); ASSERT_EXIT((get_timestamp_from_log_msg(nullptr), exit(SIGSEGV)), ::testing::KilledBySignal(SIGSEGV), ".*"); } @@ -516,7 +516,7 @@ TEST(t_get_log_level_from_log_msg, abnormal) { struct log_msg t_log_msg; t_log_msg.entry.hdr_size = 10000; - GTEST_FLAG_SET(death_test_style, "threadsafe"); + (void)(::testing::GTEST_FLAG(death_test_style) = "threadsafe"); t_log_msg.buf[t_log_msg.entry.hdr_size] = (unsigned char)ANDROID_LOG_VERBOSE; ASSERT_EXIT((get_log_level_from_log_msg(&t_log_msg), exit(SIGSEGV)), ::testing::KilledBySignal(SIGSEGV), ".*"); @@ -524,7 +524,7 @@ TEST(t_get_log_level_from_log_msg, abnormal) TEST(t_get_log_level_from_log_msg, nullpointer) { - GTEST_FLAG_SET(death_test_style, "threadsafe"); + (void)(::testing::GTEST_FLAG(death_test_style) = "threadsafe"); ASSERT_EXIT((get_log_level_from_log_msg(nullptr), exit(SIGSEGV)), ::testing::KilledBySignal(SIGSEGV), ".*"); } From 0e1295957ffafe2b1474da12756c847f2f2766c9 Mon Sep 17 00:00:00 2001 From: LUU QUANG MINH Date: Mon, 21 Nov 2022 09:17:13 +0700 Subject: [PATCH 30/35] android: Avoid SIGSEGV in dlt-logd-converter + Remove wrong implemented abmormal test case + Setup condition in source code to avoid throwing SIGSEGV + Modify test suite for modified source parts Signed-off-by: LUU QUANG MINH --- src/android/dlt-logd-converter.cpp | 113 ++++++++++-------- .../gtest_dlt_logd_converter.cpp | 29 ++--- 2 files changed, 70 insertions(+), 72 deletions(-) diff --git a/src/android/dlt-logd-converter.cpp b/src/android/dlt-logd-converter.cpp index 785f47253..e9632f9cc 100644 --- a/src/android/dlt-logd-converter.cpp +++ b/src/android/dlt-logd-converter.cpp @@ -238,8 +238,7 @@ DLT_STATIC void json_parser() string json_ctxID = iter.key().asString(); string json_tag = (*iter)["tag"].asString(); string json_description = (*iter)["description"].asString(); -#endif -#ifdef DLT_UNIT_TESTS +#else if (json_is_available) { string json_ctxID; string json_tag; @@ -276,8 +275,7 @@ DLT_STATIC void json_parser() #ifdef DLT_UNIT_TESTS } } -#endif -#ifndef DLT_UNIT_TESTS +#else } } file.close(); @@ -316,8 +314,7 @@ DLT_STATIC struct logger *init_logger(struct logger_list *logger_list, log_id_t DLT_LOG(dlt_ctx_self, DLT_LOG_WARN, DLT_STRING("Could not open logd buffer ID = "), DLT_INT64(log_id)); } -#endif -#ifdef DLT_UNIT_TESTS +#else logger = t_android_logger_open(logger_list, log_id); #endif return logger; @@ -332,8 +329,7 @@ DLT_STATIC struct logger_list *init_logger_list(bool skip_binary_buffers) DLT_LOG(dlt_ctx_self, DLT_LOG_FATAL, DLT_STRING("Could not allocate logger list")); return nullptr; } -#endif -#ifdef DLT_UNIT_TESTS +#else logger_list = t_android_logger_list_alloc(READ_ONLY, 0, 0); if (logger_list == nullptr) { return nullptr; @@ -360,55 +356,72 @@ DLT_STATIC struct logger_list *init_logger_list(bool skip_binary_buffers) DLT_STATIC DltContext *get_log_context_from_log_msg(struct log_msg *log_msg) { - switch (log_msg->id()) { - case LOG_ID_MAIN: - return &dlt_ctx_main; - case LOG_ID_RADIO: - return &dlt_ctx_rdio; - case LOG_ID_EVENTS: - return &dlt_ctx_evnt; - case LOG_ID_SYSTEM: - return &dlt_ctx_syst; - case LOG_ID_CRASH: - return &dlt_ctx_crsh; - case LOG_ID_STATS: - return &dlt_ctx_stat; - case LOG_ID_SECURITY: - return &dlt_ctx_secu; - case LOG_ID_KERNEL: - return &dlt_ctx_krnl; - default: + if (log_msg) { + switch (log_msg->id()) { + case LOG_ID_MAIN: + return &dlt_ctx_main; + case LOG_ID_RADIO: + return &dlt_ctx_rdio; + case LOG_ID_EVENTS: + return &dlt_ctx_evnt; + case LOG_ID_SYSTEM: + return &dlt_ctx_syst; + case LOG_ID_CRASH: + return &dlt_ctx_crsh; + case LOG_ID_STATS: + return &dlt_ctx_stat; + case LOG_ID_SECURITY: + return &dlt_ctx_secu; + case LOG_ID_KERNEL: + return &dlt_ctx_krnl; + default: + return &dlt_ctx_self; + } + } + else { return &dlt_ctx_self; } } DLT_STATIC uint32_t get_timestamp_from_log_msg(struct log_msg *log_msg) { - /* in 0.1 ms = 100 us */ - return (uint32_t)log_msg->entry.sec * 10000 + (uint32_t)log_msg->entry.nsec / 100000; + if (log_msg) { + /* in 0.1 ms = 100 us */ + return (uint32_t)log_msg->entry.sec * 10000 + (uint32_t)log_msg->entry.nsec / 100000; + } + else { + DLT_LOG(dlt_ctx_self, DLT_LOG_WARN, DLT_STRING("Could not receive any log message")); + return EXIT_FAILURE; + } } DLT_STATIC DltLogLevelType get_log_level_from_log_msg(struct log_msg *log_msg) { - android_LogPriority priority = static_cast(log_msg->msg()[0]); - switch (priority) { - case ANDROID_LOG_VERBOSE: - return DLT_LOG_VERBOSE; - case ANDROID_LOG_DEBUG: - return DLT_LOG_DEBUG; - case ANDROID_LOG_INFO: - return DLT_LOG_INFO; - case ANDROID_LOG_WARN: - return DLT_LOG_WARN; - case ANDROID_LOG_ERROR: - return DLT_LOG_ERROR; - case ANDROID_LOG_FATAL: - return DLT_LOG_FATAL; - case ANDROID_LOG_SILENT: - return DLT_LOG_OFF; - case ANDROID_LOG_UNKNOWN: - case ANDROID_LOG_DEFAULT: - default: + if (log_msg) { + android_LogPriority priority = static_cast(log_msg->msg()[0]); + switch (priority) { + case ANDROID_LOG_VERBOSE: + return DLT_LOG_VERBOSE; + case ANDROID_LOG_DEBUG: + return DLT_LOG_DEBUG; + case ANDROID_LOG_INFO: + return DLT_LOG_INFO; + case ANDROID_LOG_WARN: + return DLT_LOG_WARN; + case ANDROID_LOG_ERROR: + return DLT_LOG_ERROR; + case ANDROID_LOG_FATAL: + return DLT_LOG_FATAL; + case ANDROID_LOG_SILENT: + return DLT_LOG_OFF; + case ANDROID_LOG_UNKNOWN: + case ANDROID_LOG_DEFAULT: + default: + return DLT_LOG_DEFAULT; + } + } + else { + DLT_LOG(dlt_ctx_self, DLT_LOG_WARN, DLT_STRING("Could not receive any log message")); return DLT_LOG_DEFAULT; } } @@ -447,8 +460,7 @@ DLT_STATIC int logd_parser_loop(struct logger_list *logger_list) DLT_STRING("android_logger_list_read unexpected return="), DLT_INT32(ret)); return ret; } -#endif -#ifdef DLT_UNIT_TESTS +#else extern struct dlt_log_container *dlt_log_data; extern struct log_msg t_log_msg; struct log_msg &log_msg = t_log_msg; @@ -492,8 +504,7 @@ DLT_STATIC int logd_parser_loop(struct logger_list *logger_list) } DLT_LOG(dlt_ctx_self, DLT_LOG_VERBOSE, DLT_STRING("Exited parsing loop")); -#endif -#ifdef DLT_UNIT_TESTS +#else dlt_log_data->ctx = ctx; dlt_log_data->log_level = log_level; dlt_log_data->ts = ts; diff --git a/tests/component/dlt-logd-converter/gtest_dlt_logd_converter.cpp b/tests/component/dlt-logd-converter/gtest_dlt_logd_converter.cpp index b6a1da6d9..a7c71723e 100644 --- a/tests/component/dlt-logd-converter/gtest_dlt_logd_converter.cpp +++ b/tests/component/dlt-logd-converter/gtest_dlt_logd_converter.cpp @@ -424,8 +424,8 @@ TEST(t_init_logger, nullpointer) TEST(t_init_logger_list, normal) { - EXPECT_EQ(0b0000000010011011, (init_logger_list(true)->log_mask) & 0x00FF); - EXPECT_EQ(0b0000000011111111, (init_logger_list(false)->log_mask) & 0x00FF); + EXPECT_EQ(0x009B, (init_logger_list(true)->log_mask) & 0x00FF); + EXPECT_EQ(0x00FF, (init_logger_list(false)->log_mask) & 0x00FF); delete t_logger_list; t_logger_list = nullptr; } @@ -458,9 +458,8 @@ TEST(t_get_log_context_from_log_msg, normal) TEST(t_get_log_context_from_log_msg, nullpointer) { - (void)(::testing::GTEST_FLAG(death_test_style) = "threadsafe"); - ASSERT_EXIT((get_log_context_from_log_msg(nullptr),exit(SIGSEGV)), - ::testing::KilledBySignal(SIGSEGV),".*"); + struct log_msg *t_log_msg = nullptr; + EXPECT_EQ(&dlt_ctx_self, get_log_context_from_log_msg(t_log_msg)); } TEST(t_get_timestamp_from_log_msg, normal) @@ -480,9 +479,8 @@ TEST(t_get_timestamp_from_log_msg, normal) TEST(t_get_timestamp_from_log_msg, nullpointer) { - (void)(::testing::GTEST_FLAG(death_test_style) = "threadsafe"); - ASSERT_EXIT((get_timestamp_from_log_msg(nullptr), exit(SIGSEGV)), - ::testing::KilledBySignal(SIGSEGV), ".*"); + struct log_msg *t_log_msg = nullptr; + EXPECT_EQ(EXIT_FAILURE, get_timestamp_from_log_msg(t_log_msg)); } TEST(t_get_log_level_from_log_msg, normal) @@ -512,21 +510,10 @@ TEST(t_get_log_level_from_log_msg, normal) t_log_msg = nullptr; } -TEST(t_get_log_level_from_log_msg, abnormal) -{ - struct log_msg t_log_msg; - t_log_msg.entry.hdr_size = 10000; - (void)(::testing::GTEST_FLAG(death_test_style) = "threadsafe"); - t_log_msg.buf[t_log_msg.entry.hdr_size] = (unsigned char)ANDROID_LOG_VERBOSE; - ASSERT_EXIT((get_log_level_from_log_msg(&t_log_msg), exit(SIGSEGV)), - ::testing::KilledBySignal(SIGSEGV), ".*"); -} - TEST(t_get_log_level_from_log_msg, nullpointer) { - (void)(::testing::GTEST_FLAG(death_test_style) = "threadsafe"); - ASSERT_EXIT((get_log_level_from_log_msg(nullptr), exit(SIGSEGV)), - ::testing::KilledBySignal(SIGSEGV), ".*"); + struct log_msg *t_log_msg = nullptr; + EXPECT_EQ(DLT_LOG_DEFAULT, get_log_level_from_log_msg(t_log_msg)); } TEST(t_signal_handler, normal) From f4f3fa9ee7f4118c16ab5ec0564ea2d5d6431e3a Mon Sep 17 00:00:00 2001 From: LUU QUANG MINH Date: Mon, 21 Nov 2022 09:48:28 +0700 Subject: [PATCH 31/35] unittest: Trigger abnormal case for get conf file data in dlt-logd-converter + Modify source code to bypass the abnormal case when reading conf file + Trigger and modify the corresponding abnormal test case Signed-off-by: LUU QUANG MINH --- include/dlt/dlt-logd-converter.hpp | 1 + src/android/dlt-logd-converter.cpp | 42 +++++++++++-------- .../abnormal-dlt-logd-converter.conf | 2 +- .../gtest_dlt_logd_converter.cpp | 7 ++-- 4 files changed, 30 insertions(+), 22 deletions(-) diff --git a/include/dlt/dlt-logd-converter.hpp b/include/dlt/dlt-logd-converter.hpp index 069e884fd..0959a8f8e 100644 --- a/include/dlt/dlt-logd-converter.hpp +++ b/include/dlt/dlt-logd-converter.hpp @@ -65,6 +65,7 @@ using namespace std; #define CONFIGURATION_FILE_DIR "/vendor/etc/dlt-logd-converter.conf" #define JSON_FILE_DIR "/vendor/etc/dlt-logdctxt.json" #define MAX_LINE 1024 +#define DLT_FAIL_TO_GET_LOG_MSG 0 typedef struct { diff --git a/src/android/dlt-logd-converter.cpp b/src/android/dlt-logd-converter.cpp index e9632f9cc..657310f80 100644 --- a/src/android/dlt-logd-converter.cpp +++ b/src/android/dlt-logd-converter.cpp @@ -147,32 +147,40 @@ DLT_STATIC int load_configuration_file(const char *file_name) if (pattern[0] != '#') { token = strtok(&pattern[0], " \t="); if (strcmp(token, "ApplicationID") == 0) { - if (logd_conf->appID) { - delete logd_conf->appID; + token = strtok(NULL, " \t="); + if (token != nullptr) { + if (logd_conf->appID) { + delete logd_conf->appID; + } + logd_conf->appID = strndup(token, DLT_ID_SIZE); } - token = strtok(nullptr, " \t="); - logd_conf->appID = strndup(token, DLT_ID_SIZE); } else if (strcmp(token, "ContextID") == 0) { - if (logd_conf->ctxID) { - delete logd_conf->ctxID; - } token = strtok(NULL, " \t="); - logd_conf->ctxID = strndup(token, DLT_ID_SIZE); + if (token != nullptr) { + if (logd_conf->ctxID) { + delete logd_conf->ctxID; + } + logd_conf->ctxID = strndup(token, DLT_ID_SIZE); + } } else if (strcmp(token, "AndroidLogdJSONpath") == 0) { - if (logd_conf->json_file_dir) { - delete logd_conf->json_file_dir; - } token = strtok(NULL, " \t="); - logd_conf->json_file_dir = strndup(token, MAX_LINE); + if (token != nullptr) { + if (logd_conf->json_file_dir) { + delete logd_conf->json_file_dir; + } + logd_conf->json_file_dir = strndup(token, MAX_LINE); + } } else if (strcmp(token, "AndroidLogdContextID") == 0) { - if (logd_conf->default_ctxID) { - delete logd_conf->default_ctxID; - } token = strtok(NULL, " \t="); - logd_conf->default_ctxID = strndup(token, DLT_ID_SIZE); + if (token != nullptr) { + if (logd_conf->default_ctxID) { + delete logd_conf->default_ctxID; + } + logd_conf->default_ctxID = strndup(token, DLT_ID_SIZE); + } } } } @@ -391,7 +399,7 @@ DLT_STATIC uint32_t get_timestamp_from_log_msg(struct log_msg *log_msg) } else { DLT_LOG(dlt_ctx_self, DLT_LOG_WARN, DLT_STRING("Could not receive any log message")); - return EXIT_FAILURE; + return (uint32_t)DLT_FAIL_TO_GET_LOG_MSG; } } diff --git a/tests/component/dlt-logd-converter/abnormal-dlt-logd-converter.conf b/tests/component/dlt-logd-converter/abnormal-dlt-logd-converter.conf index e6757c5dd..b9136d3ef 100644 --- a/tests/component/dlt-logd-converter/abnormal-dlt-logd-converter.conf +++ b/tests/component/dlt-logd-converter/abnormal-dlt-logd-converter.conf @@ -1,4 +1,4 @@ -ApplicationID=LOGDCONV +ApplicationID=DLOGCONV ContextID=DLT AndroidLogdJSONpath= diff --git a/tests/component/dlt-logd-converter/gtest_dlt_logd_converter.cpp b/tests/component/dlt-logd-converter/gtest_dlt_logd_converter.cpp index a7c71723e..19607c13d 100644 --- a/tests/component/dlt-logd-converter/gtest_dlt_logd_converter.cpp +++ b/tests/component/dlt-logd-converter/gtest_dlt_logd_converter.cpp @@ -233,7 +233,6 @@ TEST(t_load_configuration_file, normal) EXPECT_STREQ("OTHE", logd_conf->default_ctxID); } -/* TEST(t_load_configuration_file, abnormal) { logd_conf->appID = strdup("LOGD"); @@ -244,11 +243,11 @@ TEST(t_load_configuration_file, abnormal) int ret = load_configuration_file(ABNORMAL_CONFIGURATION_FILE_DIR); EXPECT_EQ(DLT_RETURN_OK, ret); - EXPECT_STREQ("LOGDCONV", logd_conf->appID); + EXPECT_STREQ("DLOG", logd_conf->appID); EXPECT_STREQ("DLT", logd_conf->ctxID); - EXPECT_STREQ("/vendor/etc/dlt-logdctxt.json", logd_conf->json_file_dir); + EXPECT_STREQ("dlt-logdctxt.json", logd_conf->json_file_dir); EXPECT_STREQ("OTHE", logd_conf->default_ctxID); -}*/ +} TEST(t_load_configuration_file, nullpointer) { From ed957426460685ebe267e2fef4cefbe46f3cf9e1 Mon Sep 17 00:00:00 2001 From: LUU QUANG MINH Date: Thu, 23 Feb 2023 14:22:46 +0700 Subject: [PATCH 32/35] unittest: Correct macro value in DLT logd converter unit test Signed-off-by: LUU QUANG MINH --- tests/component/dlt-logd-converter/gtest_dlt_logd_converter.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/component/dlt-logd-converter/gtest_dlt_logd_converter.cpp b/tests/component/dlt-logd-converter/gtest_dlt_logd_converter.cpp index 19607c13d..f2312a3c2 100644 --- a/tests/component/dlt-logd-converter/gtest_dlt_logd_converter.cpp +++ b/tests/component/dlt-logd-converter/gtest_dlt_logd_converter.cpp @@ -479,7 +479,7 @@ TEST(t_get_timestamp_from_log_msg, normal) TEST(t_get_timestamp_from_log_msg, nullpointer) { struct log_msg *t_log_msg = nullptr; - EXPECT_EQ(EXIT_FAILURE, get_timestamp_from_log_msg(t_log_msg)); + EXPECT_EQ(DLT_FAIL_TO_GET_LOG_MSG, get_timestamp_from_log_msg(t_log_msg)); } TEST(t_get_log_level_from_log_msg, normal) From 2abaf86523cd2fa5eb24537e8aee5386d9273698 Mon Sep 17 00:00:00 2001 From: Mohammad Ayaz Date: Fri, 3 Mar 2023 14:28:04 +0900 Subject: [PATCH 33/35] system: Bring in vrte changes to zero initialize configuration variables Signed-off-by: Mohammad Ayaz --- src/system/dlt-system-options.c | 2 +- src/system/dlt-system.c | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/system/dlt-system-options.c b/src/system/dlt-system-options.c index 92280f869..d8b099bae 100644 --- a/src/system/dlt-system-options.c +++ b/src/system/dlt-system-options.c @@ -24,7 +24,7 @@ /******************************************************************************* ** ** -** SRC-MODULE: dlt-system-options.c ** +** SRC-MODULE: dlt-system-options.c ** ** ** ** TARGET : linux ** ** ** diff --git a/src/system/dlt-system.c b/src/system/dlt-system.c index d3aef9ef2..7c64eab4f 100644 --- a/src/system/dlt-system.c +++ b/src/system/dlt-system.c @@ -59,8 +59,8 @@ DLT_DECLARE_CONTEXT(dltsystem) int main(int argc, char *argv[]) { - DltSystemCliOptions options; - DltSystemConfiguration config; + DltSystemCliOptions options = {0}; + DltSystemConfiguration config = {0}; #if defined(DLT_SYSTEMD_WATCHDOG_ENABLE) || defined(DLT_SYSTEMD_ENABLE) int ret; From d918e956dea6274bd0e5dc19bc9c5d7ceeaa04fd Mon Sep 17 00:00:00 2001 From: Alexander Mohr Date: Thu, 10 Aug 2023 16:11:24 +0200 Subject: [PATCH 34/35] cmake: disable network trace (#477) Add cmake toggle to disable network trace. Disable network trace for QNX and yocto. Deactivate DLT_TRACE_NETWORK_SEGMENTED macro via an empty dlt_user_trace_network_segmented function to support someip build. Signed-off-by: Alexander Mohr Co-authored-by: Daniel Weber --- src/lib/dlt_user.c | 47 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) diff --git a/src/lib/dlt_user.c b/src/lib/dlt_user.c index 1aa83292d..ec4555f57 100644 --- a/src/lib/dlt_user.c +++ b/src/lib/dlt_user.c @@ -3465,6 +3465,53 @@ DltReturnValue dlt_user_trace_network_truncated(DltContext *handle, return DLT_RETURN_OK; } +#else /* DLT_NETWORK_TRACE_ENABLE not set */ +DltReturnValue dlt_user_trace_network_segmented(DltContext *handle, + DltNetworkTraceType nw_trace_type, + uint16_t header_len, + void *header, + uint16_t payload_len, + void *payload) +{ + /** + * vsomeip uses the DLT_TRACE_NETWORK_SEGMENTED macro that calls this function. + * It's not possible to rewrite this macro directly to a no-op, + * because the macro is used on vsomeip side and there our defines are not set. + * Add an empty function to the dlt-lib to avoid a broken build. + */ + (void)handle; + (void)nw_trace_type; + (void)header_len; + (void)header; + (void)payload_len; + (void)payload; + return DLT_RETURN_LOGGING_DISABLED; +} + +DltReturnValue dlt_user_trace_network_truncated(DltContext *handle, + DltNetworkTraceType nw_trace_type, + uint16_t header_len, + void *header, + uint16_t payload_len, + void *payload, + int allow_truncate) +{ + /** + * vsomeip uses the DLT_TRACE_NETWORK_TRUNCATED macro that calls this function. + * It's not possible to rewrite this macro directly to a no-op, + * because the macro is used on vsomeip side and there our defines are not set. + * Add an empty function to the dlt-lib to avoid a broken build. + */ + (void)handle; + (void)nw_trace_type; + (void)header_len; + (void)header; + (void)payload_len; + (void)payload; + (void)allow_truncate; + return DLT_RETURN_LOGGING_DISABLED; +} + #endif /* DLT_NETWORK_TRACE_ENABLE */ DltReturnValue dlt_log_string(DltContext *handle, DltLogLevelType loglevel, const char *text) From 8f6cc3fe370b34091aa6d441f38c83bf60d6a1d4 Mon Sep 17 00:00:00 2001 From: Minh Quang Luu <50074497+minminlittleshrimp@users.noreply.github.com> Date: Fri, 11 Aug 2023 19:05:23 +0700 Subject: [PATCH 35/35] doc: add COVESA logo image (#516) Signed-off-by: LUU QUANG MINH Co-authored-by: LUU QUANG MINH --- README.md | 2 +- doc/images/covesa-logo.png | Bin 0 -> 25131 bytes 2 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 doc/images/covesa-logo.png diff --git a/README.md b/README.md index b31ebd05d..5ea23a884 100644 --- a/README.md +++ b/README.md @@ -243,4 +243,4 @@ file in src/core\_dump\_handler/cityhash\_c. Methner, Michael , Le Van, Khanh -![alt text](https://covesa.global/sites/all/themes/resp_1/images/covesa-logo.png) +![alt text](doc/images/covesa-logo.png "COVESA logo") diff --git a/doc/images/covesa-logo.png b/doc/images/covesa-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..0cc0eb0a14f1859545e12e15c4f0888a364894cb GIT binary patch literal 25131 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 YC0WBRyd@0$`U8W3uE~w^Yj+;}4?WtU;Q#;t literal 0 HcmV?d00001