From ba9e72a7dea1068c34681feacdc15021be559217 Mon Sep 17 00:00:00 2001 From: Randolph Settgast Date: Tue, 2 Jan 2024 13:38:32 -0800 Subject: [PATCH 1/6] add -fno-inline -fno-inline-small-functions -fno-default-inline flags to compiler flags when coverage is enabled --- cmake/SetupCodeMetrics.cmake | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/cmake/SetupCodeMetrics.cmake b/cmake/SetupCodeMetrics.cmake index 57044ead3..959aa93f7 100644 --- a/cmake/SetupCodeMetrics.cmake +++ b/cmake/SetupCodeMetrics.cmake @@ -20,9 +20,9 @@ if (ENABLE_COVERAGE) # Additional flags that might be useful: # " -fno-inline -fno-inline-small-functions -fno-default-inline" blt_append_custom_compiler_flag(FLAGS_VAR COVERAGE_FLAGS - DEFAULT " " - GNU "--coverage" - CLANG "--coverage") + DEFAULT "--coverage -fno-inline -fno-inline-small-functions -fno-default-inline" + GNU "" + CLANG "") SET( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${COVERAGE_FLAGS}" ) SET( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${COVERAGE_FLAGS}" ) From efefb3d15bce8554194474742390f96d421f4696 Mon Sep 17 00:00:00 2001 From: Randolph Settgast Date: Wed, 3 Jan 2024 12:44:47 -0800 Subject: [PATCH 2/6] hardcode exclusion of unitTests dir to check if that changes coverage report to avoid unitTest source reporting --- cmake/SetupCodeCoverageReports.cmake | 2 +- cmake/SetupCodeMetrics.cmake | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/cmake/SetupCodeCoverageReports.cmake b/cmake/SetupCodeCoverageReports.cmake index 28717a9a7..10664c981 100644 --- a/cmake/SetupCodeCoverageReports.cmake +++ b/cmake/SetupCodeCoverageReports.cmake @@ -94,7 +94,7 @@ function(blt_add_code_coverage_target) # Capture lcov counters and generating report COMMAND ${LCOV_EXECUTABLE} --no-external --gcov-tool ${GCOV_EXECUTABLE} ${_coverage_directories} --capture --output-file ${arg_NAME}.info - COMMAND ${LCOV_EXECUTABLE} --no-external --gcov-tool ${GCOV_EXECUTABLE} ${_coverage_directories} --remove ${arg_NAME}.info '/usr/include/*' --output-file ${arg_NAME}.info.cleaned + COMMAND ${LCOV_EXECUTABLE} --no-external --gcov-tool ${GCOV_EXECUTABLE} ${_coverage_directories} --remove ${arg_NAME}.info '/usr/include/*' --exclude '*/unitTests/*' --output-file ${arg_NAME}.info.cleaned COMMAND ${GENHTML_EXECUTABLE} -o ${arg_NAME} ${arg_NAME}.info.cleaned BYPRODUCTS ${arg_NAME}.info ${arg_NAME}.info.cleaned WORKING_DIRECTORY ${CMAKE_BINARY_DIR} diff --git a/cmake/SetupCodeMetrics.cmake b/cmake/SetupCodeMetrics.cmake index 959aa93f7..fb1279da1 100644 --- a/cmake/SetupCodeMetrics.cmake +++ b/cmake/SetupCodeMetrics.cmake @@ -20,8 +20,8 @@ if (ENABLE_COVERAGE) # Additional flags that might be useful: # " -fno-inline -fno-inline-small-functions -fno-default-inline" blt_append_custom_compiler_flag(FLAGS_VAR COVERAGE_FLAGS - DEFAULT "--coverage -fno-inline -fno-inline-small-functions -fno-default-inline" - GNU "" + DEFAULT "--coverage" + GNU "-fno-inline -fno-inline-small-functions -fno-default-inline" CLANG "") SET( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${COVERAGE_FLAGS}" ) From a20905d5eb4f0f080f383c7da14ef0e81094d9fe Mon Sep 17 00:00:00 2001 From: Randolph Settgast Date: Wed, 3 Jan 2024 12:53:36 -0800 Subject: [PATCH 3/6] hardcode removal of unitTests dir to check if that changes coverage report to avoid unitTest source reporting --- cmake/SetupCodeCoverageReports.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmake/SetupCodeCoverageReports.cmake b/cmake/SetupCodeCoverageReports.cmake index 10664c981..954304c45 100644 --- a/cmake/SetupCodeCoverageReports.cmake +++ b/cmake/SetupCodeCoverageReports.cmake @@ -94,7 +94,7 @@ function(blt_add_code_coverage_target) # Capture lcov counters and generating report COMMAND ${LCOV_EXECUTABLE} --no-external --gcov-tool ${GCOV_EXECUTABLE} ${_coverage_directories} --capture --output-file ${arg_NAME}.info - COMMAND ${LCOV_EXECUTABLE} --no-external --gcov-tool ${GCOV_EXECUTABLE} ${_coverage_directories} --remove ${arg_NAME}.info '/usr/include/*' --exclude '*/unitTests/*' --output-file ${arg_NAME}.info.cleaned + COMMAND ${LCOV_EXECUTABLE} --no-external --gcov-tool ${GCOV_EXECUTABLE} ${_coverage_directories} --remove ${arg_NAME}.info '/usr/include/*' '*/unitTests/*' --output-file ${arg_NAME}.info.cleaned COMMAND ${GENHTML_EXECUTABLE} -o ${arg_NAME} ${arg_NAME}.info.cleaned BYPRODUCTS ${arg_NAME}.info ${arg_NAME}.info.cleaned WORKING_DIRECTORY ${CMAKE_BINARY_DIR} From b574f805a624e6ade99ca45974faa38db6f5102a Mon Sep 17 00:00:00 2001 From: Randolph Settgast Date: Wed, 3 Jan 2024 18:02:48 -0800 Subject: [PATCH 4/6] undo exclusion of unitTest dir as it breaks things --- cmake/SetupCodeCoverageReports.cmake | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cmake/SetupCodeCoverageReports.cmake b/cmake/SetupCodeCoverageReports.cmake index 954304c45..ceefa00c8 100644 --- a/cmake/SetupCodeCoverageReports.cmake +++ b/cmake/SetupCodeCoverageReports.cmake @@ -94,8 +94,8 @@ function(blt_add_code_coverage_target) # Capture lcov counters and generating report COMMAND ${LCOV_EXECUTABLE} --no-external --gcov-tool ${GCOV_EXECUTABLE} ${_coverage_directories} --capture --output-file ${arg_NAME}.info - COMMAND ${LCOV_EXECUTABLE} --no-external --gcov-tool ${GCOV_EXECUTABLE} ${_coverage_directories} --remove ${arg_NAME}.info '/usr/include/*' '*/unitTests/*' --output-file ${arg_NAME}.info.cleaned - COMMAND ${GENHTML_EXECUTABLE} -o ${arg_NAME} ${arg_NAME}.info.cleaned + COMMAND ${LCOV_EXECUTABLE} --no-external --gcov-tool ${GCOV_EXECUTABLE} ${_coverage_directories} --remove ${arg_NAME}.info --output-file ${arg_NAME}.info.cleaned +# COMMAND ${GENHTML_EXECUTABLE} -o ${arg_NAME} ${arg_NAME}.info.cleaned BYPRODUCTS ${arg_NAME}.info ${arg_NAME}.info.cleaned WORKING_DIRECTORY ${CMAKE_BINARY_DIR} COMMENT "Resetting code coverage counters to zero.\nProcessing code coverage counters and generating report." From 01282fdd52825223245ff69ab5349d9d52801d10 Mon Sep 17 00:00:00 2001 From: Randolph Settgast Date: Wed, 3 Jan 2024 18:14:50 -0800 Subject: [PATCH 5/6] undo commenting out of genhtml step --- cmake/SetupCodeCoverageReports.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmake/SetupCodeCoverageReports.cmake b/cmake/SetupCodeCoverageReports.cmake index ceefa00c8..4f5159f5f 100644 --- a/cmake/SetupCodeCoverageReports.cmake +++ b/cmake/SetupCodeCoverageReports.cmake @@ -95,7 +95,7 @@ function(blt_add_code_coverage_target) # Capture lcov counters and generating report COMMAND ${LCOV_EXECUTABLE} --no-external --gcov-tool ${GCOV_EXECUTABLE} ${_coverage_directories} --capture --output-file ${arg_NAME}.info COMMAND ${LCOV_EXECUTABLE} --no-external --gcov-tool ${GCOV_EXECUTABLE} ${_coverage_directories} --remove ${arg_NAME}.info --output-file ${arg_NAME}.info.cleaned -# COMMAND ${GENHTML_EXECUTABLE} -o ${arg_NAME} ${arg_NAME}.info.cleaned + COMMAND ${GENHTML_EXECUTABLE} -o ${arg_NAME} ${arg_NAME}.info.cleaned BYPRODUCTS ${arg_NAME}.info ${arg_NAME}.info.cleaned WORKING_DIRECTORY ${CMAKE_BINARY_DIR} COMMENT "Resetting code coverage counters to zero.\nProcessing code coverage counters and generating report." From 18231ebd993a5d4f70e191bb4b131bb34a3662a9 Mon Sep 17 00:00:00 2001 From: Randolph Settgast Date: Wed, 3 Jan 2024 18:25:53 -0800 Subject: [PATCH 6/6] undo changes --- cmake/SetupCodeCoverageReports.cmake | 2 +- cmake/SetupCodeMetrics.cmake | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/cmake/SetupCodeCoverageReports.cmake b/cmake/SetupCodeCoverageReports.cmake index 4f5159f5f..28717a9a7 100644 --- a/cmake/SetupCodeCoverageReports.cmake +++ b/cmake/SetupCodeCoverageReports.cmake @@ -94,7 +94,7 @@ function(blt_add_code_coverage_target) # Capture lcov counters and generating report COMMAND ${LCOV_EXECUTABLE} --no-external --gcov-tool ${GCOV_EXECUTABLE} ${_coverage_directories} --capture --output-file ${arg_NAME}.info - COMMAND ${LCOV_EXECUTABLE} --no-external --gcov-tool ${GCOV_EXECUTABLE} ${_coverage_directories} --remove ${arg_NAME}.info --output-file ${arg_NAME}.info.cleaned + COMMAND ${LCOV_EXECUTABLE} --no-external --gcov-tool ${GCOV_EXECUTABLE} ${_coverage_directories} --remove ${arg_NAME}.info '/usr/include/*' --output-file ${arg_NAME}.info.cleaned COMMAND ${GENHTML_EXECUTABLE} -o ${arg_NAME} ${arg_NAME}.info.cleaned BYPRODUCTS ${arg_NAME}.info ${arg_NAME}.info.cleaned WORKING_DIRECTORY ${CMAKE_BINARY_DIR} diff --git a/cmake/SetupCodeMetrics.cmake b/cmake/SetupCodeMetrics.cmake index fb1279da1..16cc87832 100644 --- a/cmake/SetupCodeMetrics.cmake +++ b/cmake/SetupCodeMetrics.cmake @@ -20,9 +20,9 @@ if (ENABLE_COVERAGE) # Additional flags that might be useful: # " -fno-inline -fno-inline-small-functions -fno-default-inline" blt_append_custom_compiler_flag(FLAGS_VAR COVERAGE_FLAGS - DEFAULT "--coverage" - GNU "-fno-inline -fno-inline-small-functions -fno-default-inline" - CLANG "") + DEFAULT " " + GNU "--coverage -fno-inline -fno-inline-small-functions -fno-default-inline" + CLANG "--coverage") SET( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${COVERAGE_FLAGS}" ) SET( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${COVERAGE_FLAGS}" )