From f99f227623ce037d601586d8d3a1290d799d930e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20Vondru=C5=A1?= Date: Tue, 21 May 2019 21:16:41 +0200 Subject: [PATCH] package/ci: coverage for both C++ and Python. --- package/ci/travis-desktop.sh | 9 +++++---- package/ci/travis.yml | 12 +++++++++++- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/package/ci/travis-desktop.sh b/package/ci/travis-desktop.sh index ffe26ed..812aa68 100755 --- a/package/ci/travis-desktop.sh +++ b/package/ci/travis-desktop.sh @@ -44,8 +44,9 @@ cd ../.. # Build the thing mkdir build && cd build cmake .. \ + -DCMAKE_CXX_FLAGS="--coverage" \ -DCMAKE_INSTALL_PREFIX=$HOME/deps \ - -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_BUILD_TYPE=Debug \ -DCMAKE_PREFIX_PATH=$HOME/pybind11 \ -DPYBIND11_PYTHON_VERSION=3.6 \ -DWITH_PYTHON=ON \ @@ -56,9 +57,9 @@ ninja cd src/python python3 setup.py install --root="$TRAVIS_BUILD_DIR/install" --prefix=/usr -# Run tests +# Run tests & gather coverage cd ../../../src/python/corrade -coverage run -m unittest -v +coverage run -m unittest -v && cp .coverage ../.coverage.corrade cd ../magnum -coverage run -m unittest -v +coverage run -m unittest -v && cp .coverage ../.coverage.magnum diff --git a/package/ci/travis.yml b/package/ci/travis.yml index eead4d5..40639a5 100644 --- a/package/ci/travis.yml +++ b/package/ci/travis.yml @@ -4,6 +4,7 @@ addons: - g++-4.8 - libgl1-mesa-dev - ninja-build + - lcov matrix: include: @@ -14,6 +15,7 @@ matrix: compiler: gcc env: - JOBID=linux-gl + - LCOV_EXTRA_OPTS="--gcov-tool /usr/bin/gcov-4.8" - language: cpp os: osx compiler: clang @@ -51,10 +53,18 @@ install: - if [ "$TRAVIS_OS_NAME" == "linux" ] && [ ! -e "$HOME/pybind11/bin" ]; then $TRAVIS_BUILD_DIR/package/ci/setup-pybind11.sh; fi - if [ "$TRAVIS_OS_NAME" == "osx" ]; then HOMEBREW_NO_AUTO_UPDATE=1 brew install pybind11; fi +# lcov on macOS +- if [ "$TRAVIS_OS_NAME" == "osx" ]; then HOMEBREW_NO_AUTO_UPDATE=1 brew install lcov; fi + script: - if [ "$TRAVIS_OS_NAME" == "linux" ] || [ "$TRAVIS_OS_NAME" == "osx" ]; then ./package/ci/travis-desktop.sh; fi # Travis somehow is not able to gather all output, try to force it using this - sync after_success: -- if [ "$TRAVIS_OS_NAME" == "linux" ] || [ "$TRAVIS_OS_NAME" == "osx" ]; then cd src/python && codecov; fi +# Keep in sync with package/archlinux/PKGBUILD-coverage, please +- if [ "$TRAVIS_OS_NAME" == "linux" ] || [ "$TRAVIS_OS_NAME" == "osx" ]; then lcov $LCOV_EXTRA_OPTS --directory . --capture --output-file coverage.info > /dev/null; fi +- if [ "$TRAVIS_OS_NAME" == "linux" ] || [ "$TRAVIS_OS_NAME" == "osx" ]; then lcov $LCOV_EXTRA_OPTS --extract coverage.info "*/src/python/*" --output-file coverage.info; fi + +- if [ "$TRAVIS_OS_NAME" == "linux" ] || [ "$TRAVIS_OS_NAME" == "osx" ]; then cd src/python && coverage combine && codecov -X gcov; fi +#- if [ "$TRAVIS_OS_NAME" == "linux" ] || [ "$TRAVIS_OS_NAME" == "osx" ]; then bash <(curl -s https://codecov.io/bash) -f coverage.info; fi