Skip to content

Commit ac64e57

Browse files
committed
fixed coverage
1 parent a0e3c29 commit ac64e57

File tree

6 files changed

+31
-7
lines changed

6 files changed

+31
-7
lines changed

.github/workflows/check_unit_tests.yml

+5-2
Original file line numberDiff line numberDiff line change
@@ -50,12 +50,15 @@ jobs:
5050
run: |
5151
bash ./buildscripts/ci/linux/setup.sh
5252
- name: Build
53+
env:
54+
GITHUB_EVENT_NAME: ${{ github.event_name }}
55+
CODE_COVERAGE: ${{ inputs.code_coverage }}
5356
run: |
5457
mkdir -p build.artifacts/env
5558
5659
ENABLE_CODE_COVERAGE='false'
5760
58-
if [ [ "${{ github.event_name }}" == "schedule" ] || [ ${{ inputs.code_coverage }} == 'true' ] ]; then
61+
if [[ "$GITHUB_EVENT_NAME" == "schedule" || "$CODE_COVERAGE" == "true" ]]; then
5962
ENABLE_CODE_COVERAGE='true'
6063
else
6164
ENABLE_CODE_COVERAGE='false'
@@ -73,7 +76,7 @@ jobs:
7376
- name: Code coverage
7477
if: github.event_name == 'schedule' || inputs.code_coverage == 'true'
7578
run: |
76-
lcov --capture --directory build.debug/ --output-file coverage.info
79+
lcov --capture --directory "$(pwd)/build.debug/" --output-file coverage.info
7780
lcov --remove coverage.info '/usr/*' '*/tests/*' '*/thirdparty/*' '*/moc_*' '*framework/Headers/*' '*/hb-*' '*/Qt/*' --output-file filtered_coverage.info
7881
7982
python3 buildscripts/ci/linux/tools/lcov_badger.py filtered_coverage.info coverage_badge.svg

README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
Music notation and composition software
44

55
[![License: GPL v3](https://img.shields.io/badge/License-GPL%20v3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0.en.html)
6-
[![Coverage](https://s3.us-east-1.amazonaws.com/extensions.musescore.org/test/code_coverage/coverage_badge.svg?)](https://github.com/Eism/MuseScore/actions/workflows/check_unit_tests.yml)
6+
[![Coverage](https://s3.us-east-1.amazonaws.com/extensions.musescore.org/test/code_coverage/coverage_badge.svg?)](https://github.com/musescore/MuseScore/actions/workflows/check_unit_tests.yml)
77

88
MuseScore is an open source and free music notation software. For support, contribution, and bug reports visit MuseScore.org. Fork and make pull requests!
99

buildscripts/cmake/DeclareModuleSetup.cmake

+4-3
Original file line numberDiff line numberDiff line change
@@ -182,8 +182,9 @@ macro(setup_module)
182182
)
183183

184184
if (MUSE_ENABLE_UNIT_TESTS_CODE_COVERAGE AND MODULE_USE_COVERAGE)
185-
target_compile_options(${MODULE} PRIVATE --coverage)
186-
target_link_options(${MODULE} PRIVATE --coverage)
185+
set(COVERAGE_FLAGS -fprofile-arcs -ftest-coverage --coverage)
186+
target_compile_options(${MODULE} PRIVATE ${COVERAGE_FLAGS})
187+
target_link_options(${MODULE} PRIVATE -lgcov --coverage)
187188
endif()
188189

189190
if (NOT ${MODULE} MATCHES muse_global AND MODULE_LINK_GLOBAL)
@@ -192,6 +193,6 @@ macro(setup_module)
192193

193194
set(MODULE_LINK ${CMAKE_DL_LIBS} ${QT_LIBRARIES} ${MODULE_LINK})
194195

195-
target_link_libraries(${MODULE} PRIVATE ${MODULE_LINK} )
196+
target_link_libraries(${MODULE} PRIVATE ${MODULE_LINK} ${COVERAGE_FLAGS})
196197

197198
endmacro()

src/app/CMakeLists.txt

+8-1
Original file line numberDiff line numberDiff line change
@@ -271,6 +271,13 @@ add_executable(MuseScoreStudio
271271

272272
set_target_properties(MuseScoreStudio PROPERTIES OUTPUT_NAME ${EXECUTABLE_NAME})
273273

274+
if (MUSE_ENABLE_UNIT_TESTS_CODE_COVERAGE)
275+
set(COVERAGE_FLAGS -fprofile-arcs -ftest-coverage --coverage)
276+
set(COVERAGE_LINK_FLAGS -lgcov --coverage)
277+
target_compile_options(MuseScoreStudio PRIVATE ${COVERAGE_FLAGS})
278+
target_link_options(MuseScoreStudio PRIVATE ${COVERAGE_LINK_FLAGS})
279+
endif()
280+
274281
if (OS_IS_MAC)
275282
set_target_properties(MuseScoreStudio PROPERTIES
276283
MACOSX_BUNDLE_INFO_PLIST ${PROJECT_SOURCE_DIR}/buildscripts/packaging/macOS/Info.plist.in
@@ -299,7 +306,7 @@ endif(OS_IS_WASM)
299306
###########################################
300307

301308
if (NOT CC_IS_EMSCRIPTEN)
302-
target_link_libraries(MuseScoreStudio ${LINK_LIB} )
309+
target_link_libraries(MuseScoreStudio ${LINK_LIB} ${COVERAGE_LINK_FLAGS})
303310
else()
304311
target_link_libraries(MuseScoreStudio PRIVATE ${QT_LIBRARIES})
305312

src/framework/testing/gtest.cmake

+6
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,11 @@ target_compile_definitions(${MODULE_TEST} PRIVATE
5555
${MODULE_TEST_DEF}
5656
${MODULE_TEST}_DATA_ROOT="${MODULE_TEST_DATA_ROOT}"
5757
)
58+
if (MUSE_ENABLE_UNIT_TESTS_CODE_COVERAGE)
59+
set(COVERAGE_FLAGS -fprofile-arcs -ftest-coverage --coverage)
60+
target_compile_options(${MODULE_TEST} PRIVATE ${COVERAGE_FLAGS})
61+
target_link_options(${MODULE_TEST} PRIVATE -lgcov --coverage)
62+
endif()
5863

5964
find_package(Qt6Core REQUIRED)
6065
find_package(Qt6Gui REQUIRED)
@@ -65,6 +70,7 @@ target_link_libraries(${MODULE_TEST}
6570
gmock
6671
muse_global
6772
${MODULE_TEST_LINK}
73+
${COVERAGE_FLAGS}
6874
)
6975

7076
add_test(NAME ${MODULE_TEST} COMMAND ${MODULE_TEST})

src/framework/testing/qtest.cmake

+7
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,12 @@ target_compile_definitions(${MODULE_TEST} PRIVATE
5454
${MODULE_TEST}_DATA_ROOT="${MODULE_TEST_DATA_ROOT}"
5555
)
5656

57+
if (MUSE_ENABLE_UNIT_TESTS_CODE_COVERAGE)
58+
set(COVERAGE_FLAGS -fprofile-arcs -ftest-coverage --coverage)
59+
target_compile_options(${MODULE} PRIVATE ${COVERAGE_FLAGS})
60+
target_link_options(${MODULE} PRIVATE -lgcov --coverage)
61+
endif()
62+
5763
find_package(Qt6Test REQUIRED)
5864
find_package(Qt6Core REQUIRED)
5965
find_package(Qt6Gui REQUIRED)
@@ -66,6 +72,7 @@ target_link_libraries(${MODULE_TEST}
6672
Qt6::Test
6773
muse_global
6874
${MODULE_TEST_LINK}
75+
${COVERAGE_FLAGS}
6976
)
7077

7178
add_test(NAME ${MODULE_TEST} COMMAND ${MODULE_TEST})

0 commit comments

Comments
 (0)