Skip to content

Merge lazy init by Jakub Novák #2

Merge lazy init by Jakub Novák

Merge lazy init by Jakub Novák #2

Workflow file for this run

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