Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[test] #3

Open
wants to merge 120 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
120 commits
Select commit Hold shift + click to select a range
457911c
[fix] Tests for states with mocks
Columpio Oct 2, 2023
743cfec
Memory optimize, remove InstructionInfoTable, add immutable list for …
ladisgin Aug 15, 2023
35aad70
[feat] uint128
Columpio Oct 4, 2023
23039dc
[chore] Optimized KBlock mem
Columpio Oct 5, 2023
3c02329
[fix] Error testcase processing doesn't affect `coveredNew`
misonijnik Oct 5, 2023
a7e217d
[fix] Fix `computeValidity` in partial response case
misonijnik Oct 5, 2023
a967ee0
[chore] Disable test
misonijnik Oct 5, 2023
9502385
[chore] Add a test
misonijnik Oct 5, 2023
10d87a6
[chore] Add an option to disable loop deletion pass
misonijnik Oct 5, 2023
9247847
[fix] Fix stats
misonijnik Oct 5, 2023
6871b04
[feat] Differentiate `isCoveredNew` and `isCoveredNewError`
misonijnik Oct 6, 2023
8bad08f
[chore] Z3 is not required in a lot of tests, so remove the requirements
misonijnik Oct 6, 2023
bef97af
[feat] Improved Iterative Deepening Searcher
Columpio Oct 10, 2023
87ff7c0
[fix] Fixed inner types for unnamed structs.
S1eGa Oct 12, 2023
04fb6b5
[feat] Separate branch and block coverage
misonijnik Sep 22, 2023
e939f09
[chore] Update build.sh
misonijnik Oct 16, 2023
aede6e4
[feat] Prefer a smaller integer vaule in a model
misonijnik Oct 16, 2023
59fdf83
[chore] Optimized IterativeDeepeningSearcher
Columpio Oct 20, 2023
a8d246a
[chore] Optimized getDistance
Columpio Oct 20, 2023
5aa5eb8
[chore] Strip llvm.dbg.declare
Columpio Oct 20, 2023
9e8bf64
[fix] Compare exprs by height in simplifier
ocelaiwo Oct 20, 2023
9706690
[feat] Uninitialized Memory [feat] Sizeless ObjectState
ocelaiwo Oct 17, 2023
f635c8a
[chore] Disable test
misonijnik Oct 21, 2023
8cc4d4b
[fix] Fix performance bugs
misonijnik Oct 22, 2023
95c1595
[fix] Change satisfies function in InvalidReponse
dim8art Oct 21, 2023
05ee674
Change CacheEntry to store constraints_ty
dim8art Oct 21, 2023
4c09778
Create AlphaEquvalenceSolver
dim8art Oct 21, 2023
aa108f2
[fix] Propagation of without filter
Columpio Oct 23, 2023
4882bbf
[fix] Small fixes
Columpio Oct 23, 2023
98df581
[fix] Generate test only for successful solution found
misonijnik Oct 24, 2023
a3a4a05
[chore] Deal with compiler warnings
Columpio Oct 24, 2023
943f003
[feat] Cover on the fly based on time
Columpio Oct 24, 2023
6e92286
[fix] rewriting ordering for terms with equal height
Columpio Oct 24, 2023
7229e16
[fix] Update test
misonijnik Oct 24, 2023
c6b5d1a
[feat] Removed unwanted calls pass
Columpio Oct 25, 2023
7befcf9
[fix] Filter objects and values in `changeVersion`
misonijnik Oct 25, 2023
67480cb
[fix] Clean memory operations
misonijnik Oct 26, 2023
cc224b7
[fix] Fix `AlphaEquivalenceSolver`
misonijnik Oct 27, 2023
d882995
[fix] Halt when LLVM passes already proved unreachability
Columpio Oct 27, 2023
4fd9d16
[chore] Update version and `README.md`
misonijnik Oct 30, 2023
dd6022a
[fix] Improved call remover
Columpio Oct 31, 2023
06cf512
[feat] Add `OptimizeAggressive` option
misonijnik Nov 1, 2023
21c3523
[feat] Getting the performance/memory consumption balance in `Disjoin…
misonijnik Nov 2, 2023
5ab6cd4
[fix] Fix performance for unbalanced expressions
misonijnik Nov 2, 2023
90a9b84
[refactor] Separate `isStuck` and `isCycled`, `isStuck` is smarter now
misonijnik Nov 2, 2023
f315261
[fix] Limit the cexPreferences size
misonijnik Nov 2, 2023
06ca8d2
[fix] Remove unused field
misonijnik Nov 2, 2023
fa4a283
[fix] Fix memory consumption
misonijnik Nov 2, 2023
b06407d
[feat] Enable `coverOnTheFly` after approaching memory cup
misonijnik Nov 2, 2023
44ef6a2
[style]
misonijnik Nov 2, 2023
c7d3c48
[fix] Consider all not empty and not fully covered functions
misonijnik Nov 3, 2023
80f38b5
[fix] Fix perfomance bug
misonijnik Nov 3, 2023
d8f1867
[fix] Fix `isStuck`
misonijnik Nov 3, 2023
5ec276f
[fix] klee-test-comp.c
Columpio Nov 3, 2023
91fe2c3
[feat] Single-file run script
Columpio Nov 3, 2023
69cc99b
[chore] Updated README
Columpio Nov 7, 2023
7f3cff4
[feat] Improve coverage branches tests
misonijnik Nov 5, 2023
7b5f9a6
[fix] `CexCachingSolver`
misonijnik Nov 6, 2023
e485e7f
[fix] Slightly improve performance
misonijnik Nov 5, 2023
1866938
[fix] `AlphaEquivalenceSolver`
misonijnik Nov 7, 2023
435f392
[feat] Add `X86FPAsX87FP80`
misonijnik Nov 7, 2023
be6ef33
[chore] Update `scripts/kleef`
misonijnik Nov 7, 2023
bd7c4b8
[chore] Disable `libc++` tests on msan run because they time out on CI
misonijnik Nov 8, 2023
bca927d
[fix] Must consider the whole concretization
misonijnik Nov 8, 2023
85481ef
[chore] Update `kleef` script
misonijnik Nov 10, 2023
c28e0e2
[chore] Update tests
misonijnik Nov 10, 2023
8d8faad
[fix] `MemoryTriggerCoverOnTheFly`
misonijnik Nov 12, 2023
9ae75c9
[chore] Update `kleef`
misonijnik Nov 12, 2023
45c7b7c
[fix] Optimized free-standing functions are broken
misonijnik Nov 13, 2023
1813fc2
[chore] Update `kleef` script
misonijnik Nov 10, 2023
f585c74
[fix] Address may be symbolic but unique, try resolve firstly
misonijnik Nov 14, 2023
38a378e
[fix] Put in order `fp-runtime` functions
misonijnik Nov 14, 2023
dcdd528
[fix] Bring calls to `SparseStorage` constructor up to date
misonijnik Nov 15, 2023
45c0bb1
[feat] Added Bitwuzla solver in list of available solvers. Added scri…
S1eGa Nov 14, 2023
d9e7223
typo
dim8art Nov 21, 2023
2bcba82
Add lazy calculation of constraint dsu
dim8art Nov 21, 2023
c35bad9
[chore] Update `GuidedSearcher::selectState`
misonijnik Nov 15, 2023
0b27fb6
[fix] Convert all x86FP to x87FP80 in `FPToX87FP80Ext`
misonijnik Nov 17, 2023
9c1caa9
[fix] Restore `newSize` in case `newSize > maxSize`
misonijnik Nov 17, 2023
1df90e8
[chore] `ExprEitherSymcrete` ->`ExprOrSymcrete`
misonijnik Nov 17, 2023
5d91554
[fix] `AlphaBuilder`
misonijnik Nov 20, 2023
c71f2cb
[fix] `CexCachingSolver`
misonijnik Nov 20, 2023
dad6ccd
[fix] SparseStorage::print
ocelaiwo Nov 11, 2023
2cd78c4
[fix] `sizeOfSetRange`
misonijnik Nov 20, 2023
3b48299
[fix] Disable `AlignSymbolicPointers` by default
misonijnik Nov 21, 2023
15b79ad
[chore] Install meson locally
misonijnik Nov 21, 2023
c71b0d3
[fix] Preserve `floatReplacements`
misonijnik Nov 22, 2023
218f70d
[feat] Add new memory usage checks
ocelaiwo Nov 21, 2023
e100a78
[chore] Update options default values
misonijnik Nov 22, 2023
88975c2
[fix] Continue searching for the error if the state is not reproducible
misonijnik Nov 22, 2023
cab6da9
[feat] Added flag to dump all states if function specified in functio…
S1eGa Nov 22, 2023
241358a
[chore] Update tests
misonijnik Nov 21, 2023
592da1c
[chore] Update `build.sh`
misonijnik Nov 23, 2023
20d6e2e
[chore] Update `kleef`
misonijnik Nov 21, 2023
4ab8cfa
[chore] Update `differential-shellcheck.yml`
misonijnik Dec 9, 2023
261d966
[feat] Introduces KValue --- base class for all KLEEs wrappers around…
S1eGa Dec 12, 2023
d9f3156
[refactor] The KValue was stripped of public constructor and made abs…
S1eGa Dec 14, 2023
86e19ba
[refactor] KBlock made abstract, reduntant VALUE constant from KValue…
S1eGa Dec 18, 2023
f0fabeb
[refactor] Added ByteWidth type. Separated symbolicSizeConstantAddres…
S1eGa Dec 21, 2023
5724005
[chore] Remove submodules
misonijnik Dec 18, 2023
d238275
[chore] Add `json` and `optional` into `build.sh`
misonijnik Dec 24, 2023
4169629
[chore] replace nonstd::optional with std::optional
ocelaiwo Dec 28, 2023
fd8a45b
[fix] klee-test-comp.c: remove unused function that fails to compile
ocelaiwo Dec 28, 2023
23192d8
[feat] add entry point multiplex, remove interactive mode
ocelaiwo Dec 28, 2023
36fb45c
[fix] Fix the template argument
misonijnik Dec 30, 2023
219233c
[fix] Add arm float constants
misonijnik Dec 30, 2023
8f9fb7e
[chore] Disable tests with uint128 type on not-x86_64 targets
misonijnik Dec 31, 2023
8451cc5
[fix] Disable test on darwin due to stack overflow
misonijnik Jan 3, 2024
55f7438
[ci] Update `.cirrus.yml`
misonijnik Jan 4, 2024
cf5178a
[fix] Use `find -exec`
misonijnik Jan 17, 2024
c6a4198
[fix] Initialize local variables
misonijnik Jan 19, 2024
8d17abf
[fix] Fix assertion fail
misonijnik Jan 19, 2024
cac9566
Remove unnecessary field from the ImmutableList
ladisgin Jan 23, 2024
4fd12f0
[fix] fix bitwuzla build version fix
ocelaiwo Jan 29, 2024
79aedb6
Add mocks:
Lana243 Jun 16, 2023
f6072e0
Add annotations json parser
mamaria-k Jun 28, 2023
a36439e
Add annotations implementation:
ladisgin Jul 25, 2023
edce929
[chore] clang-format CI check replaced with pre-commit hook using cla…
S1eGa Feb 22, 2024
6b24f90
[chore, git] make entire pipeline dependent on the result of the clan…
S1eGa Feb 27, 2024
f991865
[test]
S1eGa Feb 27, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
8 changes: 4 additions & 4 deletions .cirrus.yml
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
task:
freebsd_instance:
matrix:
- image_family: freebsd-12-3-snap
- image_family: freebsd-13-1-snap
- image_family: freebsd-13-2-snap
- image_family: freebsd-14-0-snap
deps_script:
- sed -i.bak -e 's/quarterly/latest/' /etc/pkg/FreeBSD.conf
- env ASSUME_ALWAYS_YES=yes pkg update -f
- env ASSUME_ALWAYS_YES=yes pkg install -y llvm11 gmake z3 cmake pkgconf google-perftools python3 py39-sqlite3 py39-tabulate
- env ASSUME_ALWAYS_YES=yes pkg install -y llvm11 gmake z3 cmake pkgconf google-perftools python3 py39-sqlite3 py39-tabulate nlohmann-json bash coreutils
build_script:
- mkdir build
- cd build
- cmake -DLLVM_DIR=/usr/local/llvm11 -DMAKE_BINARY=/usr/local/bin/gmake -DENABLE_TCMALLOC:BOOL=true -DENABLE_POSIX_RUNTIME:BOOL=ON -DENABLE_SOLVER_Z3:BOOL=true -DENABLE_SYSTEM_TESTS:BOOL=ON ..
- cmake -DLLVM_DIR=/usr/local/llvm11 -DMAKE_BINARY=/usr/local/bin/gmake -DJSON_SRC_DIR=/usr/local -DENABLE_TCMALLOC:BOOL=true -DENABLE_POSIX_RUNTIME:BOOL=ON -DENABLE_SOLVER_Z3:BOOL=true -DENABLE_SYSTEM_TESTS:BOOL=ON ..
- gmake
test_script:
- sed -i.bak -e 's/lit\./lit11\./' test/lit.cfg
Expand Down
9 changes: 5 additions & 4 deletions .github/workflows/build-in-base-env.yml
Original file line number Diff line number Diff line change
@@ -1,14 +1,15 @@
name: Build in UTBot base_env

on:
pull_request:
branches: [utbot-main]
push:
branches: [utbot-main]
workflow_run:
workflows: ["Clang Format"]
types:
- completed

jobs:
build:
runs-on: ubuntu-latest
if: ${{ github.event.workflow_run.conclusion == 'success' }}
container:
image: ghcr.io/unittestbot/utbotcpp/base_env:02-02-2022
credentials:
Expand Down
36 changes: 20 additions & 16 deletions .github/workflows/build.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,10 @@
name: CI

on:
pull_request:
branches: [main, utbot-main]
push:
branches: [main, utbot-main]
workflow_run:
workflows: ["Clang Format"]
types:
- completed

# Defaults for building KLEE
env:
Expand All @@ -21,18 +21,21 @@ env:
LLVM_VERSION: 11
MINISAT_VERSION: "master"
REQUIRES_RTTI: 0
SOLVERS: Z3:STP
SOLVERS: BITWUZLA:Z3:STP
STP_VERSION: 2.3.3
TCMALLOC_VERSION: 2.9.1
UCLIBC_VERSION: klee_uclibc_v1.3
USE_TCMALLOC: 1
USE_LIBCXX: 1
Z3_VERSION: 4.8.15
SQLITE_VERSION: 3400100
BITWUZLA_VERSION: 0.3.1
JSON_VERSION: v3.11.3

jobs:
Linux:
runs-on: ubuntu-latest
if: ${{ github.event.workflow_run.conclusion == 'success' }}
strategy:
matrix:
name: [
Expand All @@ -48,6 +51,7 @@ jobs:
"Z3 only",
"metaSMT",
"STP master",
"Bitwuzla only",
"Latest klee-uclibc",
"Asserts disabled",
"No TCMalloc, optimised runtime",
Expand Down Expand Up @@ -109,6 +113,10 @@ jobs:
env:
SOLVERS: STP
STP_VERSION: master
# Test just using Bitwuzla only
- name: "Bitwuzla only"
env:
SOLVERS: BITWUZLA
# Check we can build latest klee-uclibc branch
- name: "Latest klee-uclibc"
env:
Expand Down Expand Up @@ -137,6 +145,7 @@ jobs:

macOS:
runs-on: macos-latest
if: ${{ github.event.workflow_run.conclusion == 'success' }}
env:
BASE: /tmp
SOLVERS: STP
Expand All @@ -157,6 +166,7 @@ jobs:

Docker:
runs-on: ubuntu-latest
if: ${{ github.event.workflow_run.conclusion == 'success' }}
steps:
- name: Checkout KLEE Code
uses: actions/checkout@v3
Expand All @@ -167,11 +177,13 @@ jobs:

Coverage:
runs-on: ubuntu-latest
if: ${{ github.event.workflow_run.conclusion == 'success' }}
strategy:
matrix:
name: [
"STP",
"Z3",
"Bitwuzla",
]
include:
- name: "STP"
Expand All @@ -180,6 +192,9 @@ jobs:
- name: "Z3"
env:
SOLVERS: Z3:STP
- name: "Bitwuzla"
env:
SOLVERS: BITWUZLA:Z3
env:
ENABLE_OPTIMIZED: 0
COVERAGE: 1
Expand All @@ -198,14 +213,3 @@ jobs:
- name: Run tests
env: ${{ matrix.env }}
run: scripts/build/run-tests.sh --coverage --upload-coverage --run-docker --debug

clang-format:
runs-on: ubuntu-latest
steps:
- name: Checkout KLEE Code
uses: actions/checkout@v2
- name: Run clang-format on KLEE Code
uses: jidicula/[email protected]
with:
clang-format-version: '13'
include-regex: '(^.*\.((((c|C)(c|pp|xx|\+\+)?$)|((h|H)h?(pp|xx|\+\+)?$))|((ino|pde|proto|cu))$)|^(include|lib)\/.*\.inc)$'
20 changes: 20 additions & 0 deletions .github/workflows/clang-format.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
---
name: Clang Format

on:
pull_request:
branches: [main, utbot-main]
push:
branches: [main, utbot-main]

jobs:
clang-format:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: 3.x
- uses: pre-commit/[email protected]
- uses: pre-commit-ci/[email protected]
if: always()
4 changes: 2 additions & 2 deletions .github/workflows/differential-shellcheck.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@
name: Differential ShellCheck
on:
push:
branches: [master]
branches: [main]
pull_request:
branches: [master]
branches: [main]

permissions:
contents: read
Expand Down
6 changes: 0 additions & 6 deletions .gitmodules

This file was deleted.

7 changes: 7 additions & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
files: '(^.*\.((((c|C)(c|pp|xx|\+\+)?$)|((h|H)h?(pp|xx|\+\+)?$))|((ino|pde|proto|cu))$)|^(include|lib)\/.*\.inc)$'

repos:
- repo: https://github.com/pre-commit/mirrors-clang-format
rev: v13.0.1
hooks:
- id: clang-format
32 changes: 21 additions & 11 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -17,16 +17,16 @@ project(KLEE CXX C)
# Project version
###############################################################################
set(KLEE_VERSION_MAJOR 3)
set(KLEE_VERSION_MINOR 0-utbot)
set(KLEE_VERSION_MINOR 0)
set(KLEE_VERSION "${KLEE_VERSION_MAJOR}.${KLEE_VERSION_MINOR}")

# If a patch is needed, we can add KLEE_VERSION_PATCH
# set(KLEE_VERSION_PATCH 0)
# set(KLEE_VERSION "${KLEE_VERSION_MAJOR}.${KLEE_VERSION_MINOR}.${KLEE_VERSION_PATCH}")

message(STATUS "KLEE version ${KLEE_VERSION}")
set(PACKAGE_STRING "\"KLEE ${KLEE_VERSION}\"")
set(PACKAGE_URL "\"https://klee.github.io\"")
message(STATUS "KLEEF version ${KLEE_VERSION}")
set(PACKAGE_STRING "\"KLEEF ${KLEE_VERSION}\"")
set(PACKAGE_URL "\"https://toolchain-labs.com/projects/kleef.html\"")

################################################################################
# Sanity check - Disallow building in source.
Expand Down Expand Up @@ -204,14 +204,19 @@ include(${CMAKE_SOURCE_DIR}/cmake/find_stp.cmake)
include(${CMAKE_SOURCE_DIR}/cmake/find_z3.cmake)
# metaSMT
include(${CMAKE_SOURCE_DIR}/cmake/find_metasmt.cmake)
# bitwuzla
include(${CMAKE_SOURCE_DIR}/cmake/find_bitwuzla.cmake)

if ((NOT ${ENABLE_Z3}) AND (NOT ${ENABLE_STP}) AND (NOT ${ENABLE_METASMT}))

if ((NOT ${ENABLE_Z3}) AND (NOT ${ENABLE_STP}) AND (NOT ${ENABLE_METASMT}) AND (NOT ${ENABLE_BITWUZLA}))
message(FATAL_ERROR "No solver was specified. At least one solver is required."
"You should enable a solver by passing one of more the following options"
" to cmake:\n"
"\"-DENABLE_SOLVER_STP=ON\"\n"
"\"-DENABLE_SOLVER_Z3=ON\"\n"
"\"-DENABLE_SOLVER_METASMT=ON\"")
"\"-DENABLE_SOLVER_BITWUZLA=ON\"\n"
"\"-DENABLE_SOLVER_METASMT=ON\"
")
endif()

###############################################################################
Expand Down Expand Up @@ -473,10 +478,10 @@ endif()
################################################################################
option(ENABLE_FLOATING_POINT "Enable KLEE's floating point extension" OFF)
if (ENABLE_FLOATING_POINT)
if (NOT ${ENABLE_Z3})
if ((NOT ${ENABLE_Z3}) AND (NOT ${ENABLE_BITWUZLA}))
message (FATAL_ERROR "Floating point extension is availible only when using Z3 backend."
"You should enable Z3 by passing the following option to cmake:\n"
"\"-DENABLE_SOLVER_Z3=ON\"\n")
"You should enable either Z3 or Bitwuzla by passing the following options to cmake, respectively:\n"
"\"-DENABLE_SOLVER_Z3=ON\" or \"-DENABLE_SOLVER_BITWUZLA=ON\"\n")
else()
set(ENABLE_FP 1) # For config.h
message(STATUS "Floating point extension enabled")
Expand Down Expand Up @@ -643,6 +648,12 @@ unset(_flags)
configure_file(${CMAKE_SOURCE_DIR}/include/klee/Config/config.h.cmin
${CMAKE_BINARY_DIR}/include/klee/Config/config.h)

################################################################################
# Generate `klee/klee.h` and `klee-test-comp.c`
################################################################################
configure_file(${CMAKE_SOURCE_DIR}/include/klee/klee.h ${CMAKE_BINARY_DIR}/include/klee/klee.h COPYONLY)
configure_file(${CMAKE_SOURCE_DIR}/include/klee-test-comp.c ${CMAKE_BINARY_DIR}/include/klee-test-comp.c COPYONLY)

################################################################################
# Generate `CompileTimeInfo.h`
################################################################################
Expand All @@ -667,8 +678,7 @@ configure_file(${CMAKE_SOURCE_DIR}/include/klee/Config/CompileTimeInfo.h.cmin
################################################################################
include_directories("${CMAKE_BINARY_DIR}/include")
include_directories("${CMAKE_SOURCE_DIR}/include")
include_directories("${CMAKE_SOURCE_DIR}/json/include")
include_directories("${CMAKE_SOURCE_DIR}/optional/include")
include_directories("${JSON_SRC_DIR}/include")
# set(KLEE_INCLUDE_DIRS ${CMAKE_SOURCE_DIR}/include ${CMAKE_BINARY_DIR}/include)

################################################################################
Expand Down
1 change: 1 addition & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ ENV Z3_VERSION=4.8.15
ENV USE_LIBCXX=1
ENV KLEE_RUNTIME_BUILD="Debug+Asserts"
ENV SQLITE_VERSION=3400100
ENV JSON_VERSION=v3.11.3
LABEL maintainer="KLEE Developers"

# TODO remove adding sudo package
Expand Down
28 changes: 5 additions & 23 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,27 +1,9 @@
KLEE Symbolic Virtual Machine
KLEEF Symbolic Virtual Machine
=============================

[![Build Status](https://github.com/klee/klee/workflows/CI/badge.svg)](https://github.com/klee/klee/actions?query=workflow%3ACI)
[![Build Status](https://api.cirrus-ci.com/github/klee/klee.svg)](https://cirrus-ci.com/github/klee/klee)
[![Coverage](https://codecov.io/gh/klee/klee/branch/master/graph/badge.svg)](https://codecov.io/gh/klee/klee)
[![Build Status](https://github.com/UnitTestBot/klee/workflows/CI/badge.svg)](https://github.com/UnitTestBot/klee/actions?query=workflow%3ACI)
[![Coverage](https://codecov.io/gh/UnitTestBot/klee/branch/main/graph/badge.svg)](https://codecov.io/gh/UnitTestBot/klee)

`KLEE` is a symbolic virtual machine built on top of the LLVM compiler
infrastructure. Currently, there are two primary components:
`KLEEF` is a complete overhaul of the KLEE symbolic execution engine for LLVM, fine-tuned for a robust analysis of industrial C/C++ code.

1. The core symbolic virtual machine engine; this is responsible for
executing LLVM bitcode modules with support for symbolic
values. This is comprised of the code in lib/.

2. A POSIX/Linux emulation layer oriented towards supporting uClibc,
with additional support for making parts of the operating system
environment symbolic.

Additionally, there is a simple library for replaying computed inputs
on native code (for closed programs). There is also a more complicated
infrastructure for replaying the inputs generated for the POSIX/Linux
emulation layer, which handles running native programs in an
environment that matches a computed test input, including setting up
files, pipes, environment variables, and passing command line
arguments.

For further information, see the [webpage](http://klee.github.io/).
For further information, see the [webpage](https://toolchain-labs.com/projects/kleef.html).
12 changes: 9 additions & 3 deletions build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -29,24 +29,30 @@ SQLITE_VERSION="3400100"
## LLVM Required options
LLVM_VERSION=14
ENABLE_OPTIMIZED=1
ENABLE_DEBUG=1
ENABLE_DEBUG=0
DISABLE_ASSERTIONS=1
REQUIRES_RTTI=1

## Solvers Required options
# SOLVERS=STP
SOLVERS=STP:Z3
SOLVERS=BITWUZLA:Z3:STP

## Google Test Required options
GTEST_VERSION=1.11.0

## json options
JSON_VERSION=v3.11.3

## UClibC Required options
UCLIBC_VERSION=klee_uclibc_v1.3
# LLVM_VERSION is also required for UClibC

## Z3 Required options
Z3_VERSION=4.8.15

STP_VERSION=2.3.3
MINISAT_VERSION=master

BASE="$BASE" KLEE_RUNTIME_BUILD=$KLEE_RUNTIME_BUILD COVERAGE=$COVERAGE ENABLE_DOXYGEN=$ENABLE_DOXYGEN USE_TCMALLOC=$USE_TCMALLOC USE_LIBCXX=$USE_LIBCXX LLVM_VERSION=$LLVM_VERSION ENABLE_OPTIMIZED=$ENABLE_OPTIMIZED ENABLE_DEBUG=$ENABLE_DEBUG DISABLE_ASSERTIONS=$DISABLE_ASSERTIONS REQUIRES_RTTI=$REQUIRES_RTTI SOLVERS=$SOLVERS GTEST_VERSION=$GTEST_VERSION UCLIBC_VERSION=$UCLIBC_VERSION STP_VERSION=$STP_VERSION MINISAT_VERSION=$MINISAT_VERSION Z3_VERSION=$Z3_VERSION SQLITE_VERSION=$SQLITE_VERSION ./scripts/build/build.sh klee --install-system-deps
BITWUZLA_VERSION=0.3.1

BASE="$BASE" KLEE_RUNTIME_BUILD=$KLEE_RUNTIME_BUILD COVERAGE=$COVERAGE ENABLE_DOXYGEN=$ENABLE_DOXYGEN USE_TCMALLOC=$USE_TCMALLOC USE_LIBCXX=$USE_LIBCXX LLVM_VERSION=$LLVM_VERSION ENABLE_OPTIMIZED=$ENABLE_OPTIMIZED ENABLE_DEBUG=$ENABLE_DEBUG DISABLE_ASSERTIONS=$DISABLE_ASSERTIONS REQUIRES_RTTI=$REQUIRES_RTTI SOLVERS=$SOLVERS GTEST_VERSION=$GTEST_VERSION UCLIBC_VERSION=$UCLIBC_VERSION STP_VERSION=$STP_VERSION MINISAT_VERSION=$MINISAT_VERSION Z3_VERSION=$Z3_VERSION BITWUZLA_VERSION=$BITWUZLA_VERSION SQLITE_VERSION=$SQLITE_VERSION JSON_VERSION=$JSON_VERSION ./scripts/build/build.sh klee --install-system-deps
Loading
Loading