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
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

12
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

Loading…
Cancel
Save