Browse Source

package/ci: coverage for both C++ and Python.

pull/1/head
Vladimír Vondruš 7 years ago
parent
commit
f99f227623
  1. 9
      package/ci/travis-desktop.sh
  2. 12
      package/ci/travis.yml

9
package/ci/travis-desktop.sh

@ -44,8 +44,9 @@ cd ../..
# Build the thing # Build the thing
mkdir build && cd build mkdir build && cd build
cmake .. \ cmake .. \
-DCMAKE_CXX_FLAGS="--coverage" \
-DCMAKE_INSTALL_PREFIX=$HOME/deps \ -DCMAKE_INSTALL_PREFIX=$HOME/deps \
-DCMAKE_BUILD_TYPE=Release \ -DCMAKE_BUILD_TYPE=Debug \
-DCMAKE_PREFIX_PATH=$HOME/pybind11 \ -DCMAKE_PREFIX_PATH=$HOME/pybind11 \
-DPYBIND11_PYTHON_VERSION=3.6 \ -DPYBIND11_PYTHON_VERSION=3.6 \
-DWITH_PYTHON=ON \ -DWITH_PYTHON=ON \
@ -56,9 +57,9 @@ ninja
cd src/python cd src/python
python3 setup.py install --root="$TRAVIS_BUILD_DIR/install" --prefix=/usr python3 setup.py install --root="$TRAVIS_BUILD_DIR/install" --prefix=/usr
# Run tests # Run tests & gather coverage
cd ../../../src/python/corrade cd ../../../src/python/corrade
coverage run -m unittest -v coverage run -m unittest -v && cp .coverage ../.coverage.corrade
cd ../magnum cd ../magnum
coverage run -m unittest -v coverage run -m unittest -v && cp .coverage ../.coverage.magnum

12
package/ci/travis.yml

@ -4,6 +4,7 @@ addons:
- g++-4.8 - g++-4.8
- libgl1-mesa-dev - libgl1-mesa-dev
- ninja-build - ninja-build
- lcov
matrix: matrix:
include: include:
@ -14,6 +15,7 @@ matrix:
compiler: gcc compiler: gcc
env: env:
- JOBID=linux-gl - JOBID=linux-gl
- LCOV_EXTRA_OPTS="--gcov-tool /usr/bin/gcov-4.8"
- language: cpp - language: cpp
os: osx os: osx
compiler: clang 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" == "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 - 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: script:
- if [ "$TRAVIS_OS_NAME" == "linux" ] || [ "$TRAVIS_OS_NAME" == "osx" ]; then ./package/ci/travis-desktop.sh; fi - 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 # Travis somehow is not able to gather all output, try to force it using this
- sync - sync
after_success: 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

Loading…
Cancel
Save