Merge lazy init by Jakub Novák #2
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: CI | |
| on: | |
| pull_request: | |
| branches: master | |
| push: | |
| branches: master | |
| # Defaults for building KLEE | |
| env: | |
| BASE_IMAGE: ubuntu:bionic-20200807 | |
| REPOSITORY: klee | |
| COVERAGE: 0 | |
| DISABLE_ASSERTIONS: 0 | |
| ENABLE_DOXYGEN: 0 | |
| ENABLE_OPTIMIZED: 1 | |
| ENABLE_DEBUG: 1 | |
| GTEST_VERSION: 1.11.0 | |
| KLEE_RUNTIME_BUILD: "Debug+Asserts" | |
| LLVM_VERSION: 9 | |
| METASMT_VERSION: qf_abv | |
| MINISAT_VERSION: "master" | |
| REQUIRES_RTTI: 0 | |
| SOLVERS: STP:Z3 | |
| STP_VERSION: 2.3.3 | |
| TCMALLOC_VERSION: 2.7 | |
| UCLIBC_VERSION: klee_uclibc_v1.2 | |
| USE_TCMALLOC: 1 | |
| USE_LIBCXX: 1 | |
| Z3_VERSION: 4.8.14 | |
| jobs: | |
| Linux: | |
| runs-on: ubuntu-latest | |
| strategy: | |
| matrix: | |
| name: [ | |
| "LLVM 13", | |
| "LLVM 12", | |
| "LLVM 11, Doxygen", | |
| "LLVM 10", | |
| "LLVM 9", | |
| "LLVM 8", | |
| "LLVM 7", | |
| "LLVM 6", | |
| "ASan", | |
| "UBSan", | |
| "MSan", | |
| "Z3 only", | |
| "metaSMT STP", | |
| "metaSMT Boolector", | |
| "STP master", | |
| "Latest klee-uclibc", | |
| "Asserts enabled", | |
| "No TCMalloc, optimised runtime", | |
| ] | |
| include: | |
| - name: "LLVM 13" | |
| env: | |
| LLVM_VERSION: 13 | |
| - name: "LLVM 12" | |
| env: | |
| LLVM_VERSION: 12 | |
| - name: "LLVM 11, Doxygen" | |
| env: | |
| LLVM_VERSION: 11 | |
| ENABLE_DOXYGEN: 1 | |
| - name: "LLVM 10" | |
| env: | |
| LLVM_VERSION: 10 | |
| - name: "LLVM 9" | |
| env: | |
| LLVM_VERSION: 9 | |
| - name: "LLVM 8" | |
| env: | |
| LLVM_VERSION: 8 | |
| - name: "LLVM 7" | |
| env: | |
| LLVM_VERSION: 7 | |
| - name: "LLVM 6" | |
| env: | |
| LLVM_VERSION: "6.0" | |
| # Sanitizer builds. Do unoptimized build otherwise the optimizer might remove problematic code | |
| - name: "ASan" | |
| env: | |
| SANITIZER_BUILD: address | |
| ENABLE_OPTIMIZED: 0 | |
| USE_TCMALLOC: 0 | |
| SANITIZER_LLVM_VERSION: 11 | |
| - name: "UBSan" | |
| env: | |
| SANITIZER_BUILD: undefined | |
| ENABLE_OPTIMIZED: 0 | |
| USE_TCMALLOC: 0 | |
| SANITIZER_LLVM_VERSION: 11 | |
| - name: "MSan" | |
| env: | |
| SANITIZER_BUILD: memory | |
| ENABLE_OPTIMIZED: 0 | |
| USE_TCMALLOC: 0 | |
| SOLVERS: STP | |
| SANITIZER_LLVM_VERSION: 11 | |
| # Test just using Z3 only | |
| - name: "Z3 only" | |
| env: | |
| SOLVERS: Z3 | |
| # Test just using metaSMT | |
| - name: "metaSMT STP" | |
| env: | |
| SOLVERS: metaSMT | |
| METASMT_DEFAULT: STP | |
| REQUIRES_RTTI: 1 | |
| - name: "metaSMT Boolector" | |
| env: | |
| SOLVERS: metaSMT | |
| METASMT_DEFAULT: BTOR | |
| REQUIRES_RTTI: 1 | |
| # Test we can build against STP master | |
| - name: "STP master" | |
| env: | |
| SOLVERS: STP | |
| STP_VERSION: master | |
| # Check we can build latest klee-uclibc branch | |
| - name: "Latest klee-uclibc" | |
| env: | |
| UCLIBC_VERSION: klee_0_9_29 | |
| # Check at least one build with Asserts disabled. | |
| - name: "Asserts enabled" | |
| env: | |
| SOLVERS: STP | |
| DISABLE_ASSERTIONS: 1 | |
| # Check without TCMALLOC and with an optimised runtime library | |
| - name: "No TCMalloc, optimised runtime" | |
| env: | |
| USE_TCMALLOC: 0 | |
| KLEE_RUNTIME_BUILD: "Release+Debug+Asserts" | |
| steps: | |
| - name: Checkout KLEE source code | |
| uses: actions/checkout@v2 | |
| - name: Build KLEE | |
| env: ${{ matrix.env }} | |
| run: scripts/build/build.sh klee --docker --create-final-image | |
| - name: Run tests | |
| run: scripts/build/run-tests.sh --run-docker --debug | |
| macOS: | |
| runs-on: macos-latest | |
| env: | |
| BASE: /tmp | |
| SOLVERS: STP | |
| UCLIBC_VERSION: 0 | |
| USE_TCMALLOC: 0 | |
| USE_LIBCXX: 0 | |
| steps: | |
| - name: Install newer version of Bash | |
| run: brew install bash | |
| - name: Checkout KLEE source code | |
| uses: actions/checkout@v2 | |
| - name: Build KLEE | |
| run: scripts/build/build.sh klee --debug --install-system-deps | |
| - name: Run tests | |
| run: scripts/build/run-tests.sh /tmp/klee_build* --debug | |
| Docker: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout KLEE Code | |
| uses: actions/checkout@v2 | |
| - name: Build Docker image | |
| run: docker build . | |
| Coverage: | |
| runs-on: ubuntu-latest | |
| env: | |
| ENABLE_OPTIMIZED: 0 | |
| COVERAGE: 1 | |
| steps: | |
| - name: Checkout KLEE source code | |
| uses: actions/checkout@v2 | |
| - name: Build KLEE | |
| run: scripts/build/build.sh klee --docker --create-final-image | |
| - name: Run tests | |
| run: scripts/build/run-tests.sh --coverage --upload-coverage --run-docker --debug |