From 1d2cf0f90f518091e7b2a43786d24b3842a72840 Mon Sep 17 00:00:00 2001 From: einhorn_b Date: Thu, 27 May 2021 10:47:09 +0200 Subject: [PATCH] update again --- .github/workflows/debug.yml | 5 ++- .github/workflows/test.yml | 14 ++++--- community_server/Dockerfile | 2 + login_server/CMakeLists.txt | 74 ++++++++++++++++++++++----------- login_server/CMakeLists.txt.lib | 18 +++++++- login_server/Dockerfile | 11 +++-- 6 files changed, 86 insertions(+), 38 deletions(-) diff --git a/.github/workflows/debug.yml b/.github/workflows/debug.yml index cc1a2796d..cf0f47557 100644 --- a/.github/workflows/debug.yml +++ b/.github/workflows/debug.yml @@ -38,7 +38,8 @@ jobs: ########################################################################## - name: Login-Server | Unit tests run: | - docker run --network container:$(docker container ls | grep mariadb | awk '{ print $1 }') -v ~/coverage:/code/build_cov/coverage_html -v $(pwd)/configs/login_server:/etc/grd_login gradido/login_server:test + docker run --network container:$(docker container ls | grep mariadb | awk '{ print $1 }') -v ~/coverage:/code/build_cov/coverage -v $(pwd)/configs/login_server:/etc/grd_login gradido/login_server:test + mkdir ~/coverage cp -r ~/coverage ./coverage ########################################################################## # COVERAGE CHECK BACKEND LOGIN-SERVER #################################### @@ -48,7 +49,7 @@ jobs: with: report_name: Coverage Backend type: lcov - result_path: ./coverage/lcov.info + result_path: ./coverage/coverage.info min_coverage: 8 token: ${{ github.token }} diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 19f76abbc..6308935ff 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -230,8 +230,10 @@ jobs: MARIADB_USER: root ports: - 3306:3306 - volumes: - - db_vol:/var/lib/mysql + options: --health-cmd="mysqladmin ping" + --health-interval=5s + --health-timeout=2s + --health-retries=3 steps: ########################################################################## # CHECKOUT CODE ########################################################## @@ -253,7 +255,7 @@ jobs: ########################################################################## - name: Login-Server | Unit tests run: | - docker run --network container:$(docker container ls | grep mariadb | awk '{ print $1 }') -v ~/coverage:/code/build/coverage_html -v $(pwd)/configs/login_server:/etc/grd_login gradido/login_server:test + docker run --network container:$(docker container ls | grep mariadb | awk '{ print $1 }') -v ~/coverage:/code/build_cov/coverage -v $(pwd)/configs/login_server:/etc/grd_login gradido/login_server:test cp -r ~/coverage ./coverage ########################################################################## # COVERAGE CHECK BACKEND LOGIN-SERVER #################################### @@ -263,7 +265,7 @@ jobs: with: report_name: Coverage Backend type: lcov - result_path: ./coverage/lcov.info + result_path: ./coverage/coverage.info min_coverage: 8 token: ${{ github.token }} @@ -310,7 +312,7 @@ jobs: ########################################################################## - name: community server | Unit tests run: | - docker run --network container:$(docker container ls | grep mariadb | awk '{ print $1 }') -v ~/coverage:/var/www/cakephp/webroot/coverage gradido/community_server:test ./vendor/bin/phpunit --coverage-html ./webroot/coverage + docker run --network container:$(docker container ls | grep mariadb | awk '{ print $1 }') -v ~/coverage:/var/www/cakephp/webroot/coverage gradido/community_server:test cp -r ~/coverage ./coverage ########################################################################## # COVERAGE CHECK BACKEND COMMUNITY-SERVER #################################### @@ -320,7 +322,7 @@ jobs: with: report_name: Coverage Backend type: lcov - result_path: ./coverage/lcov.info + result_path: ./coverage/coverage.info min_coverage: 8 token: ${{ github.token }} diff --git a/community_server/Dockerfile b/community_server/Dockerfile index edbd33c47..f6d608862 100644 --- a/community_server/Dockerfile +++ b/community_server/Dockerfile @@ -24,4 +24,6 @@ RUN apt-get update \ WORKDIR /var/www/cakephp ENV XDEBUG_MODE=coverage +CMD ./vendor/bin/phpunit && lcov --no-external --capture --quiet --output-file ./webroot/coverage/coverage.info + diff --git a/login_server/CMakeLists.txt b/login_server/CMakeLists.txt index 45122b259..64f3d7eb3 100644 --- a/login_server/CMakeLists.txt +++ b/login_server/CMakeLists.txt @@ -320,30 +320,56 @@ endif(UNIX) enable_testing() -if(UNIX) -include(cmake/CodeCoverage.cmake) -append_coverage_compiler_flags() -set(EXCLUDE_FOR_HTML_COV - "${CMAKE_CURRENT_SOURCE_DIR}/build/proto/*" - "${CMAKE_CURRENT_SOURCE_DIR}/dependencies/*" - "${CMAKE_CURRENT_SOURCE_DIR}/src/cpp/test/*" -) -setup_target_for_coverage_gcovr_html( - NAME coverage_html - EXECUTABLE Gradido_LoginServer_Test - EXCLUDE ${EXCLUDE_FOR_HTML_COV} - #DEPENDENCIES lib/libmariadb.so.3 -) -set(EXCLUDE_FOR_COV - ${EXCLUDE_FOR_HTML_COV} - "/usr/include/*" -) -setup_target_for_coverage_lcov( - NAME coverage - EXECUTABLE Gradido_LoginServer_Test - EXCLUDE "${EXCLUDE_FOR_COV}" - #DEPENDENCIES lib/libmariadb.so.3 -) +option(COLLECT_COVERAGE_DATA "Use cov to collect coverage informations" OFF) +set(COVERAGE_TOOL "Coverage Tool (gcovr|lcov|fastcov)" CACHE STRING "gcovr") + +if(COLLECT_COVERAGE_DATA) + + include(cmake/CodeCoverage.cmake) + append_coverage_compiler_flags() + set(EXCLUDE_FOR_HTML_COV + "${CMAKE_CURRENT_SOURCE_DIR}/build/proto/*" + "${CMAKE_CURRENT_SOURCE_DIR}/dependencies/*" + "${CMAKE_CURRENT_SOURCE_DIR}/src/cpp/test/*" + "${CMAKE_CURRENT_SOURCE_DIR}/googletest/googletest/include/gtest/internal/*" + "${CMAKE_CURRENT_SOURCE_DIR}/googletest/googletest/src/" + ) + if("${COVERAGE_TOOL}" STREQUAL "gcovr") + setup_target_for_coverage_gcovr_html( + NAME coverage + EXECUTABLE Gradido_LoginServer_Test + EXCLUDE ${EXCLUDE_FOR_HTML_COV} + GCOVR_ADDITIONAL_ARGS "--txt " + #DEPENDENCIES lib/libmariadb.so.3 + ) + endif() + + set(EXCLUDE_FOR_COV + ${EXCLUDE_FOR_HTML_COV} + "/usr/include/*" + ) + if("${COVERAGE_TOOL}" STREQUAL "lcov") + setup_target_for_coverage_lcov( + NAME coverage + EXECUTABLE Gradido_LoginServer_Test + EXCLUDE "${EXCLUDE_FOR_COV}" + #DEPENDENCIES lib/libmariadb.so.3 + ) + endif() + + if("${COVERAGE_TOOL}" STREQUAL "fastcov") + setup_target_for_coverage_fastcov( + NAME coverage # New target name + EXECUTABLE Gradido_LoginServer_Test -j ${PROCESSOR_COUNT} # Executable in PROJECT_BINARY_DIR + #BASE_DIRECTORY "../" # Base directory for report + # (defaults to PROJECT_SOURCE_DIR) + EXCLUDE "${EXCLUDE_FOR_COV}" # Patterns to exclude. + NO_DEMANGLE # Don't demangle C++ symbols + # even if c++filt is found + SKIP_HTML # Don't create html report + ) + endif() + endif() project(Gradido_LoginServer_Test C CXX) diff --git a/login_server/CMakeLists.txt.lib b/login_server/CMakeLists.txt.lib index 7f34719eb..e0c3bd65f 100644 --- a/login_server/CMakeLists.txt.lib +++ b/login_server/CMakeLists.txt.lib @@ -212,7 +212,7 @@ project(Gradido_LoginServer_Test C CXX) enable_testing() option(COLLECT_COVERAGE_DATA "Use cov to collect coverage informations" OFF) -set(COVERAGE_TOOL "Coverage Tool (gcovr|lcov)" CACHE STRING "gcovr") +set(COVERAGE_TOOL "Coverage Tool (gcovr|lcov|fastcov)" CACHE STRING "gcovr") if(COLLECT_COVERAGE_DATA) @@ -228,9 +228,10 @@ if(COLLECT_COVERAGE_DATA) ) if("${COVERAGE_TOOL}" STREQUAL "gcovr") setup_target_for_coverage_gcovr_html( - NAME coverage_html + NAME coverage EXECUTABLE Gradido_LoginServer_Test EXCLUDE ${EXCLUDE_FOR_HTML_COV} + GCOVR_ADDITIONAL_ARGS "--txt " #DEPENDENCIES lib/libmariadb.so.3 ) endif() @@ -247,6 +248,19 @@ if(COLLECT_COVERAGE_DATA) #DEPENDENCIES lib/libmariadb.so.3 ) endif() + + if("${COVERAGE_TOOL}" STREQUAL "fastcov") + setup_target_for_coverage_fastcov( + NAME coverage # New target name + EXECUTABLE Gradido_LoginServer_Test -j ${PROCESSOR_COUNT} # Executable in PROJECT_BINARY_DIR + #BASE_DIRECTORY "coverage" # Base directory for report + # (defaults to PROJECT_SOURCE_DIR) + EXCLUDE "${EXCLUDE_FOR_COV}" # Patterns to exclude. + NO_DEMANGLE # Don't demangle C++ symbols + # even if c++filt is found + SKIP_HTML # Don't create html report + ) + endif() endif() #_TEST_BUILD diff --git a/login_server/Dockerfile b/login_server/Dockerfile index 1c504b840..6e008833d 100644 --- a/login_server/Dockerfile +++ b/login_server/Dockerfile @@ -32,7 +32,8 @@ RUN apt-get update && \ apt-get clean && \ rm -rf /var/lib/apt/lists/* -RUN pip3 install gcovr +RUN pip3 install gcovr setuptools wheel && \ + pip3 install fastcov ######################################################################################################### @@ -47,7 +48,7 @@ WORKDIR ${DOCKER_WORKDIR} RUN if [ ! -d "./build_cov" ] ; then mkdir build_cov; fi RUN cd build_cov && \ - cmake -DCMAKE_BUILD_TYPE=Debug -DCOLLECT_COVERAGE_DATA=ON -DCOVERAGE_TOOL=gcovr .. + cmake -DCMAKE_BUILD_TYPE=Debug -DCOLLECT_COVERAGE_DATA=ON -DCOVERAGE_TOOL=fastcov .. #make -j$(nproc) Gradido_LoginServer_Test #RUN chmod +x build_cov/bin/Gradido_LoginServer_Test @@ -55,8 +56,10 @@ RUN cd build_cov && \ #CMD ./build_cov/bin/Gradido_LoginServer_Test #ENTRYPOINT make -C build_cov coverage -CMD cd build_cov && make -j$(nproc) Gradido_LoginServer_Test && make coverage_html - +CMD cd build_cov && make -j$(nproc) Gradido_LoginServer_Test && make coverage && \ + if [ ! -d "./coverage" ] ; then mkdir coverage; fi && \ + cp coverage.info ./coverage/ + ######################################################################################################### # Build debug #########################################################################################################