From 8422758d4d2e20d1574db06bf1dfd5e98540ca79 Mon Sep 17 00:00:00 2001 From: tequ Date: Mon, 18 May 2026 11:21:47 +0900 Subject: [PATCH] chore: Improve codecov coverage reporting (#4977) (#745) --- .codecov.yml | 31 +++++++++++++++++++++++++++++++ cmake/CodeCoverage.cmake | 21 +++++++++++++++++---- 2 files changed, 48 insertions(+), 4 deletions(-) diff --git a/.codecov.yml b/.codecov.yml index 191144aae..6df378619 100644 --- a/.codecov.yml +++ b/.codecov.yml @@ -1,6 +1,37 @@ +codecov: + require_ci_to_pass: true + +comment: + behavior: default + layout: reach,diff,flags,tree,reach + show_carryforward_flags: false + coverage: + range: "60..80" + precision: 1 + round: nearest status: project: default: target: 60% threshold: 2% + patch: + default: + target: auto + threshold: 2% + changes: false + +github_checks: + annotations: true + +parsers: + cobertura: + partials_as_hits: true + handle_missing_conditions : true + +slack_app: false + +ignore: + - "src/test/" + - "include/xrpl/beast/test/" + - "include/xrpl/beast/unit_test/" diff --git a/cmake/CodeCoverage.cmake b/cmake/CodeCoverage.cmake index d6323c5cc..31a2f0f4c 100644 --- a/cmake/CodeCoverage.cmake +++ b/cmake/CodeCoverage.cmake @@ -95,6 +95,9 @@ # - replace both functions setup_target_for_coverage_gcovr_* with a single setup_target_for_coverage_gcovr # - add support for all gcovr output formats # +# 2024-04-03, Bronek Kozicki +# - add support for output formats: jacoco, clover, lcov +# # USAGE: # # 1. Copy this file into your cmake modules path. @@ -256,10 +259,10 @@ endif() # BASE_DIRECTORY "../" # Base directory for report # # (defaults to PROJECT_SOURCE_DIR) # FORMAT "cobertura" # Output format, one of: -# # xml cobertura sonarqube json-summary -# # json-details coveralls csv txt -# # html-single html-nested html-details -# # (xml is an alias to cobertura; +# # xml cobertura sonarqube jacoco clover +# # json-summary json-details coveralls csv +# # txt html-single html-nested html-details +# # lcov (xml is an alias to cobertura; # # if no format is set, defaults to xml) # EXCLUDE "src/dir1/*" "src/dir2/*" # Patterns to exclude (can be relative # # to BASE_DIRECTORY, with CMake 3.4+) @@ -308,6 +311,8 @@ function(setup_target_for_coverage_gcovr) set(GCOVR_OUTPUT_FILE ${Coverage_NAME}.txt) elseif(Coverage_FORMAT STREQUAL "csv") set(GCOVR_OUTPUT_FILE ${Coverage_NAME}.csv) + elseif(Coverage_FORMAT STREQUAL "lcov") + set(GCOVR_OUTPUT_FILE ${Coverage_NAME}.lcov) else() set(GCOVR_OUTPUT_FILE ${Coverage_NAME}.xml) endif() @@ -320,6 +325,14 @@ function(setup_target_for_coverage_gcovr) set(Coverage_FORMAT cobertura) # overwrite xml elseif(Coverage_FORMAT STREQUAL "sonarqube") list(APPEND GCOVR_ADDITIONAL_ARGS --sonarqube "${GCOVR_OUTPUT_FILE}" ) + elseif(Coverage_FORMAT STREQUAL "jacoco") + list(APPEND GCOVR_ADDITIONAL_ARGS --jacoco "${GCOVR_OUTPUT_FILE}" ) + list(APPEND GCOVR_ADDITIONAL_ARGS --jacoco-pretty ) + elseif(Coverage_FORMAT STREQUAL "clover") + list(APPEND GCOVR_ADDITIONAL_ARGS --clover "${GCOVR_OUTPUT_FILE}" ) + list(APPEND GCOVR_ADDITIONAL_ARGS --clover-pretty ) + elseif(Coverage_FORMAT STREQUAL "lcov") + list(APPEND GCOVR_ADDITIONAL_ARGS --lcov "${GCOVR_OUTPUT_FILE}" ) elseif(Coverage_FORMAT STREQUAL "json-summary") list(APPEND GCOVR_ADDITIONAL_ARGS --json-summary "${GCOVR_OUTPUT_FILE}" ) list(APPEND GCOVR_ADDITIONAL_ARGS --json-summary-pretty)