diff --git a/.travis.yml b/.travis.yml index 6589bcd1..069a68a0 100644 --- a/.travis.yml +++ b/.travis.yml @@ -62,6 +62,8 @@ matrix: - os: osx osx_image: xcode10 compiler: clang + addons: { homebrew: { packages: ["lcov"] } } + after_success: ./scripts/upload_coverage.sh before_install: - eval "${MATRIX_EVAL}" - if [ "$TRAVIS_OS_NAME" == 'osx' ]; then diff --git a/CMakeLists.txt b/CMakeLists.txt index c164df12..8b151a4d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -59,6 +59,7 @@ if(E2D_BUILD_WITH_COVERAGE AND (CMAKE_CXX_COMPILER_ID MATCHES "Clang")) set(E2D_COVERAGE_FLAGS "--coverage") set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} ${E2D_COVERAGE_FLAGS}") set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} ${E2D_COVERAGE_FLAGS}") + set(CMAKE_LINKER_FLAGS_DEBUG "${CMAKE_LINKER_FLAGS_DEBUG} ${E2D_COVERAGE_FLAGS}") endif() # diff --git a/README.md b/README.md index 426f7bb0..3e3085d8 100644 --- a/README.md +++ b/README.md @@ -4,18 +4,21 @@ [![travis][badge.travis]][travis] [![appveyor][badge.appveyor]][appveyor] +[![codecov][badge.codecov]][codecov] [![language][badge.language]][language] [![license][badge.license]][license] [![paypal][badge.paypal]][paypal] [badge.travis]: https://img.shields.io/travis/enduro2d/enduro2d/master.svg?logo=travis&style=for-the-badge [badge.appveyor]: https://img.shields.io/appveyor/ci/BlackMATov/enduro2d/master.svg?logo=appveyor&style=for-the-badge +[badge.codecov]: https://img.shields.io/codecov/c/github/enduro2d/enduro2d/master.svg?logo=codecov [badge.language]: https://img.shields.io/badge/language-C%2B%2B14-red.svg?style=for-the-badge [badge.license]: https://img.shields.io/badge/license-MIT-blue.svg?style=for-the-badge [badge.paypal]: https://img.shields.io/badge/donate-PayPal-orange.svg?logo=paypal&colorA=00457C&style=for-the-badge [travis]: https://travis-ci.org/enduro2d/enduro2d [appveyor]: https://ci.appveyor.com/project/BlackMATov/enduro2d +[codecov]: https://codecov.io/gh/enduro2d/enduro2d [language]: https://en.wikipedia.org/wiki/C%2B%2B14 [license]: https://en.wikipedia.org/wiki/MIT_License [paypal]: https://www.paypal.me/matov diff --git a/scripts/gen_lcov_coverage.sh b/scripts/upload_coverage.sh similarity index 54% rename from scripts/gen_lcov_coverage.sh rename to scripts/upload_coverage.sh index 8a466cdc..cb5e7fb8 100755 --- a/scripts/gen_lcov_coverage.sh +++ b/scripts/upload_coverage.sh @@ -6,11 +6,12 @@ mkdir -p $BUILD_DIR/coverage cd $BUILD_DIR/coverage cmake -DCMAKE_BUILD_TYPE=Debug -DE2D_BUILD_WITH_COVERAGE=ON ../.. cmake --build . -- -j8 + +lcov -d . -z ctest --verbose lcov -d . -c -o "coverage.info" -lcov -r "coverage.info" "*/Xcode.app/*" "*/untests/*" "*/3rdparty/*" "*/modules/*" -o "coverage-filtered.info" -lcov -d . -z +lcov -r "coverage.info" "*/usr/*" "*/Xcode.app/*" "*/untests/*" "*/3rdparty/*" "*/modules/*" -o "coverage.info" +lcov -l "coverage.info" -genhtml -o "html" "coverage-filtered.info" -open html/index.html +bash <(curl -s https://codecov.io/bash) || echo "Codecov did not collect coverage reports"