language: cpp compiler: # FIXME: For now, building with Clang is disabled because the STP built with # it hits an assertion failure during some tests. We should sort this out # eventually and file the bug against STP or Clang whichever is appropriate, # but for now it is easier to just reduce the number of configs we test # anyway. # - clang - gcc env: ########################################################################### # Configurations # # Each line in the "env" section represents a set of environment variables # passed to a build. Thus each line represents a different build # configuration. ########################################################################### # Check the matrix of: # LLVM : {2.9, 3.4} # STP : {r950, UPSTREAM} # UCLIBC: {ENABLED, DISABLED} # with Asserts enabled. # FIXME: Enable when we want to test LLVM3.5 #- LLVM_VERSION=3.5 STP_VERSION=UPSTREAM KLEE_UCLIBC=0 DISABLE_ASSERTIONS=0 ENABLE_OPTIMIZED=1 #- LLVM_VERSION=3.5 STP_VERSION=UPSTREAM KLEE_UCLIBC=1 DISABLE_ASSERTIONS=0 ENABLE_OPTIMIZED=1 - LLVM_VERSION=3.4 STP_VERSION=UPSTREAM KLEE_UCLIBC=0 DISABLE_ASSERTIONS=0 ENABLE_OPTIMIZED=1 - LLVM_VERSION=3.4 STP_VERSION=UPSTREAM KLEE_UCLIBC=1 DISABLE_ASSERTIONS=0 ENABLE_OPTIMIZED=1 - LLVM_VERSION=2.9 STP_VERSION=UPSTREAM KLEE_UCLIBC=0 DISABLE_ASSERTIONS=0 ENABLE_OPTIMIZED=1 - LLVM_VERSION=2.9 STP_VERSION=UPSTREAM KLEE_UCLIBC=1 DISABLE_ASSERTIONS=0 ENABLE_OPTIMIZED=1 - LLVM_VERSION=3.4 STP_VERSION=r940 KLEE_UCLIBC=0 DISABLE_ASSERTIONS=0 ENABLE_OPTIMIZED=1 - LLVM_VERSION=3.4 STP_VERSION=r940 KLEE_UCLIBC=1 DISABLE_ASSERTIONS=0 ENABLE_OPTIMIZED=1 - LLVM_VERSION=2.9 STP_VERSION=r940 KLEE_UCLIBC=0 DISABLE_ASSERTIONS=0 ENABLE_OPTIMIZED=1 - LLVM_VERSION=2.9 STP_VERSION=r940 KLEE_UCLIBC=1 DISABLE_ASSERTIONS=0 ENABLE_OPTIMIZED=1 # Check at least one build with Asserts disabled. - LLVM_VERSION=2.9 STP_VERSION=r940 KLEE_UCLIBC=1 DISABLE_ASSERTIONS=1 ENABLE_OPTIMIZED=1 # FIXME: Do Debug+Asserts builds cache: apt before_install: ########################################################################### # Set up the locations to get various packages from # We assume the Travis image uses Ubuntu 12.04 LTS ########################################################################### - sudo sh -c 'echo "deb http://llvm.org/apt/precise/ llvm-toolchain-precise-3.4 main" >> /etc/apt/sources.list.d/llvm.list' - sudo sh -c 'echo "deb-src http://llvm.org/apt/precise/ llvm-toolchain-precise-3.4 main" >> /etc/apt/sources.list.d/llvm.list' - sudo sh -c 'echo "deb http://llvm.org/apt/precise/ llvm-toolchain-precise-3.5 main" >> /etc/apt/sources.list.d/llvm.list' - sudo sh -c 'echo "deb-src http://llvm.org/apt/precise/ llvm-toolchain-precise-3.5 main" >> /etc/apt/sources.list.d/llvm.list' # Needed for CMake - sudo add-apt-repository -y ppa:ubuntu-sdk-team/ppa # Needed for new libstdc++ and gcc4.8 - sudo add-apt-repository --yes ppa:ubuntu-toolchain-r/test/ - wget -O - http://llvm.org/apt/llvm-snapshot.gpg.key|sudo apt-key add - - sudo apt-get update ########################################################################### # Set up out of source build directory ########################################################################### - export KLEE_SRC=`pwd` - cd ../ - mkdir build - cd build/ - export BUILD_DIR=`pwd` ########################################################################### # Install stuff ########################################################################### # FIXME: STP doesn't need everything from Boost! - sudo apt-get install gcc-4.8 g++-4.8 libcap-dev cmake libboost-all-dev # Make gcc4.8 the default gcc version - sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 20 - sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.8 20 # Make Clang3.4 the default clang version - sudo apt-get install clang-3.4 - sudo update-alternatives --install /usr/bin/clang clang /usr/bin/clang-3.4 20 - sudo update-alternatives --install /usr/bin/clang++ clang++ /usr/bin/clang++-3.4 20 # Install LLVM and the LLVM bitcode compiler we require to build KLEE - ${KLEE_SRC}/.travis/install-llvm-and-runtime-compiler.sh # Install lit (llvm-lit is not available) - sudo pip install lit # Build STP - mkdir stp - cd stp - ${KLEE_SRC}/.travis/stp.sh - cd ../ script: # Get needed utlities/libraries for testing KLEE - mkdir test-utils/ - cd test-utils/ - ${KLEE_SRC}/.travis/testing-utils.sh - cd ../ # Build KLEE - ${KLEE_SRC}/.travis/klee.sh