From 76e3675709ab7127e8ceed9d2ecd12c8550295f8 Mon Sep 17 00:00:00 2001 From: 0xG0nz0 <8682922+0xg0nz0@users.noreply.github.com> Date: Sun, 10 Mar 2024 16:10:56 +0000 Subject: [PATCH 01/16] Improve and re-organize documentation --- .devcontainer/post-install.sh | 2 +- .../CODE_OF_CONDUCT.md | 0 .../PULL_REQUEST_TEMPLATE.md | 0 SECURITY.md => .github/SECURITY.md | 0 CONTRIBUTORS.md | 22 +++++++++++++----- docs/images/init_act.png | Bin 0 -> 161574 bytes docs/images/pre-commit_run.png | Bin 0 -> 148646 bytes 7 files changed, 17 insertions(+), 7 deletions(-) rename CODE_OF_CONDUCT.md => .github/CODE_OF_CONDUCT.md (100%) rename PULL_REQUEST_TEMPLATE.md => .github/PULL_REQUEST_TEMPLATE.md (100%) rename SECURITY.md => .github/SECURITY.md (100%) create mode 100644 docs/images/init_act.png create mode 100644 docs/images/pre-commit_run.png diff --git a/.devcontainer/post-install.sh b/.devcontainer/post-install.sh index 0673697..fc633b5 100755 --- a/.devcontainer/post-install.sh +++ b/.devcontainer/post-install.sh @@ -8,4 +8,4 @@ if ! git config --global --get safe.directory >/dev/null; then fi # set up pre-commit -pre-commit install +pre-commit install --install-hooks diff --git a/CODE_OF_CONDUCT.md b/.github/CODE_OF_CONDUCT.md similarity index 100% rename from CODE_OF_CONDUCT.md rename to .github/CODE_OF_CONDUCT.md diff --git a/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md similarity index 100% rename from PULL_REQUEST_TEMPLATE.md rename to .github/PULL_REQUEST_TEMPLATE.md diff --git a/SECURITY.md b/.github/SECURITY.md similarity index 100% rename from SECURITY.md rename to .github/SECURITY.md diff --git a/CONTRIBUTORS.md b/CONTRIBUTORS.md index b1c55eb..e61b4e6 100644 --- a/CONTRIBUTORS.md +++ b/CONTRIBUTORS.md @@ -4,21 +4,31 @@ This is a collection of tips for developers of `iggy-cpp-client`. The initial code is being built with the latest Visual Studio Code and its C++ dev container, under `.devcontainer`. If you are using CLion, XCode or other toolchains it may not have been tested, so please report issues and we will fix them. We are also currently using [vcpkg](https://vcpkg.io) in [manifest mode](https://learn.microsoft.com/en-us/vcpkg/users/manifests) for dependency management. The appropriate packages are downloaded and compiled locally as part of the CMake build, but if you add a new dependency extra steps are required to update the manifest and CMake configuration. +## Philosophy: code quality + +In VS Code the dev container automatically installs [pre-commit](https://pre-commit.com), sets up the `.git` hooks directory and installs all necessary tools for pre-commit checks. The relevant linters from [super-linter](https://github.com/super-linter/super-linter) -- which runs in CI automatically -- as well as the build, unit tests ad E2E tests are all run for you on any changed files before any local Git commit, _before_ it gets pushed. This is in line with the general project philosophy to do as many quality checks and fixes left-of-merge, meaning we aim to catch problems first in the IDE, then in pre-commit checks, and finally in mandatory checks run in CI before the developer ever merges a code change to the `main` branch. This is born of hard experience that quality problems, once merged in, are much harder to repair. Not only is the problem out of context ("which of the last 20 commits caused this E2E test regression?") but accountability is lost: the person who has broken a test, introduced a warning or violated coding standards _must_ be the one to fix the problem. "Quality control is everyone's problem" is not enough: applied literally, quality is nobody's problem, so this is better understood as a requirement that everyone own the impact of the changes they themselves make to the codebase to the maximum extent possible. + ## Tested configurations -CI runs on ubuntu-20.04 and ubuntu-22.04, and the dev containers have been tested on both x64 and arm64 (macOS 14.x, using latest VS Code and Docker Desktop). +CI runs on `ubuntu-latest`, and the dev containers have been tested on both x64 and arm64 (macOS 14.x, using latest VS Code and Docker Desktop). CLion, XCode and other C++ IDE's will be supported on a best-efforts basis. -## HOWTO: Test GitHub Actions locally +## HOWTO: Run pre-commit checks manually -Our continuous integration uses GitHub Actions, and sometimes it's more convenient to first test it. The VS Code container includes the [act](https://github.com/nektos/act) extension, and you can use it to do a smoke test of the CI actions before you push to GitHub: +When adding new pre-commit checks or when testing out other development environment changes, you may wish to pro-actively run all pre-commit checks on all files. You can do it this way: ```shell -act -P ubuntu-20.04=catthehacker/ubuntu:full-20.04 -P ubuntu-22.04=catthehacker/ubuntu:full-22.04 +pre-commit run --all-files ``` -If you want to do a quicker test, add `--matrix=os:ubuntu-22.04` to run just a single matrix variant. +![Pre-commit run](docs/images/pre-commit_run.png) + +## HOWTO: Test GitHub Actions locally + +Our continuous integration uses GitHub Actions, and sometimes it's more convenient to first test it. The VS Code container includes the [act](https://github.com/nektos/act) extension, and you can use it to do a smoke test of the CI actions before you push to GitHub. Run `act` and, if running for the first time, choose "Medium" for the container: + +![Initializing act](docs/images/init_act.png) -Once it's working well locally, you can push and the CI job will automatically run the full matrix for you. +Note `act` is an _emulator_ that runs in Docker. It may not perfectly reproduce the GitHub Actions environment, and is not a substitute for a full CI run on GitHub post-commit. ## Resources diff --git a/docs/images/init_act.png b/docs/images/init_act.png new file mode 100644 index 0000000000000000000000000000000000000000..d222fb0f5ea61fff0a106c58a061d8053e7aebe7 GIT binary patch literal 161574 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

yGl7b`2wjU6Vf!`jm=85Yz9pWRsmH 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 OCe5IX2_QW&M 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 literal 0 HcmV?d00001 diff --git a/docs/images/pre-commit_run.png b/docs/images/pre-commit_run.png new file mode 100644 index 0000000000000000000000000000000000000000..fc0c248d58873ce0fcdad6f3f23494e1b95b6916 GIT binary patch literal 148646 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

1isfw0Yl!L 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 E0R}U~sQ>@~ literal 0 HcmV?d00001 From 8ae91d4e69eecf3fb577f9d1ca1bb6c16c8b0d5f Mon Sep 17 00:00:00 2001 From: 0xG0nz0 <8682922+0xg0nz0@users.noreply.github.com> Date: Sun, 10 Mar 2024 16:43:29 +0000 Subject: [PATCH 02/16] Add coverage target for unit tests --- .devcontainer/Dockerfile | 3 +- .lcovrc | 3 + CMakeLists.txt | 1 + CMakePresets.json | 3 +- cmake/modules/CodeCoverage.cmake | 750 +++++++++++++++++++++++++++++++ tests/CMakeLists.txt | 13 +- 6 files changed, 770 insertions(+), 3 deletions(-) create mode 100644 .lcovrc create mode 100644 cmake/modules/CodeCoverage.cmake diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile index 60b9827..48e41a5 100644 --- a/.devcontainer/Dockerfile +++ b/.devcontainer/Dockerfile @@ -5,7 +5,8 @@ USER root RUN apt-get update \ && apt-get install autoconf autoconf-archive automake \ clang-format clang-tidy \ - lcov doxygen graphviz -y --no-install-recommends \ + build-essential gcovr lcov xdg-utils \ + doxygen graphviz -y --no-install-recommends \ && apt-get clean && rm -rf /var/lib/apt/lists/* # Install CMake and vcpkg diff --git a/.lcovrc b/.lcovrc new file mode 100644 index 0000000..a771112 --- /dev/null +++ b/.lcovrc @@ -0,0 +1,3 @@ +genhtml_branch_coverage = 1 +lcov_branch_coverage = 1 +lcov_excl_br_line = LCOV_EXCL_BR_LINE|CHECK|REQUIRE diff --git a/CMakeLists.txt b/CMakeLists.txt index db1a8d9..0ff7563 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -3,6 +3,7 @@ project(iggy-cpp-client) option(BUILD_TESTS "Build and run unit tests" OFF) option(BUILD_DOCS "Build documentation" OFF) +option(ENABLE_CODE_COVERAGE "Enable coverage reporting" OFF) # avoid warning about DOWNLOAD_EXTRACT_TIMESTAMP in CMake 3.24 if(CMAKE_VERSION VERSION_GREATER_EQUAL "3.24.0") diff --git a/CMakePresets.json b/CMakePresets.json index a136714..da5dd52 100644 --- a/CMakePresets.json +++ b/CMakePresets.json @@ -15,7 +15,8 @@ "description": "Preset for building unit tests", "hidden": false, "cacheVariables": { - "BUILD_TESTS": "ON" + "BUILD_TESTS": "ON", + "ENABLE_CODE_COVERAGE": "ON" }, "inherits": [ "default" diff --git a/cmake/modules/CodeCoverage.cmake b/cmake/modules/CodeCoverage.cmake new file mode 100644 index 0000000..aa159f6 --- /dev/null +++ b/cmake/modules/CodeCoverage.cmake @@ -0,0 +1,750 @@ +# Copyright (c) 2012 - 2017, Lars Bilke +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, +# are permitted provided that the following conditions are met: +# +# 1. Redistributions of source code must retain the above copyright notice, this +# list of conditions and the following disclaimer. +# +# 2. Redistributions in binary form must reproduce the above copyright notice, +# this list of conditions and the following disclaimer in the documentation +# and/or other materials provided with the distribution. +# +# 3. Neither the name of the copyright holder nor the names of its contributors +# may be used to endorse or promote products derived from this software without +# specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR +# ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +# ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# +# CHANGES: +# +# 2012-01-31, Lars Bilke +# - Enable Code Coverage +# +# 2013-09-17, Joakim Söderberg +# - Added support for Clang. +# - Some additional usage instructions. +# +# 2016-02-03, Lars Bilke +# - Refactored functions to use named parameters +# +# 2017-06-02, Lars Bilke +# - Merged with modified version from github.com/ufz/ogs +# +# 2019-05-06, Anatolii Kurotych +# - Remove unnecessary --coverage flag +# +# 2019-12-13, FeRD (Frank Dana) +# - Deprecate COVERAGE_LCOVR_EXCLUDES and COVERAGE_GCOVR_EXCLUDES lists in favor +# of tool-agnostic COVERAGE_EXCLUDES variable, or EXCLUDE setup arguments. +# - CMake 3.4+: All excludes can be specified relative to BASE_DIRECTORY +# - All setup functions: accept BASE_DIRECTORY, EXCLUDE list +# - Set lcov basedir with -b argument +# - Add automatic --demangle-cpp in lcovr, if 'c++filt' is available (can be +# overridden with NO_DEMANGLE option in setup_target_for_coverage_lcovr().) +# - Delete output dir, .info file on 'make clean' +# - Remove Python detection, since version mismatches will break gcovr +# - Minor cleanup (lowercase function names, update examples...) +# +# 2019-12-19, FeRD (Frank Dana) +# - Rename Lcov outputs, make filtered file canonical, fix cleanup for targets +# +# 2020-01-19, Bob Apthorpe +# - Added gfortran support +# +# 2020-02-17, FeRD (Frank Dana) +# - Make all add_custom_target()s VERBATIM to auto-escape wildcard characters +# in EXCLUDEs, and remove manual escaping from gcovr targets +# +# 2021-01-19, Robin Mueller +# - Add CODE_COVERAGE_VERBOSE option which will allow to print out commands which are run +# - Added the option for users to set the GCOVR_ADDITIONAL_ARGS variable to supply additional +# flags to the gcovr command +# +# 2020-05-04, Mihchael Davis +# - Add -fprofile-abs-path to make gcno files contain absolute paths +# - Fix BASE_DIRECTORY not working when defined +# - Change BYPRODUCT from folder to index.html to stop ninja from complaining about double defines +# +# 2021-05-10, Martin Stump +# - Check if the generator is multi-config before warning about non-Debug builds +# +# 2022-02-22, Marko Wehle +# - Change gcovr output from -o for --xml and --html output respectively. +# This will allow for Multiple Output Formats at the same time by making use of GCOVR_ADDITIONAL_ARGS, e.g. GCOVR_ADDITIONAL_ARGS "--txt". +# +# 2022-09-28, Sebastian Mueller +# - fix append_coverage_compiler_flags_to_target to correctly add flags +# - replace "-fprofile-arcs -ftest-coverage" with "--coverage" (equivalent) +# +# USAGE: +# +# 1. Copy this file into your cmake modules path. +# +# 2. Add the following line to your CMakeLists.txt (best inside an if-condition +# using a CMake option() to enable it just optionally): +# include(CodeCoverage) +# +# 3. Append necessary compiler flags for all supported source files: +# append_coverage_compiler_flags() +# Or for specific target: +# append_coverage_compiler_flags_to_target(YOUR_TARGET_NAME) +# +# 3.a (OPTIONAL) Set appropriate optimization flags, e.g. -O0, -O1 or -Og +# +# 4. If you need to exclude additional directories from the report, specify them +# using full paths in the COVERAGE_EXCLUDES variable before calling +# setup_target_for_coverage_*(). +# Example: +# set(COVERAGE_EXCLUDES +# '${PROJECT_SOURCE_DIR}/src/dir1/*' +# '/path/to/my/src/dir2/*') +# Or, use the EXCLUDE argument to setup_target_for_coverage_*(). +# Example: +# setup_target_for_coverage_lcov( +# NAME coverage +# EXECUTABLE testrunner +# EXCLUDE "${PROJECT_SOURCE_DIR}/src/dir1/*" "/path/to/my/src/dir2/*") +# +# 4.a NOTE: With CMake 3.4+, COVERAGE_EXCLUDES or EXCLUDE can also be set +# relative to the BASE_DIRECTORY (default: PROJECT_SOURCE_DIR) +# Example: +# set(COVERAGE_EXCLUDES "dir1/*") +# setup_target_for_coverage_gcovr_html( +# NAME coverage +# EXECUTABLE testrunner +# BASE_DIRECTORY "${PROJECT_SOURCE_DIR}/src" +# EXCLUDE "dir2/*") +# +# 5. Use the functions described below to create a custom make target which +# runs your test executable and produces a code coverage report. +# +# 6. Build a Debug build: +# cmake -DCMAKE_BUILD_TYPE=Debug .. +# make +# make my_coverage_target +# + +include(CMakeParseArguments) + +option(CODE_COVERAGE_VERBOSE "Verbose information" FALSE) + +# Check prereqs +find_program( GCOV_PATH gcov ) +find_program( LCOV_PATH NAMES lcov lcov.bat lcov.exe lcov.perl ) +find_program( FASTCOV_PATH NAMES fastcov fastcov.py ) +find_program( GENHTML_PATH NAMES genhtml genhtml.perl genhtml.bat ) +find_program( GCOVR_PATH gcovr PATHS ${CMAKE_SOURCE_DIR}/scripts/test ) +find_program( CPPFILT_PATH NAMES c++filt ) + +if(NOT GCOV_PATH) + message(FATAL_ERROR "gcov not found! Aborting...") +endif() # NOT GCOV_PATH + +# Check supported compiler (Clang, GNU and Flang) +get_property(LANGUAGES GLOBAL PROPERTY ENABLED_LANGUAGES) +foreach(LANG ${LANGUAGES}) + if("${CMAKE_${LANG}_COMPILER_ID}" MATCHES "(Apple)?[Cc]lang") + if("${CMAKE_${LANG}_COMPILER_VERSION}" VERSION_LESS 3) + message(FATAL_ERROR "Clang version must be 3.0.0 or greater! Aborting...") + endif() + elseif(NOT "${CMAKE_${LANG}_COMPILER_ID}" MATCHES "GNU" + AND NOT "${CMAKE_${LANG}_COMPILER_ID}" MATCHES "(LLVM)?[Ff]lang") + message(FATAL_ERROR "Compiler is not GNU or Flang! Aborting...") + endif() +endforeach() + +set(COVERAGE_COMPILER_FLAGS "-g --coverage" + CACHE INTERNAL "") + +if(CMAKE_CXX_COMPILER_ID MATCHES "(GNU|Clang)") + include(CheckCXXCompilerFlag) + check_cxx_compiler_flag(-fprofile-abs-path HAVE_cxx_fprofile_abs_path) + if(HAVE_cxx_fprofile_abs_path) + set(COVERAGE_CXX_COMPILER_FLAGS "${COVERAGE_COMPILER_FLAGS} -fprofile-abs-path") + endif() +endif() +if(CMAKE_C_COMPILER_ID MATCHES "(GNU|Clang)") + include(CheckCCompilerFlag) + check_c_compiler_flag(-fprofile-abs-path HAVE_c_fprofile_abs_path) + if(HAVE_c_fprofile_abs_path) + set(COVERAGE_C_COMPILER_FLAGS "${COVERAGE_COMPILER_FLAGS} -fprofile-abs-path") + endif() +endif() + +set(CMAKE_Fortran_FLAGS_COVERAGE + ${COVERAGE_COMPILER_FLAGS} + CACHE STRING "Flags used by the Fortran compiler during coverage builds." + FORCE) +set(CMAKE_CXX_FLAGS_COVERAGE + ${COVERAGE_COMPILER_FLAGS} + CACHE STRING "Flags used by the C++ compiler during coverage builds." + FORCE) +set(CMAKE_C_FLAGS_COVERAGE + ${COVERAGE_COMPILER_FLAGS} + CACHE STRING "Flags used by the C compiler during coverage builds." + FORCE) +set(CMAKE_EXE_LINKER_FLAGS_COVERAGE + "" + CACHE STRING "Flags used for linking binaries during coverage builds." + FORCE) +set(CMAKE_SHARED_LINKER_FLAGS_COVERAGE + "" + CACHE STRING "Flags used by the shared libraries linker during coverage builds." + FORCE) +mark_as_advanced( + CMAKE_Fortran_FLAGS_COVERAGE + CMAKE_CXX_FLAGS_COVERAGE + CMAKE_C_FLAGS_COVERAGE + CMAKE_EXE_LINKER_FLAGS_COVERAGE + CMAKE_SHARED_LINKER_FLAGS_COVERAGE) + +get_property(GENERATOR_IS_MULTI_CONFIG GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG) +if(NOT (CMAKE_BUILD_TYPE STREQUAL "Debug" OR GENERATOR_IS_MULTI_CONFIG)) + message(WARNING "Code coverage results with an optimised (non-Debug) build may be misleading") +endif() # NOT (CMAKE_BUILD_TYPE STREQUAL "Debug" OR GENERATOR_IS_MULTI_CONFIG) + +if(CMAKE_C_COMPILER_ID STREQUAL "GNU" OR CMAKE_Fortran_COMPILER_ID STREQUAL "GNU") + link_libraries(gcov) +endif() + +# Defines a target for running and collection code coverage information +# Builds dependencies, runs the given executable and outputs reports. +# NOTE! The executable should always have a ZERO as exit code otherwise +# the coverage generation will not complete. +# +# setup_target_for_coverage_lcov( +# NAME testrunner_coverage # New target name +# EXECUTABLE testrunner -j ${PROCESSOR_COUNT} # Executable in PROJECT_BINARY_DIR +# DEPENDENCIES testrunner # Dependencies to build first +# BASE_DIRECTORY "../" # Base directory for report +# # (defaults to PROJECT_SOURCE_DIR) +# EXCLUDE "src/dir1/*" "src/dir2/*" # Patterns to exclude (can be relative +# # to BASE_DIRECTORY, with CMake 3.4+) +# NO_DEMANGLE # Don't demangle C++ symbols +# # even if c++filt is found +# ) +function(setup_target_for_coverage_lcov) + + set(options NO_DEMANGLE SONARQUBE) + set(oneValueArgs BASE_DIRECTORY NAME) + set(multiValueArgs EXCLUDE EXECUTABLE EXECUTABLE_ARGS DEPENDENCIES LCOV_ARGS GENHTML_ARGS) + cmake_parse_arguments(Coverage "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN}) + + if(NOT LCOV_PATH) + message(FATAL_ERROR "lcov not found! Aborting...") + endif() # NOT LCOV_PATH + + if(NOT GENHTML_PATH) + message(FATAL_ERROR "genhtml not found! Aborting...") + endif() # NOT GENHTML_PATH + + # Set base directory (as absolute path), or default to PROJECT_SOURCE_DIR + if(DEFINED Coverage_BASE_DIRECTORY) + get_filename_component(BASEDIR ${Coverage_BASE_DIRECTORY} ABSOLUTE) + else() + set(BASEDIR ${PROJECT_SOURCE_DIR}) + endif() + + # Collect excludes (CMake 3.4+: Also compute absolute paths) + set(LCOV_EXCLUDES "") + foreach(EXCLUDE ${Coverage_EXCLUDE} ${COVERAGE_EXCLUDES} ${COVERAGE_LCOV_EXCLUDES}) + if(CMAKE_VERSION VERSION_GREATER 3.4) + get_filename_component(EXCLUDE ${EXCLUDE} ABSOLUTE BASE_DIR ${BASEDIR}) + endif() + list(APPEND LCOV_EXCLUDES "${EXCLUDE}") + endforeach() + list(REMOVE_DUPLICATES LCOV_EXCLUDES) + + # Conditional arguments + if(CPPFILT_PATH AND NOT ${Coverage_NO_DEMANGLE}) + set(GENHTML_EXTRA_ARGS "--demangle-cpp") + endif() + + # Setting up commands which will be run to generate coverage data. + # Cleanup lcov + set(LCOV_CLEAN_CMD + ${LCOV_PATH} ${Coverage_LCOV_ARGS} --gcov-tool ${GCOV_PATH} -directory . + -b ${BASEDIR} --zerocounters + ) + # Create baseline to make sure untouched files show up in the report + set(LCOV_BASELINE_CMD + ${LCOV_PATH} ${Coverage_LCOV_ARGS} --gcov-tool ${GCOV_PATH} -c -i -d . -b + ${BASEDIR} -o ${Coverage_NAME}.base + ) + # Run tests + set(LCOV_EXEC_TESTS_CMD + ${Coverage_EXECUTABLE} ${Coverage_EXECUTABLE_ARGS} + ) + # Capturing lcov counters and generating report + set(LCOV_CAPTURE_CMD + ${LCOV_PATH} ${Coverage_LCOV_ARGS} --gcov-tool ${GCOV_PATH} --directory . -b + ${BASEDIR} --capture --output-file ${Coverage_NAME}.capture + ) + # add baseline counters + set(LCOV_BASELINE_COUNT_CMD + ${LCOV_PATH} ${Coverage_LCOV_ARGS} --gcov-tool ${GCOV_PATH} -a ${Coverage_NAME}.base + -a ${Coverage_NAME}.capture --output-file ${Coverage_NAME}.total + ) + # filter collected data to final coverage report + set(LCOV_FILTER_CMD + ${LCOV_PATH} ${Coverage_LCOV_ARGS} --gcov-tool ${GCOV_PATH} --remove + ${Coverage_NAME}.total ${LCOV_EXCLUDES} --output-file ${Coverage_NAME}.info + ) + # Generate HTML output + set(LCOV_GEN_HTML_CMD + ${GENHTML_PATH} ${GENHTML_EXTRA_ARGS} ${Coverage_GENHTML_ARGS} -o + ${Coverage_NAME} ${Coverage_NAME}.info + ) + if(${Coverage_SONARQUBE}) + # Generate SonarQube output + set(GCOVR_XML_CMD + ${GCOVR_PATH} --sonarqube ${Coverage_NAME}_sonarqube.xml -r ${BASEDIR} ${GCOVR_ADDITIONAL_ARGS} + ${GCOVR_EXCLUDE_ARGS} --object-directory=${PROJECT_BINARY_DIR} + ) + set(GCOVR_XML_CMD_COMMAND + COMMAND ${GCOVR_XML_CMD} + ) + set(GCOVR_XML_CMD_BYPRODUCTS ${Coverage_NAME}_sonarqube.xml) + set(GCOVR_XML_CMD_COMMENT COMMENT "SonarQube code coverage info report saved in ${Coverage_NAME}_sonarqube.xml.") + endif() + + + if(CODE_COVERAGE_VERBOSE) + message(STATUS "Executed command report") + message(STATUS "Command to clean up lcov: ") + string(REPLACE ";" " " LCOV_CLEAN_CMD_SPACED "${LCOV_CLEAN_CMD}") + message(STATUS "${LCOV_CLEAN_CMD_SPACED}") + + message(STATUS "Command to create baseline: ") + string(REPLACE ";" " " LCOV_BASELINE_CMD_SPACED "${LCOV_BASELINE_CMD}") + message(STATUS "${LCOV_BASELINE_CMD_SPACED}") + + message(STATUS "Command to run the tests: ") + string(REPLACE ";" " " LCOV_EXEC_TESTS_CMD_SPACED "${LCOV_EXEC_TESTS_CMD}") + message(STATUS "${LCOV_EXEC_TESTS_CMD_SPACED}") + + message(STATUS "Command to capture counters and generate report: ") + string(REPLACE ";" " " LCOV_CAPTURE_CMD_SPACED "${LCOV_CAPTURE_CMD}") + message(STATUS "${LCOV_CAPTURE_CMD_SPACED}") + + message(STATUS "Command to add baseline counters: ") + string(REPLACE ";" " " LCOV_BASELINE_COUNT_CMD_SPACED "${LCOV_BASELINE_COUNT_CMD}") + message(STATUS "${LCOV_BASELINE_COUNT_CMD_SPACED}") + + message(STATUS "Command to filter collected data: ") + string(REPLACE ";" " " LCOV_FILTER_CMD_SPACED "${LCOV_FILTER_CMD}") + message(STATUS "${LCOV_FILTER_CMD_SPACED}") + + message(STATUS "Command to generate lcov HTML output: ") + string(REPLACE ";" " " LCOV_GEN_HTML_CMD_SPACED "${LCOV_GEN_HTML_CMD}") + message(STATUS "${LCOV_GEN_HTML_CMD_SPACED}") + + if(${Coverage_SONARQUBE}) + message(STATUS "Command to generate SonarQube XML output: ") + string(REPLACE ";" " " GCOVR_XML_CMD_SPACED "${GCOVR_XML_CMD}") + message(STATUS "${GCOVR_XML_CMD_SPACED}") + endif() + endif() + + # Setup target + add_custom_target(${Coverage_NAME} + COMMAND ${LCOV_CLEAN_CMD} + COMMAND ${LCOV_BASELINE_CMD} + COMMAND ${LCOV_EXEC_TESTS_CMD} + COMMAND ${LCOV_CAPTURE_CMD} + COMMAND ${LCOV_BASELINE_COUNT_CMD} + COMMAND ${LCOV_FILTER_CMD} + COMMAND ${LCOV_GEN_HTML_CMD} + ${GCOVR_XML_CMD_COMMAND} + + # Set output files as GENERATED (will be removed on 'make clean') + BYPRODUCTS + ${Coverage_NAME}.base + ${Coverage_NAME}.capture + ${Coverage_NAME}.total + ${Coverage_NAME}.info + ${GCOVR_XML_CMD_BYPRODUCTS} + ${Coverage_NAME}/index.html + WORKING_DIRECTORY ${PROJECT_BINARY_DIR} + DEPENDS ${Coverage_DEPENDENCIES} + VERBATIM # Protect arguments to commands + COMMENT "Resetting code coverage counters to zero.\nProcessing code coverage counters and generating report." + ) + + # Show where to find the lcov info report + add_custom_command(TARGET ${Coverage_NAME} POST_BUILD + COMMAND ; + COMMENT "Lcov code coverage info report saved in ${Coverage_NAME}.info." + ${GCOVR_XML_CMD_COMMENT} + ) + + # Show info where to find the report + add_custom_command(TARGET ${Coverage_NAME} POST_BUILD + COMMAND ; + COMMENT "Open ./${Coverage_NAME}/index.html in your browser to view the coverage report." + ) + +endfunction() # setup_target_for_coverage_lcov + +# Defines a target for running and collection code coverage information +# Builds dependencies, runs the given executable and outputs reports. +# NOTE! The executable should always have a ZERO as exit code otherwise +# the coverage generation will not complete. +# +# setup_target_for_coverage_gcovr_xml( +# NAME ctest_coverage # New target name +# EXECUTABLE ctest -j ${PROCESSOR_COUNT} # Executable in PROJECT_BINARY_DIR +# DEPENDENCIES executable_target # Dependencies to build first +# BASE_DIRECTORY "../" # Base directory for report +# # (defaults to PROJECT_SOURCE_DIR) +# EXCLUDE "src/dir1/*" "src/dir2/*" # Patterns to exclude (can be relative +# # to BASE_DIRECTORY, with CMake 3.4+) +# ) +# The user can set the variable GCOVR_ADDITIONAL_ARGS to supply additional flags to the +# GCVOR command. +function(setup_target_for_coverage_gcovr_xml) + + set(options NONE) + set(oneValueArgs BASE_DIRECTORY NAME) + set(multiValueArgs EXCLUDE EXECUTABLE EXECUTABLE_ARGS DEPENDENCIES) + cmake_parse_arguments(Coverage "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN}) + + if(NOT GCOVR_PATH) + message(FATAL_ERROR "gcovr not found! Aborting...") + endif() # NOT GCOVR_PATH + + # Set base directory (as absolute path), or default to PROJECT_SOURCE_DIR + if(DEFINED Coverage_BASE_DIRECTORY) + get_filename_component(BASEDIR ${Coverage_BASE_DIRECTORY} ABSOLUTE) + else() + set(BASEDIR ${PROJECT_SOURCE_DIR}) + endif() + + # Collect excludes (CMake 3.4+: Also compute absolute paths) + set(GCOVR_EXCLUDES "") + foreach(EXCLUDE ${Coverage_EXCLUDE} ${COVERAGE_EXCLUDES} ${COVERAGE_GCOVR_EXCLUDES}) + if(CMAKE_VERSION VERSION_GREATER 3.4) + get_filename_component(EXCLUDE ${EXCLUDE} ABSOLUTE BASE_DIR ${BASEDIR}) + endif() + list(APPEND GCOVR_EXCLUDES "${EXCLUDE}") + endforeach() + list(REMOVE_DUPLICATES GCOVR_EXCLUDES) + + # Combine excludes to several -e arguments + set(GCOVR_EXCLUDE_ARGS "") + foreach(EXCLUDE ${GCOVR_EXCLUDES}) + list(APPEND GCOVR_EXCLUDE_ARGS "-e") + list(APPEND GCOVR_EXCLUDE_ARGS "${EXCLUDE}") + endforeach() + + # Set up commands which will be run to generate coverage data + # Run tests + set(GCOVR_XML_EXEC_TESTS_CMD + ${Coverage_EXECUTABLE} ${Coverage_EXECUTABLE_ARGS} + ) + # Running gcovr + set(GCOVR_XML_CMD + ${GCOVR_PATH} --xml ${Coverage_NAME}.xml -r ${BASEDIR} ${GCOVR_ADDITIONAL_ARGS} + ${GCOVR_EXCLUDE_ARGS} --object-directory=${PROJECT_BINARY_DIR} + ) + + if(CODE_COVERAGE_VERBOSE) + message(STATUS "Executed command report") + + message(STATUS "Command to run tests: ") + string(REPLACE ";" " " GCOVR_XML_EXEC_TESTS_CMD_SPACED "${GCOVR_XML_EXEC_TESTS_CMD}") + message(STATUS "${GCOVR_XML_EXEC_TESTS_CMD_SPACED}") + + message(STATUS "Command to generate gcovr XML coverage data: ") + string(REPLACE ";" " " GCOVR_XML_CMD_SPACED "${GCOVR_XML_CMD}") + message(STATUS "${GCOVR_XML_CMD_SPACED}") + endif() + + add_custom_target(${Coverage_NAME} + COMMAND ${GCOVR_XML_EXEC_TESTS_CMD} + COMMAND ${GCOVR_XML_CMD} + + BYPRODUCTS ${Coverage_NAME}.xml + WORKING_DIRECTORY ${PROJECT_BINARY_DIR} + DEPENDS ${Coverage_DEPENDENCIES} + VERBATIM # Protect arguments to commands + COMMENT "Running gcovr to produce Cobertura code coverage report." + ) + + # Show info where to find the report + add_custom_command(TARGET ${Coverage_NAME} POST_BUILD + COMMAND ; + COMMENT "Cobertura code coverage report saved in ${Coverage_NAME}.xml." + ) +endfunction() # setup_target_for_coverage_gcovr_xml + +# Defines a target for running and collection code coverage information +# Builds dependencies, runs the given executable and outputs reports. +# NOTE! The executable should always have a ZERO as exit code otherwise +# the coverage generation will not complete. +# +# setup_target_for_coverage_gcovr_html( +# NAME ctest_coverage # New target name +# EXECUTABLE ctest -j ${PROCESSOR_COUNT} # Executable in PROJECT_BINARY_DIR +# DEPENDENCIES executable_target # Dependencies to build first +# BASE_DIRECTORY "../" # Base directory for report +# # (defaults to PROJECT_SOURCE_DIR) +# EXCLUDE "src/dir1/*" "src/dir2/*" # Patterns to exclude (can be relative +# # to BASE_DIRECTORY, with CMake 3.4+) +# ) +# The user can set the variable GCOVR_ADDITIONAL_ARGS to supply additional flags to the +# GCVOR command. +function(setup_target_for_coverage_gcovr_html) + + set(options NONE) + set(oneValueArgs BASE_DIRECTORY NAME) + set(multiValueArgs EXCLUDE EXECUTABLE EXECUTABLE_ARGS DEPENDENCIES) + cmake_parse_arguments(Coverage "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN}) + + if(NOT GCOVR_PATH) + message(FATAL_ERROR "gcovr not found! Aborting...") + endif() # NOT GCOVR_PATH + + # Set base directory (as absolute path), or default to PROJECT_SOURCE_DIR + if(DEFINED Coverage_BASE_DIRECTORY) + get_filename_component(BASEDIR ${Coverage_BASE_DIRECTORY} ABSOLUTE) + else() + set(BASEDIR ${PROJECT_SOURCE_DIR}) + endif() + + # Collect excludes (CMake 3.4+: Also compute absolute paths) + set(GCOVR_EXCLUDES "") + foreach(EXCLUDE ${Coverage_EXCLUDE} ${COVERAGE_EXCLUDES} ${COVERAGE_GCOVR_EXCLUDES}) + if(CMAKE_VERSION VERSION_GREATER 3.4) + get_filename_component(EXCLUDE ${EXCLUDE} ABSOLUTE BASE_DIR ${BASEDIR}) + endif() + list(APPEND GCOVR_EXCLUDES "${EXCLUDE}") + endforeach() + list(REMOVE_DUPLICATES GCOVR_EXCLUDES) + + # Combine excludes to several -e arguments + set(GCOVR_EXCLUDE_ARGS "") + foreach(EXCLUDE ${GCOVR_EXCLUDES}) + list(APPEND GCOVR_EXCLUDE_ARGS "-e") + list(APPEND GCOVR_EXCLUDE_ARGS "${EXCLUDE}") + endforeach() + + # Set up commands which will be run to generate coverage data + # Run tests + set(GCOVR_HTML_EXEC_TESTS_CMD + ${Coverage_EXECUTABLE} ${Coverage_EXECUTABLE_ARGS} + ) + # Create folder + set(GCOVR_HTML_FOLDER_CMD + ${CMAKE_COMMAND} -E make_directory ${PROJECT_BINARY_DIR}/${Coverage_NAME} + ) + # Running gcovr + set(GCOVR_HTML_CMD + ${GCOVR_PATH} --html ${Coverage_NAME}/index.html --html-details -r ${BASEDIR} ${GCOVR_ADDITIONAL_ARGS} + ${GCOVR_EXCLUDE_ARGS} --object-directory=${PROJECT_BINARY_DIR} + ) + + if(CODE_COVERAGE_VERBOSE) + message(STATUS "Executed command report") + + message(STATUS "Command to run tests: ") + string(REPLACE ";" " " GCOVR_HTML_EXEC_TESTS_CMD_SPACED "${GCOVR_HTML_EXEC_TESTS_CMD}") + message(STATUS "${GCOVR_HTML_EXEC_TESTS_CMD_SPACED}") + + message(STATUS "Command to create a folder: ") + string(REPLACE ";" " " GCOVR_HTML_FOLDER_CMD_SPACED "${GCOVR_HTML_FOLDER_CMD}") + message(STATUS "${GCOVR_HTML_FOLDER_CMD_SPACED}") + + message(STATUS "Command to generate gcovr HTML coverage data: ") + string(REPLACE ";" " " GCOVR_HTML_CMD_SPACED "${GCOVR_HTML_CMD}") + message(STATUS "${GCOVR_HTML_CMD_SPACED}") + endif() + + add_custom_target(${Coverage_NAME} + COMMAND ${GCOVR_HTML_EXEC_TESTS_CMD} + COMMAND ${GCOVR_HTML_FOLDER_CMD} + COMMAND ${GCOVR_HTML_CMD} + + BYPRODUCTS ${PROJECT_BINARY_DIR}/${Coverage_NAME}/index.html # report directory + WORKING_DIRECTORY ${PROJECT_BINARY_DIR} + DEPENDS ${Coverage_DEPENDENCIES} + VERBATIM # Protect arguments to commands + COMMENT "Running gcovr to produce HTML code coverage report." + ) + + # Show info where to find the report + add_custom_command(TARGET ${Coverage_NAME} POST_BUILD + COMMAND ; + COMMENT "Open ./${Coverage_NAME}/index.html in your browser to view the coverage report." + ) + +endfunction() # setup_target_for_coverage_gcovr_html + +# Defines a target for running and collection code coverage information +# Builds dependencies, runs the given executable and outputs reports. +# NOTE! The executable should always have a ZERO as exit code otherwise +# the coverage generation will not complete. +# +# setup_target_for_coverage_fastcov( +# NAME testrunner_coverage # New target name +# EXECUTABLE testrunner -j ${PROCESSOR_COUNT} # Executable in PROJECT_BINARY_DIR +# DEPENDENCIES testrunner # Dependencies to build first +# BASE_DIRECTORY "../" # Base directory for report +# # (defaults to PROJECT_SOURCE_DIR) +# EXCLUDE "src/dir1/" "src/dir2/" # Patterns to exclude. +# NO_DEMANGLE # Don't demangle C++ symbols +# # even if c++filt is found +# SKIP_HTML # Don't create html report +# POST_CMD perl -i -pe s!${PROJECT_SOURCE_DIR}/!!g ctest_coverage.json # E.g. for stripping source dir from file paths +# ) +function(setup_target_for_coverage_fastcov) + + set(options NO_DEMANGLE SKIP_HTML) + set(oneValueArgs BASE_DIRECTORY NAME) + set(multiValueArgs EXCLUDE EXECUTABLE EXECUTABLE_ARGS DEPENDENCIES FASTCOV_ARGS GENHTML_ARGS POST_CMD) + cmake_parse_arguments(Coverage "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN}) + + if(NOT FASTCOV_PATH) + message(FATAL_ERROR "fastcov not found! Aborting...") + endif() + + if(NOT Coverage_SKIP_HTML AND NOT GENHTML_PATH) + message(FATAL_ERROR "genhtml not found! Aborting...") + endif() + + # Set base directory (as absolute path), or default to PROJECT_SOURCE_DIR + if(Coverage_BASE_DIRECTORY) + get_filename_component(BASEDIR ${Coverage_BASE_DIRECTORY} ABSOLUTE) + else() + set(BASEDIR ${PROJECT_SOURCE_DIR}) + endif() + + # Collect excludes (Patterns, not paths, for fastcov) + set(FASTCOV_EXCLUDES "") + foreach(EXCLUDE ${Coverage_EXCLUDE} ${COVERAGE_EXCLUDES} ${COVERAGE_FASTCOV_EXCLUDES}) + list(APPEND FASTCOV_EXCLUDES "${EXCLUDE}") + endforeach() + list(REMOVE_DUPLICATES FASTCOV_EXCLUDES) + + # Conditional arguments + if(CPPFILT_PATH AND NOT ${Coverage_NO_DEMANGLE}) + set(GENHTML_EXTRA_ARGS "--demangle-cpp") + endif() + + # Set up commands which will be run to generate coverage data + set(FASTCOV_EXEC_TESTS_CMD ${Coverage_EXECUTABLE} ${Coverage_EXECUTABLE_ARGS}) + + set(FASTCOV_CAPTURE_CMD ${FASTCOV_PATH} ${Coverage_FASTCOV_ARGS} --gcov ${GCOV_PATH} + --search-directory ${BASEDIR} + --process-gcno + --output ${Coverage_NAME}.json + --exclude ${FASTCOV_EXCLUDES} + ) + + set(FASTCOV_CONVERT_CMD ${FASTCOV_PATH} + -C ${Coverage_NAME}.json --lcov --output ${Coverage_NAME}.info + ) + + if(Coverage_SKIP_HTML) + set(FASTCOV_HTML_CMD ";") + else() + set(FASTCOV_HTML_CMD ${GENHTML_PATH} ${GENHTML_EXTRA_ARGS} ${Coverage_GENHTML_ARGS} + -o ${Coverage_NAME} ${Coverage_NAME}.info + ) + endif() + + set(FASTCOV_POST_CMD ";") + if(Coverage_POST_CMD) + set(FASTCOV_POST_CMD ${Coverage_POST_CMD}) + endif() + + if(CODE_COVERAGE_VERBOSE) + message(STATUS "Code coverage commands for target ${Coverage_NAME} (fastcov):") + + message(" Running tests:") + string(REPLACE ";" " " FASTCOV_EXEC_TESTS_CMD_SPACED "${FASTCOV_EXEC_TESTS_CMD}") + message(" ${FASTCOV_EXEC_TESTS_CMD_SPACED}") + + message(" Capturing fastcov counters and generating report:") + string(REPLACE ";" " " FASTCOV_CAPTURE_CMD_SPACED "${FASTCOV_CAPTURE_CMD}") + message(" ${FASTCOV_CAPTURE_CMD_SPACED}") + + message(" Converting fastcov .json to lcov .info:") + string(REPLACE ";" " " FASTCOV_CONVERT_CMD_SPACED "${FASTCOV_CONVERT_CMD}") + message(" ${FASTCOV_CONVERT_CMD_SPACED}") + + if(NOT Coverage_SKIP_HTML) + message(" Generating HTML report: ") + string(REPLACE ";" " " FASTCOV_HTML_CMD_SPACED "${FASTCOV_HTML_CMD}") + message(" ${FASTCOV_HTML_CMD_SPACED}") + endif() + if(Coverage_POST_CMD) + message(" Running post command: ") + string(REPLACE ";" " " FASTCOV_POST_CMD_SPACED "${FASTCOV_POST_CMD}") + message(" ${FASTCOV_POST_CMD_SPACED}") + endif() + endif() + + # Setup target + add_custom_target(${Coverage_NAME} + + # Cleanup fastcov + COMMAND ${FASTCOV_PATH} ${Coverage_FASTCOV_ARGS} --gcov ${GCOV_PATH} + --search-directory ${BASEDIR} + --zerocounters + + COMMAND ${FASTCOV_EXEC_TESTS_CMD} + COMMAND ${FASTCOV_CAPTURE_CMD} + COMMAND ${FASTCOV_CONVERT_CMD} + COMMAND ${FASTCOV_HTML_CMD} + COMMAND ${FASTCOV_POST_CMD} + + # Set output files as GENERATED (will be removed on 'make clean') + BYPRODUCTS + ${Coverage_NAME}.info + ${Coverage_NAME}.json + ${Coverage_NAME}/index.html # report directory + + WORKING_DIRECTORY ${PROJECT_BINARY_DIR} + DEPENDS ${Coverage_DEPENDENCIES} + VERBATIM # Protect arguments to commands + COMMENT "Resetting code coverage counters to zero. Processing code coverage counters and generating report." + ) + + set(INFO_MSG "fastcov code coverage info report saved in ${Coverage_NAME}.info and ${Coverage_NAME}.json.") + if(NOT Coverage_SKIP_HTML) + string(APPEND INFO_MSG " Open ${PROJECT_BINARY_DIR}/${Coverage_NAME}/index.html in your browser to view the coverage report.") + endif() + # Show where to find the fastcov info report + add_custom_command(TARGET ${Coverage_NAME} POST_BUILD + COMMAND ${CMAKE_COMMAND} -E echo ${INFO_MSG} + ) + +endfunction() # setup_target_for_coverage_fastcov + +function(append_coverage_compiler_flags) + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${COVERAGE_COMPILER_FLAGS}" PARENT_SCOPE) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${COVERAGE_COMPILER_FLAGS}" PARENT_SCOPE) + set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} ${COVERAGE_COMPILER_FLAGS}" PARENT_SCOPE) + message(STATUS "Appending code coverage compiler flags: ${COVERAGE_COMPILER_FLAGS}") +endfunction() # append_coverage_compiler_flags + +# Setup coverage for specific library +function(append_coverage_compiler_flags_to_target name) + separate_arguments(_flag_list NATIVE_COMMAND "${COVERAGE_COMPILER_FLAGS}") + target_compile_options(${name} PRIVATE ${_flag_list}) + if(CMAKE_C_COMPILER_ID STREQUAL "GNU" OR CMAKE_CXX_COMPILER_ID STREQUAL "GNU" OR CMAKE_Fortran_COMPILER_ID STREQUAL "GNU") + target_link_libraries(${name} PRIVATE gcov) + endif() +endfunction() diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 8502e47..e3e323f 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -32,5 +32,16 @@ if(BUILD_TESTS) Catch2::Catch2 Catch2::Catch2WithMain reproc++ -) + ) + + if(ENABLE_CODE_COVERAGE) + include(../cmake/modules/CodeCoverage.cmake) + append_coverage_compiler_flags() + + setup_target_for_coverage_lcov( + NAME coverage + EXECUTABLE iggy_cpp_test + EXCLUDE /usr/include/c++/* ${CMAKE_CURRENT_SOURCE_DIR}/../tests/* + ${CMAKE_CURRENT_SOURCE_DIR}/../build/*) + endif() endif() From 5957c65a39961eba4175383671e52b3284826bec Mon Sep 17 00:00:00 2001 From: 0xG0nz0 <8682922+0xg0nz0@users.noreply.github.com> Date: Mon, 11 Mar 2024 13:28:14 +0000 Subject: [PATCH 03/16] Add lcov to GitHub Actions workflow --- .github/workflows/ci.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index e16b2b0..b7c2486 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -36,7 +36,8 @@ jobs: sudo apt-get update && \ sudo apt-get install -y autoconf \ autoconf-archive \ - build-essential + build-essential \ + gcovr lcov xdg-utils - name: Setup vcpkg uses: lukka/run-vcpkg@v11 with: From 25d36d2f11c3a4075a742d129827cc9f56dcf430 Mon Sep 17 00:00:00 2001 From: 0xG0nz0 <8682922+0xg0nz0@users.noreply.github.com> Date: Tue, 12 Mar 2024 22:31:16 +0000 Subject: [PATCH 04/16] Activate multi-build --- CMakePresets.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakePresets.json b/CMakePresets.json index da5dd52..a221087 100644 --- a/CMakePresets.json +++ b/CMakePresets.json @@ -4,7 +4,7 @@ { "name": "default", "binaryDir": "${sourceDir}/build", - "generator": "Ninja", + "generator": "Ninja Multi-Config", "cacheVariables": { "CMAKE_EXPORT_COMPILE_COMMANDS": "ON", "CMAKE_TOOLCHAIN_FILE": "$env{VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake" From cd68696b98d9fa4670a685432ec2b5545e197b2c Mon Sep 17 00:00:00 2001 From: 0xG0nz0 <8682922+0xg0nz0@users.noreply.github.com> Date: Tue, 12 Mar 2024 22:54:47 +0000 Subject: [PATCH 05/16] Run lcov and genhtml in GHA --- .github/workflows/ci.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index b7c2486..1211c10 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -51,6 +51,10 @@ jobs: buildPreset: ninja - name: Run Tests run: build/tests/iggy_cpp_test + - name: Run Coverage + run: | + cd build + ninja coverage lint: name: Lint From 73611dfc1e949e10f028005e61ea720fb2c09a51 Mon Sep 17 00:00:00 2001 From: 0xG0nz0 <8682922+0xg0nz0@users.noreply.github.com> Date: Tue, 12 Mar 2024 22:57:24 +0000 Subject: [PATCH 06/16] Modify path to test executable --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 1211c10..f9dbdc0 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -50,7 +50,7 @@ jobs: configurePreset: ci buildPreset: ninja - name: Run Tests - run: build/tests/iggy_cpp_test + run: build/tests/Debug/iggy_cpp_test - name: Run Coverage run: | cd build From 0e5ca0599c2d92702a5b161c4b32135c43d33bfe Mon Sep 17 00:00:00 2001 From: 0xG0nz0 <8682922+0xg0nz0@users.noreply.github.com> Date: Tue, 12 Mar 2024 23:09:09 +0000 Subject: [PATCH 07/16] Add coverage reporting step --- .github/workflows/ci.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f9dbdc0..0b6ae7b 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -55,6 +55,13 @@ jobs: run: | cd build ninja coverage + - name: Report code coverage + uses: zgosalvez/github-actions-report-lcov@v3 + with: + coverage-files: build/coverage.info + artifact-name: code-coverage-report + github-token: ${{ secrets.GITHUB_TOKEN }} + update-comment: true lint: name: Lint From 608d665d4b872f6273040256665ebf144540b473 Mon Sep 17 00:00:00 2001 From: 0xG0nz0 <8682922+0xg0nz0@users.noreply.github.com> Date: Tue, 12 Mar 2024 23:16:18 +0000 Subject: [PATCH 08/16] Add permission to update PR --- .github/workflows/ci.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 0b6ae7b..1251f4f 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -28,6 +28,9 @@ jobs: name: Build SDK runs-on: ubuntu-latest + permissions: + pull-requests: write + steps: - name: Checkout uses: actions/checkout@v4.1.1 From 9e8ce17445876c7a9602f5dd4aa88d8c30ee1edb Mon Sep 17 00:00:00 2001 From: 0xG0nz0 <8682922+0xg0nz0@users.noreply.github.com> Date: Tue, 12 Mar 2024 23:28:13 +0000 Subject: [PATCH 09/16] Switch to alternate reporting mechanism on PR --- .github/workflows/ci.yml | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 1251f4f..471677f 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -59,12 +59,10 @@ jobs: cd build ninja coverage - name: Report code coverage - uses: zgosalvez/github-actions-report-lcov@v3 + uses: kefasjw/lcov-pull-request-report@v1 with: - coverage-files: build/coverage.info - artifact-name: code-coverage-report + lcov-file: coverage/coverage.info github-token: ${{ secrets.GITHUB_TOKEN }} - update-comment: true lint: name: Lint From 372d640684c22ac0d1d0c052caf8c3a0ef3a86b3 Mon Sep 17 00:00:00 2001 From: 0xG0nz0 <8682922+0xg0nz0@users.noreply.github.com> Date: Tue, 12 Mar 2024 23:32:56 +0000 Subject: [PATCH 10/16] Fix coverage.info file path --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 471677f..9754b0d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -61,7 +61,7 @@ jobs: - name: Report code coverage uses: kefasjw/lcov-pull-request-report@v1 with: - lcov-file: coverage/coverage.info + lcov-file: build/coverage.info github-token: ${{ secrets.GITHUB_TOKEN }} lint: From 8ba7f25d791dfa9872b7d15c8f374fccecdad1e3 Mon Sep 17 00:00:00 2001 From: 0xG0nz0 <8682922+0xg0nz0@users.noreply.github.com> Date: Tue, 12 Mar 2024 23:42:14 +0000 Subject: [PATCH 11/16] Widen GITHUB_TOKEN permissions --- .github/workflows/ci.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 9754b0d..2af7f86 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -28,8 +28,7 @@ jobs: name: Build SDK runs-on: ubuntu-latest - permissions: - pull-requests: write + permissions: write-all steps: - name: Checkout From be80dd3b814f4c6846951c86ec2b5086dfa927f2 Mon Sep 17 00:00:00 2001 From: 0xG0nz0 <8682922+0xg0nz0@users.noreply.github.com> Date: Tue, 12 Mar 2024 23:55:29 +0000 Subject: [PATCH 12/16] Switch back to narrower permissions to test another fix --- .github/workflows/ci.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 2af7f86..9754b0d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -28,7 +28,8 @@ jobs: name: Build SDK runs-on: ubuntu-latest - permissions: write-all + permissions: + pull-requests: write steps: - name: Checkout From a9eb2aba7b31df138e7face991cad2a60ef2f873 Mon Sep 17 00:00:00 2001 From: 0xG0nz0 <8682922+0xg0nz0@users.noreply.github.com> Date: Wed, 13 Mar 2024 00:20:23 +0000 Subject: [PATCH 13/16] Try another reporter plugin --- .github/workflows/ci.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 9754b0d..4dc8821 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -59,10 +59,11 @@ jobs: cd build ninja coverage - name: Report code coverage - uses: kefasjw/lcov-pull-request-report@v1 + uses: andybelltree/lcov-reporter-action@v1.7.0 with: lcov-file: build/coverage.info github-token: ${{ secrets.GITHUB_TOKEN }} + delete-old-comments: true lint: name: Lint From d7b12fef3a7d4bc6dac3439355ba02aa5ca33f1b Mon Sep 17 00:00:00 2001 From: 0xG0nz0 <8682922+0xg0nz0@users.noreply.github.com> Date: Wed, 13 Mar 2024 00:27:34 +0000 Subject: [PATCH 14/16] Re-widen permissions for build job --- .github/workflows/ci.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 4dc8821..93895ff 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -28,8 +28,7 @@ jobs: name: Build SDK runs-on: ubuntu-latest - permissions: - pull-requests: write + permissions: write-all steps: - name: Checkout From 7629cedca90a8074f29c5a97372f8243055f9a7d Mon Sep 17 00:00:00 2001 From: 0xG0nz0 <8682922+0xg0nz0@users.noreply.github.com> Date: Wed, 13 Mar 2024 12:54:42 +0000 Subject: [PATCH 15/16] Specify dependencies to include in coverage analysis --- tests/CMakeLists.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index e3e323f..cbdf067 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -41,6 +41,7 @@ if(BUILD_TESTS) setup_target_for_coverage_lcov( NAME coverage EXECUTABLE iggy_cpp_test + DEPENDENCIES iggy EXCLUDE /usr/include/c++/* ${CMAKE_CURRENT_SOURCE_DIR}/../tests/* ${CMAKE_CURRENT_SOURCE_DIR}/../build/*) endif() From a43017bc7394b507bd3aa14e7e8b2b5f897987ad Mon Sep 17 00:00:00 2001 From: 0xG0nz0 <8682922+0xg0nz0@users.noreply.github.com> Date: Wed, 13 Mar 2024 15:26:48 +0000 Subject: [PATCH 16/16] Add Coveralls publish step; fix issues --- .github/workflows/ci.yml | 10 ++-- .pre-commit-config.yaml | 4 +- CMakeLists.txt | 7 +++ cmake/modules/CodeCoverage.cmake | 92 ++++++++++++++++++++++++++++++++ tests/CMakeLists.txt | 15 ++++-- 5 files changed, 116 insertions(+), 12 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 93895ff..622d8be 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -56,13 +56,13 @@ jobs: - name: Run Coverage run: | cd build - ninja coverage - - name: Report code coverage - uses: andybelltree/lcov-reporter-action@v1.7.0 + ninja coveralls + - name: Upload report to Coveralls + uses: coverallsapp/github-action@v2 with: - lcov-file: build/coverage.info + file: build/coveralls.json + measure: true github-token: ${{ secrets.GITHUB_TOKEN }} - delete-old-comments: true lint: name: Lint diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 6b640cf..c8218b1 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -59,13 +59,13 @@ repos: always_run: true - id: run-unit-tests name: Run Unit Tests - entry: ./build/tests/iggy_cpp_test + entry: ./build/tests/Debug/iggy_cpp_test language: system pass_filenames: false always_run: true - id: e2e-tests name: Run E2E Tests - entry: ./build/tests/iggy_e2e_test + entry: ./build/tests/Debug/iggy_e2e_test language: system pass_filenames: false always_run: true diff --git a/CMakeLists.txt b/CMakeLists.txt index 0ff7563..257c2b4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -76,6 +76,13 @@ target_link_libraries( unofficial-sodium::sodium ) +# even though this is related to unit tests, to get a full report we need to ensure that +# all library files are compiled with --coverage so gcno is generated properly +if(ENABLE_CODE_COVERAGE) + include(cmake/modules/CodeCoverage.cmake) + append_coverage_compiler_flags() +endif() + if(BUILD_TESTS) add_subdirectory(tests) endif() diff --git a/cmake/modules/CodeCoverage.cmake b/cmake/modules/CodeCoverage.cmake index aa159f6..11025b8 100644 --- a/cmake/modules/CodeCoverage.cmake +++ b/cmake/modules/CodeCoverage.cmake @@ -489,6 +489,98 @@ function(setup_target_for_coverage_gcovr_xml) ) endfunction() # setup_target_for_coverage_gcovr_xml +# Defines a target for running and collection code coverage information +# Builds dependencies, runs the given executable and outputs reports. +# NOTE! The executable should always have a ZERO as exit code otherwise +# the coverage generation will not complete. +# +# setup_target_for_coverage_gcovr_xml( +# NAME ctest_coverage # New target name +# EXECUTABLE ctest -j ${PROCESSOR_COUNT} # Executable in PROJECT_BINARY_DIR +# DEPENDENCIES executable_target # Dependencies to build first +# BASE_DIRECTORY "../" # Base directory for report +# # (defaults to PROJECT_SOURCE_DIR) +# EXCLUDE "src/dir1/*" "src/dir2/*" # Patterns to exclude (can be relative +# # to BASE_DIRECTORY, with CMake 3.4+) +# ) +# The user can set the variable GCOVR_ADDITIONAL_ARGS to supply additional flags to the +# GCVOR command. +function(setup_target_for_coverage_gcovr_coveralls) + + set(options NONE) + set(oneValueArgs BASE_DIRECTORY NAME) + set(multiValueArgs EXCLUDE EXECUTABLE EXECUTABLE_ARGS DEPENDENCIES) + cmake_parse_arguments(Coverage "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN}) + + if(NOT GCOVR_PATH) + message(FATAL_ERROR "gcovr not found! Aborting...") + endif() # NOT GCOVR_PATH + + # Set base directory (as absolute path), or default to PROJECT_SOURCE_DIR + if(DEFINED Coverage_BASE_DIRECTORY) + get_filename_component(BASEDIR ${Coverage_BASE_DIRECTORY} ABSOLUTE) + else() + set(BASEDIR ${PROJECT_SOURCE_DIR}) + endif() + + # Collect excludes (CMake 3.4+: Also compute absolute paths) + set(GCOVR_EXCLUDES "") + foreach(EXCLUDE ${Coverage_EXCLUDE} ${COVERAGE_EXCLUDES} ${COVERAGE_GCOVR_EXCLUDES}) + if(CMAKE_VERSION VERSION_GREATER 3.4) + get_filename_component(EXCLUDE ${EXCLUDE} ABSOLUTE BASE_DIR ${BASEDIR}) + endif() + list(APPEND GCOVR_EXCLUDES "${EXCLUDE}") + endforeach() + list(REMOVE_DUPLICATES GCOVR_EXCLUDES) + + # Combine excludes to several -e arguments + set(GCOVR_EXCLUDE_ARGS "") + foreach(EXCLUDE ${GCOVR_EXCLUDES}) + list(APPEND GCOVR_EXCLUDE_ARGS "-e") + list(APPEND GCOVR_EXCLUDE_ARGS "${EXCLUDE}") + endforeach() + + # Set up commands which will be run to generate coverage data + # Run tests + set(GCOVR_COVERALLS_EXEC_TESTS_CMD + ${Coverage_EXECUTABLE} ${Coverage_EXECUTABLE_ARGS} + ) + # Running gcovr + set(GCOVR_COVERALLS_CMD + ${GCOVR_PATH} --coveralls-pretty -o ${Coverage_NAME}.json -r ${BASEDIR} ${GCOVR_ADDITIONAL_ARGS} + ${GCOVR_EXCLUDE_ARGS} --object-directory=${PROJECT_BINARY_DIR} + ) + + if(CODE_COVERAGE_VERBOSE) + message(STATUS "Executed command report") + + message(STATUS "Command to run tests: ") + string(REPLACE ";" " " GCOVR_COVERALLS_EXEC_TESTS_CMD_SPACED "${GCOVR_COVERALLS_EXEC_TESTS_CMD}") + message(STATUS "${GCOVR_COVERALLS_EXEC_TESTS_CMD_SPACED}") + + message(STATUS "Command to generate gcovr Coveralls coverage data: ") + string(REPLACE ";" " " GCOVR_COVERALLS_CMD_SPACED "${GCOVR_COVERALLS_CMD}") + message(STATUS "${GCOVR_COVERALLS_CMD_SPACED}") + endif() + + add_custom_target(${Coverage_NAME} + COMMAND ${GCOVR_COVERALLS_EXEC_TESTS_CMD} + COMMAND ${GCOVR_COVERALLS_CMD} + + BYPRODUCTS ${Coverage_NAME}.json + WORKING_DIRECTORY ${PROJECT_BINARY_DIR} + DEPENDS ${Coverage_DEPENDENCIES} + VERBATIM # Protect arguments to commands + COMMENT "Running gcovr to produce Coveralls code coverage report." + ) + + # Show info where to find the report + add_custom_command(TARGET ${Coverage_NAME} POST_BUILD + COMMAND ; + COMMENT "Coveralls code coverage report saved in ${Coverage_NAME}.json." + ) +endfunction() # setup_target_for_coverage_gcovr_coveralls + # Defines a target for running and collection code coverage information # Builds dependencies, runs the given executable and outputs reports. # NOTE! The executable should always have a ZERO as exit code otherwise diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index cbdf067..a26ff00 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -38,11 +38,16 @@ if(BUILD_TESTS) include(../cmake/modules/CodeCoverage.cmake) append_coverage_compiler_flags() - setup_target_for_coverage_lcov( - NAME coverage + setup_target_for_coverage_gcovr_coveralls( + NAME coveralls EXECUTABLE iggy_cpp_test - DEPENDENCIES iggy - EXCLUDE /usr/include/c++/* ${CMAKE_CURRENT_SOURCE_DIR}/../tests/* - ${CMAKE_CURRENT_SOURCE_DIR}/../build/*) + EXCLUDE "build/vcpkg_installed/*" "tests/*" + DEPENDENCIES iggy) + + setup_target_for_coverage_gcovr_html( + NAME coverage-html + EXECUTABLE iggy_cpp_test + EXCLUDE "build/vcpkg_installed/*" "tests/*" + DEPENDENCIES iggy) endif() endif()