Integrate Python-based tests and benchmark into Travis

* Unfortunately, due to the SWIG dependency, we need sudo to install on
  Travis (conflicts when adding with debian-sid source prevent using addons)
  which means we cannot use the container-based infrastructure anymore.
* Building the Python bindings requires g++5 (at least with -Werr set).
* When building the Python bindings on Travis, the numpy includes are not found
  by cmake, so they have to be added separately by running a Python process with
  `numpy.get_include()`
* The build script now (somewhat clumsily) depends on the RUN_PYTEST environment
  variable. If it is set to anything other than "", it will make the tests and
  run tests and benchmarks
This commit is contained in:
Peter Dürr
2017-08-12 15:47:05 +02:00
committed by Lorenz Meier
parent 15c8c24418
commit 305a95aef9
3 changed files with 41 additions and 16 deletions
+20 -10
View File
@@ -1,23 +1,33 @@
sudo: required
language: cpp
python:
- '3.5'
matrix:
fast_finish: true
include:
- os: linux
dist: trusty
compiler: gcc
env:
- MATRIX_EVAL=""
- os: linux
dist: trusty
compiler: clang
env: CC=clang CXX=clang++
env:
- CC=clang CXX=clang++
- MATRIX_EVAL=""
- os: linux
dist: trusty
compiler: gcc
env:
- RUN_PYTEST=1
- MATRIX_EVAL="CC=gcc-5 && CXX=g++-5"
addons:
apt:
packages:
- clang
- cmake
- g++
- gcc
- libeigen3-dev
before_install:
- sudo add-apt-repository ppa:ubuntu-toolchain-r/test -y
- sudo apt-get -qq update
- sudo apt-get install -y clang cmake g++ gcc libeigen3-dev swig3.0 python-dev gcc-5 g++-5
- eval "${MATRIX_EVAL}"
- if [ -n "${RUN_PYTEST}" ]; then pip3 install -r ./EKF/tests/pytest/requirements.txt; fi
script: ./build.sh
+4
View File
@@ -123,11 +123,15 @@ if(PythonTests)
set_source_files_properties(../swig/ecl.i PROPERTIES CPLUSPLUS ON)
set(swigged_sources ekf.h)
# Find numpy include
execute_process(COMMAND ${PYTHON_EXECUTABLE} -c "import numpy; print(numpy.get_include())" OUTPUT_VARIABLE NUMPY_INCLUDE_DIRS ERROR_QUIET)
include_directories(
..
${MATRIX_DIR}
${EIGEN3_INCLUDE_DIR}
${PYTHON_INCLUDE_DIRS}
${NUMPY_INCLUDE_DIRS}
)
set(SWIG_MODULE_ecl_EXTRA_DEPS ${swigged_sources})
+17 -6
View File
@@ -35,9 +35,20 @@
# Exit on any error.
set -e
# Build EKF shared library.
mkdir Build -p
cd Build
cmake ../EKF
make
cd ..
if [ -z ${RUN_PYTEST} ];
then
# Build EKF shared library.
mkdir Build -p
cd Build
cmake ../EKF
make
cd ..
else
# Build EKF shared library.
mkdir Build -p
cd Build
cmake -DPythonTests=1 ../EKF
make pytest
make pytest-benchmark
cd ..
fi