diff --git a/.travis.yml b/.travis.yml index 6747fe30..282d0145 100644 --- a/.travis.yml +++ b/.travis.yml @@ -27,9 +27,11 @@ matrix: # Test compilation with AVX2 - os: linux + # "sudo: yes" and "dist: trusty" give us a worker with the AVX2 instruction set + sudo: yes + dist: trusty compiler: clang-3.8 - # skip tests since Travis doesn't have AVX2 compatible machines - env: OPJ_CI_CC=clang-3.8 OPJ_CI_CXX=clang-3.8 OPJ_CI_INSTRUCTION_SETS="-mavx2" OPJ_CI_BUILD_CONFIGURATION=Release OPJ_CI_SKIP_TESTS=1 + env: OPJ_CI_CC=clang-3.8 OPJ_CI_CXX=clang-3.8 OPJ_CI_INSTRUCTION_SETS="-mavx2" OPJ_CI_BUILD_CONFIGURATION=Release addons: apt: sources: diff --git a/tools/travis-ci/run.sh b/tools/travis-ci/run.sh index 950a0ee9..ac21dfe7 100755 --- a/tools/travis-ci/run.sh +++ b/tools/travis-ci/run.sh @@ -111,6 +111,17 @@ elif [ "${TRAVIS_OS_NAME}" == "linux" ]; then else echo "Compiler not supported: ${CC}"; exit 1 fi + if [ "${OPJ_CI_INSTRUCTION_SETS-:}" == "-mavx2" ]; then + AVX2_AVAIL=1 + cat /proc/cpuinfo | grep avx2 >/dev/null || AVX2_AVAIL=0 + if [[ "${AVX2_AVAIL}" == "1" ]]; then + echo "AVX2 available on CPU" + else + echo "AVX2 not available on CPU. Disabling tests" + cat /proc/cpuinfo | grep flags | head -n 1 + export OPJ_CI_SKIP_TESTS=1 + fi + fi elif [ "${TRAVIS_OS_NAME}" == "windows" ]; then OPJ_OS_NAME=windows if which cl > /dev/null; then