123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118 |
- #!/bin/bash
- set -e
- # Add MKL shared libraries to the path
- # This unfortunately does not work in travis OSX if I put the export command
- # in the install.sh (it works on linux though)
- export MKL_SHARED_LIB_DIR=`ls -rd ${CONDA_ROOT}/pkgs/*/ | grep mkl-2 | head -n 1`lib:`ls -rd ${CONDA_ROOT}/pkgs/*/ | grep intel-openmp- | head -n 1`lib
- echo "MKL shared library path: ${MKL_SHARED_LIB_DIR}"
- if [[ "${TRAVIS_OS_NAME}" == "linux" ]]; then
- export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${MKL_SHARED_LIB_DIR}
- else if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then
- export DYLD_LIBRARY_PATH=${DYLD_LIBRARY_PATH}:${MKL_SHARED_LIB_DIR}
- fi
- fi
- # Test C interface
- # ---------------------------------------------------
- # Compile and test OSQP
- echo "Change directory to Travis build ${TRAVIS_BUILD_DIR}"
- echo "Testing OSQP with standard configuration"
- cd ${TRAVIS_BUILD_DIR}
- mkdir build
- cd build
- cmake -G "Unix Makefiles" -DCOVERAGE=ON -DUNITTESTS=ON ..
- make
- ${TRAVIS_BUILD_DIR}/build/out/osqp_tester
- # Pefrorm code coverage (only in Linux case)
- if [[ $TRAVIS_OS_NAME == "linux" ]]; then
- cd ${TRAVIS_BUILD_DIR}/build
- lcov --directory . --capture -o coverage.info # capture coverage info
- lcov --remove coverage.info "${TRAVIS_BUILD_DIR}/tests/*" \
- "${TRAVIS_BUILD_DIR}/lin_sys/direct/qdldl/amd/*" \
- "${TRAVIS_BUILD_DIR}/lin_sys/direct/qdldl/qdldl_sources/*" \
- "/usr/include/x86_64-linux-gnu/**/*" \
- -o coverage.info # filter out tests and unnecessary files
- lcov --list coverage.info # debug before upload
- coveralls-lcov coverage.info # uploads to coveralls
- fi
- if [[ $TRAVIS_OS_NAME == "linux" ]]; then
- echo "Testing OSQP with valgrind (disabling MKL pardiso for memory allocation issues)"
- cd ${TRAVIS_BUILD_DIR}
- rm -rf build
- mkdir build
- cd build
- #disable PARDISO since intel instructions in MKL
- #cause valgrind 3.11 to fail
- cmake -G "Unix Makefiles" -DENABLE_MKL_PARDISO=OFF -DUNITTESTS=ON ..
- make
- valgrind --suppressions=${TRAVIS_BUILD_DIR}/.valgrind-suppress.supp --leak-check=full --gen-suppressions=all --track-origins=yes --error-exitcode=42 ${TRAVIS_BUILD_DIR}/build/out/osqp_tester
- fi
- echo "Testing OSQP with floats"
- cd ${TRAVIS_BUILD_DIR}
- rm -rf build
- mkdir build
- cd build
- cmake -G "Unix Makefiles" -DDFLOAT=ON -DUNITTESTS=ON ..
- make
- ${TRAVIS_BUILD_DIR}/build/out/osqp_tester
- echo "Testing OSQP without long integers"
- cd ${TRAVIS_BUILD_DIR}
- rm -rf build
- mkdir build
- cd build
- cmake -G "Unix Makefiles" -DDLONG=OFF -DUNITTESTS=ON ..
- make
- ${TRAVIS_BUILD_DIR}/build/out/osqp_tester
- echo "Building OSQP with embedded=1"
- cd ${TRAVIS_BUILD_DIR}
- rm -rf build
- mkdir build
- cd build
- cmake -G "Unix Makefiles" -DEMBEDDED=1 ..
- make
- echo "Building OSQP with embedded=2"
- cd ${TRAVIS_BUILD_DIR}
- rm -rf build
- mkdir build
- cd build
- cmake -G "Unix Makefiles" -DEMBEDDED=2 ..
- make
- echo "Testing OSQP without printing"
- cd ${TRAVIS_BUILD_DIR}
- rm -rf build
- mkdir build
- cd build
- cmake -G "Unix Makefiles" -DPRINTING=OFF -DUNITTESTS=ON ..
- make
- ${TRAVIS_BUILD_DIR}/build/out/osqp_tester
- # Test custom memory management
- # ---------------------------------------------------
- echo "Test OSQP custom allocators"
- cd ${TRAVIS_BUILD_DIR}
- rm -rf build
- mkdir build
- cd build
- cmake -DUNITTESTS=ON \
- -DOSQP_CUSTOM_MEMORY=${TRAVIS_BUILD_DIR}/tests/custom_memory/custom_memory.h \
- ..
- make osqp_tester_custom_memory
- ${TRAVIS_BUILD_DIR}/build/out/osqp_tester_custom_memory
- cd ${TRAVIS_BUILD_DIR}
- set +e
|