diff options
author | Martin Nowack <martin@se.inf.tu-dresden.de> | 2017-07-22 22:28:52 +0200 |
---|---|---|
committer | Martin Nowack <martin@se.inf.tu-dresden.de> | 2017-07-23 12:18:35 +0200 |
commit | a0a94cfa1a6b8309bd65ca50761fe21bc214f7a7 (patch) | |
tree | d67e3e25610fdd56799bf9e94cd0ba59ad3e0870 | |
parent | afae176824d8fd1733e5e302a62e6bd09a86aff2 (diff) | |
download | klee-a0a94cfa1a6b8309bd65ca50761fe21bc214f7a7.tar.gz |
Cleanup Travis builder
-rw-r--r-- | .travis.yml | 7 | ||||
-rwxr-xr-x | .travis/install-llvm-and-runtime-compiler.sh | 28 | ||||
-rwxr-xr-x | .travis/klee.sh | 30 | ||||
-rwxr-xr-x | .travis/testing-utils.sh | 56 |
4 files changed, 27 insertions, 94 deletions
diff --git a/.travis.yml b/.travis.yml index 09147e38..f6034540 100644 --- a/.travis.yml +++ b/.travis.yml @@ -20,7 +20,7 @@ env: ########################################################################### # Check a subset of the matrix of: - # LLVM : {2.9, 3.4, 3.5, 3.6} + # LLVM : {3.4, 3.5, 3.6} # SOLVERS : {Z3, STP, STP:Z3, metaSMT} # STP_VERSION : {2.1.2, master} # METASMT_VERSION : {v4.rc1} @@ -46,7 +46,6 @@ env: - LLVM_VERSION=3.4 SOLVERS=STP:Z3 STP_VERSION=2.1.2 KLEE_UCLIBC=klee_uclibc_v1.0.0 DISABLE_ASSERTIONS=0 ENABLE_OPTIMIZED=1 COVERAGE=0 USE_TCMALLOC=1 USE_CMAKE=1 - LLVM_VERSION=3.4 SOLVERS=metaSMT METASMT_VERSION=v4.rc1 METASMT_DEFAULT=STP KLEE_UCLIBC=klee_uclibc_v1.0.0 DISABLE_ASSERTIONS=0 ENABLE_OPTIMIZED=1 COVERAGE=0 USE_TCMALLOC=1 USE_CMAKE=1 - - LLVM_VERSION=2.9 SOLVERS=STP:Z3 STP_VERSION=2.1.2 KLEE_UCLIBC=klee_uclibc_v1.0.0 DISABLE_ASSERTIONS=0 ENABLE_OPTIMIZED=1 COVERAGE=0 USE_TCMALLOC=1 USE_CMAKE=1 # ASan build. Do unoptimized build otherwise the optimizer might remove problematic code - LLVM_VERSION=3.4 SOLVERS=STP STP_VERSION=2.1.2 KLEE_UCLIBC=klee_uclibc_v1.0.0 DISABLE_ASSERTIONS=0 ENABLE_OPTIMIZED=0 COVERAGE=0 USE_CMAKE=1 USE_TCMALLOC=0 ASAN_BUILD=1 @@ -59,18 +58,15 @@ env: # Test we can still build with Z3 in the old build sytem - LLVM_VERSION=3.4 SOLVERS=Z3 KLEE_UCLIBC=klee_uclibc_v1.0.0 DISABLE_ASSERTIONS=0 ENABLE_OPTIMIZED=1 COVERAGE=0 - - LLVM_VERSION=2.9 SOLVERS=Z3 KLEE_UCLIBC=klee_uclibc_v1.0.0 DISABLE_ASSERTIONS=0 ENABLE_OPTIMIZED=1 COVERAGE=0 # Test we can build against STP master - LLVM_VERSION=3.4 SOLVERS=STP STP_VERSION=master KLEE_UCLIBC=klee_uclibc_v1.0.0 DISABLE_ASSERTIONS=0 ENABLE_OPTIMIZED=1 COVERAGE=0 # Check we can build latest klee-uclibc branch - LLVM_VERSION=3.4 SOLVERS=STP STP_VERSION=2.1.2 KLEE_UCLIBC=klee_0_9_29 DISABLE_ASSERTIONS=0 ENABLE_OPTIMIZED=1 COVERAGE=0 - - LLVM_VERSION=2.9 SOLVERS=STP STP_VERSION=2.1.2 KLEE_UCLIBC=klee_0_9_29 DISABLE_ASSERTIONS=0 ENABLE_OPTIMIZED=1 COVERAGE=0 # Test metaSMT support - LLVM_VERSION=3.4 SOLVERS=metaSMT METASMT_VERSION=v4.rc1 METASMT_DEFAULT=btor KLEE_UCLIBC=klee_uclibc_v1.0.0 DISABLE_ASSERTIONS=0 ENABLE_OPTIMIZED=1 COVERAGE=0 - - LLVM_VERSION=2.9 SOLVERS=metaSMT METASMT_VERSION=v4.rc1 METASMT_DEFAULT=btor KLEE_UCLIBC=klee_uclibc_v1.0.0 DISABLE_ASSERTIONS=0 ENABLE_OPTIMIZED=1 COVERAGE=0 METASMT_BOOST_VERSION=1.60.0 # Check at least one build with Asserts disabled. - LLVM_VERSION=3.4 SOLVERS=STP STP_VERSION=2.1.2 KLEE_UCLIBC=klee_uclibc_v1.0.0 DISABLE_ASSERTIONS=1 ENABLE_OPTIMIZED=1 COVERAGE=0 @@ -80,7 +76,6 @@ env: # Check with TCMALLOC - LLVM_VERSION=3.4 SOLVERS=STP STP_VERSION=2.1.2 KLEE_UCLIBC=klee_uclibc_v1.0.0 DISABLE_ASSERTIONS=0 ENABLE_OPTIMIZED=1 COVERAGE=0 USE_TCMALLOC=1 - - LLVM_VERSION=2.9 SOLVERS=STP STP_VERSION=2.1.2 KLEE_UCLIBC=klee_uclibc_v1.0.0 DISABLE_ASSERTIONS=0 ENABLE_OPTIMIZED=1 COVERAGE=0 USE_TCMALLOC=1 global: - secure: EF/WAc4BdIRUchF3mjATN3/UwtGWtGaRgb5oIIJHjKhgZFdPsgWsXFgaOB0jaK2hfO/svj/LvlasuRIGxeePVjeaiX8ZlVpuHiX67vdYLY+0kCDRwkusRjm60/GbPU9O/Xjgb/d4aWAEkoq5OnsprVTEvU8iY2JHtAqgwR+wW9I= - secure: Hrp1MRSxDUH2GTQg3QR/yUttY/3KmgbFb5e+zyy551dKpHjxJdsNe8bquY9oFoT7KmPQYl0HNNjEv4qWW8RK+HWHOCB55nL1KlGpOG7vAJcUEZg7ScbliGgiovMB6jIQVfeP9FhYngfc13vNZQ5PGlqzfSsHSAbvkwEogBToHVw= diff --git a/.travis/install-llvm-and-runtime-compiler.sh b/.travis/install-llvm-and-runtime-compiler.sh index 8e8e9863..6c9bc009 100755 --- a/.travis/install-llvm-and-runtime-compiler.sh +++ b/.travis/install-llvm-and-runtime-compiler.sh @@ -4,31 +4,9 @@ set -ev if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then sudo apt-get install -y llvm-${LLVM_VERSION} llvm-${LLVM_VERSION}-dev - if [ "${LLVM_VERSION}" != "2.9" ]; then - sudo apt-get install -y llvm-${LLVM_VERSION}-tools clang-${LLVM_VERSION} - sudo update-alternatives --install /usr/bin/clang clang /usr/bin/clang-${LLVM_VERSION} 20 - sudo update-alternatives --install /usr/bin/clang++ clang++ /usr/bin/clang++-${LLVM_VERSION} 20 - else - # Get llvm-gcc. We don't bother installing it - wget http://llvm.org/releases/2.9/llvm-gcc4.2-2.9-x86_64-linux.tar.bz2 - tar -xjf llvm-gcc4.2-2.9-x86_64-linux.tar.bz2 - mv llvm-gcc4.2-2.9-x86_64-linux llvm-gcc - - # Hack to make llvm-gcc capable of building a native executable - OLD_DIR=$(pwd) - cd llvm-gcc/lib/gcc/x86_64-unknown-linux-gnu/4.2.1 - ln -s /usr/lib/x86_64-linux-gnu/crt1.o - ln -s /usr/lib/x86_64-linux-gnu/crti.o - ln -s /usr/lib/x86_64-linux-gnu/crtn.o - cd "$OLD_DIR" - - # Check it can compile hello world - echo -e "#include <stdio.h> \n int main(int argc, char** argv) { printf(\"Hello World\"); return 0;}" > test.c - export C_INCLUDE_PATH=/usr/include/x86_64-linux-gnu - export CPLUS_INCLUDE_PATH=/usr/include/x86_64-linux-gnu - llvm-gcc/bin/llvm-gcc test.c -o hello_world - ./hello_world - fi + sudo apt-get install -y llvm-${LLVM_VERSION}-tools clang-${LLVM_VERSION} + sudo update-alternatives --install /usr/bin/clang clang /usr/bin/clang-${LLVM_VERSION} 20 + sudo update-alternatives --install /usr/bin/clang++ clang++ /usr/bin/clang++-${LLVM_VERSION} 20 elif [[ "${TRAVIS_OS_NAME}" == "osx" ]]; then # NOTE: We should not easily generalize, since we need the corresponding support of bottled formulas if [ "${LLVM_VERSION}" == "3.4" ]; then diff --git a/.travis/klee.sh b/.travis/klee.sh index 5ee631fa..19b9e47f 100755 --- a/.travis/klee.sh +++ b/.travis/klee.sh @@ -9,29 +9,15 @@ SVN_BRANCH="release_$( echo ${LLVM_VERSION} | sed 's/\.//g')" ############################################################################### # Select the compiler to use to generate LLVM bitcode ############################################################################### -if [ "${LLVM_VERSION}" != "2.9" ]; then - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then - KLEE_CC=/usr/bin/clang-${LLVM_VERSION} - KLEE_CXX=/usr/bin/clang++-${LLVM_VERSION} - elif [[ "${TRAVIS_OS_NAME}" == "osx" ]]; then - KLEE_CC=/usr/local/bin/clang-${LLVM_VERSION} - KLEE_CXX=/usr/local/bin/clang++-${LLVM_VERSION} - else - echo "Unhandled TRAVIS_OS_NAME \"${TRAVIS_OS_NAME}\"" - exit 1 - fi +if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then + KLEE_CC=/usr/bin/clang-${LLVM_VERSION} + KLEE_CXX=/usr/bin/clang++-${LLVM_VERSION} +elif [[ "${TRAVIS_OS_NAME}" == "osx" ]]; then + KLEE_CC=/usr/local/bin/clang-${LLVM_VERSION} + KLEE_CXX=/usr/local/bin/clang++-${LLVM_VERSION} else - # Just use pre-built llvm-gcc downloaded earlier - KLEE_CC=${BUILD_DIR}/llvm-gcc/bin/llvm-gcc - KLEE_CXX=${BUILD_DIR}/llvm-gcc/bin/llvm-g++ - export C_INCLUDE_PATH=/usr/include/x86_64-linux-gnu - export CPLUS_INCLUDE_PATH=/usr/include/x86_64-linux-gnu - - # Add symlinks to fix llvm-2.9-dev package so KLEE can configure properly - # Because of the way KLEE's configure script works this must be a relative - # symlink, **not** absolute! - sudo sh -c 'cd /usr/lib/llvm-2.9/build/ && ln -s ../ Release' - sudo sh -c 'cd /usr/lib/llvm-2.9/build/ && ln -s ../include include' + echo "Unhandled TRAVIS_OS_NAME \"${TRAVIS_OS_NAME}\"" + exit 1 fi ############################################################################### diff --git a/.travis/testing-utils.sh b/.travis/testing-utils.sh index 153a5546..7502b4fc 100755 --- a/.travis/testing-utils.sh +++ b/.travis/testing-utils.sh @@ -10,46 +10,20 @@ if [ "X${USE_CMAKE}" == "X1" ]; then exit 0 fi -if [ "${LLVM_VERSION}" != "2.9" ]; then - # Using LLVM3.4 all we need is vanilla GoogleTest :) - wget https://github.com/google/googletest/archive/release-1.7.0.zip - unzip release-1.7.0.zip - cd googletest-release-1.7.0/ - cmake . - make - # Normally I wouldn't do something like this but hey we're running on a temporary virtual machine, so who cares? - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then - sudo cp lib* /usr/lib/ - sudo cp -r include/gtest /usr/include - elif [[ "${TRAVIS_OS_NAME}" == "osx" ]]; then - sudo cp lib* /usr/local/lib/ - sudo cp -r include/gtest /usr/local/include - else - echo "Unhandled TRAVIS_OS_NAME \"${TRAVIS_OS_NAME}\"" - exit 1 - fi +# Using LLVM3.4 all we need is vanilla GoogleTest :) +wget https://github.com/google/googletest/archive/release-1.7.0.zip +unzip release-1.7.0.zip +cd googletest-release-1.7.0/ +cmake . +make +# Normally I wouldn't do something like this but hey we're running on a temporary virtual machine, so who cares? +if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then + sudo cp lib* /usr/lib/ + sudo cp -r include/gtest /usr/include +elif [[ "${TRAVIS_OS_NAME}" == "osx" ]]; then + sudo cp lib* /usr/local/lib/ + sudo cp -r include/gtest /usr/local/include else - # LLVM2.9 on the other hand is a pain - - # We need the version of GoogleTest used in LLVM2.9 - # This is a hack - old_dir=`pwd` - cd "${KLEE_SRC}" - cd tools/ - svn export http://llvm.org/svn/llvm-project/llvm/branches/release_29/utils/unittest unittest - - # Now put the header files in the search path so building will succeed - sudo cp -r unittest/googletest/include/gtest /usr/include/ - - # We need the FileCheck and not utilites as well because they aren't in the llvm-2.9-dev package - for tool in FileCheck not; do - svn export http://llvm.org/svn/llvm-project/llvm/branches/release_29/utils/${tool} ${tool} - # Patch the Makefile so it will work in KLEE's build system - sed -i 's/^USEDLIBS.*$/LINK_COMPONENTS = support/' ${tool}/Makefile - done - - # Now hack the make file to build the unittest library and the FileCheck and not tools - sed -i '0,/^PARALLEL_DIRS/a PARALLEL_DIRS += unittest FileCheck not' Makefile - - cd "${old_dir}" + echo "Unhandled TRAVIS_OS_NAME \"${TRAVIS_OS_NAME}\"" + exit 1 fi |