script.sh 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. #!/bin/bash
  2. set -e
  3. # Add MKL shared libraries to the path
  4. # This unfortunately does not work in travis OSX if I put the export command
  5. # in the install.sh (it works on linux though)
  6. 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
  7. echo "MKL shared library path: ${MKL_SHARED_LIB_DIR}"
  8. if [[ "${TRAVIS_OS_NAME}" == "linux" ]]; then
  9. export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${MKL_SHARED_LIB_DIR}
  10. else if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then
  11. export DYLD_LIBRARY_PATH=${DYLD_LIBRARY_PATH}:${MKL_SHARED_LIB_DIR}
  12. fi
  13. fi
  14. # Test C interface
  15. # ---------------------------------------------------
  16. # Compile and test OSQP
  17. echo "Change directory to Travis build ${TRAVIS_BUILD_DIR}"
  18. echo "Testing OSQP with standard configuration"
  19. cd ${TRAVIS_BUILD_DIR}
  20. mkdir build
  21. cd build
  22. cmake -G "Unix Makefiles" -DCOVERAGE=ON -DUNITTESTS=ON ..
  23. make
  24. ${TRAVIS_BUILD_DIR}/build/out/osqp_tester
  25. # Pefrorm code coverage (only in Linux case)
  26. if [[ $TRAVIS_OS_NAME == "linux" ]]; then
  27. cd ${TRAVIS_BUILD_DIR}/build
  28. lcov --directory . --capture -o coverage.info # capture coverage info
  29. lcov --remove coverage.info "${TRAVIS_BUILD_DIR}/tests/*" \
  30. "${TRAVIS_BUILD_DIR}/lin_sys/direct/qdldl/amd/*" \
  31. "${TRAVIS_BUILD_DIR}/lin_sys/direct/qdldl/qdldl_sources/*" \
  32. "/usr/include/x86_64-linux-gnu/**/*" \
  33. -o coverage.info # filter out tests and unnecessary files
  34. lcov --list coverage.info # debug before upload
  35. coveralls-lcov coverage.info # uploads to coveralls
  36. fi
  37. if [[ $TRAVIS_OS_NAME == "linux" ]]; then
  38. echo "Testing OSQP with valgrind (disabling MKL pardiso for memory allocation issues)"
  39. cd ${TRAVIS_BUILD_DIR}
  40. rm -rf build
  41. mkdir build
  42. cd build
  43. #disable PARDISO since intel instructions in MKL
  44. #cause valgrind 3.11 to fail
  45. cmake -G "Unix Makefiles" -DENABLE_MKL_PARDISO=OFF -DUNITTESTS=ON ..
  46. make
  47. 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
  48. fi
  49. echo "Testing OSQP with floats"
  50. cd ${TRAVIS_BUILD_DIR}
  51. rm -rf build
  52. mkdir build
  53. cd build
  54. cmake -G "Unix Makefiles" -DDFLOAT=ON -DUNITTESTS=ON ..
  55. make
  56. ${TRAVIS_BUILD_DIR}/build/out/osqp_tester
  57. echo "Testing OSQP without long integers"
  58. cd ${TRAVIS_BUILD_DIR}
  59. rm -rf build
  60. mkdir build
  61. cd build
  62. cmake -G "Unix Makefiles" -DDLONG=OFF -DUNITTESTS=ON ..
  63. make
  64. ${TRAVIS_BUILD_DIR}/build/out/osqp_tester
  65. echo "Building OSQP with embedded=1"
  66. cd ${TRAVIS_BUILD_DIR}
  67. rm -rf build
  68. mkdir build
  69. cd build
  70. cmake -G "Unix Makefiles" -DEMBEDDED=1 ..
  71. make
  72. echo "Building OSQP with embedded=2"
  73. cd ${TRAVIS_BUILD_DIR}
  74. rm -rf build
  75. mkdir build
  76. cd build
  77. cmake -G "Unix Makefiles" -DEMBEDDED=2 ..
  78. make
  79. echo "Testing OSQP without printing"
  80. cd ${TRAVIS_BUILD_DIR}
  81. rm -rf build
  82. mkdir build
  83. cd build
  84. cmake -G "Unix Makefiles" -DPRINTING=OFF -DUNITTESTS=ON ..
  85. make
  86. ${TRAVIS_BUILD_DIR}/build/out/osqp_tester
  87. # Test custom memory management
  88. # ---------------------------------------------------
  89. echo "Test OSQP custom allocators"
  90. cd ${TRAVIS_BUILD_DIR}
  91. rm -rf build
  92. mkdir build
  93. cd build
  94. cmake -DUNITTESTS=ON \
  95. -DOSQP_CUSTOM_MEMORY=${TRAVIS_BUILD_DIR}/tests/custom_memory/custom_memory.h \
  96. ..
  97. make osqp_tester_custom_memory
  98. ${TRAVIS_BUILD_DIR}/build/out/osqp_tester_custom_memory
  99. cd ${TRAVIS_BUILD_DIR}
  100. set +e