Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
320 commits
Select commit Hold shift + click to select a range
7a4a9b9
Fixed a bug in KLEE libc's implementation of strcmp: according to the…
ccadar Mar 14, 2023
3ef5c9d
[cmake] Use LLVM's CMake functionality only
MartinNowack Feb 23, 2023
66e6504
Use bitcode library paths via config generation instead of `-D` flags
MartinNowack Feb 23, 2023
71dc423
Fix compiler warning with newer compilers
MartinNowack Feb 23, 2023
dd492f8
[MemSan] Mark memory objects modified by syscalls as initialised
MartinNowack Feb 23, 2023
ca60811
Update build scripts
MartinNowack Feb 23, 2023
03fa34c
Add support to disable memsan instrumentation; update UB/Asan suppres…
MartinNowack Feb 23, 2023
38b07e7
Fix building of runtime library and klee-replay
MartinNowack Feb 23, 2023
134571e
Fix uninitialised memory access while reading last path entry
MartinNowack Feb 23, 2023
d811fad
Disable `const_array_opt1` for ubsan as well
MartinNowack Feb 23, 2023
45a958f
Don't fail `KleeStats.c` test if it takes 1s or longer
MartinNowack Feb 23, 2023
2add9ac
Use newer LLVM_DIR config option to build FreeBSD
MartinNowack Feb 23, 2023
c0cdde6
Update Docker build components
MartinNowack Feb 23, 2023
789bf29
Fix script to build all the containers we require for GitHub actions
MartinNowack Feb 23, 2023
02b9b04
Update CI components
MartinNowack Feb 23, 2023
7c68c58
Update KDAlloc unittests
MartinNowack Mar 17, 2023
4d7eb8b
llvm14: Add LLVM 14 to lit.cfg
lzaoral Mar 5, 2022
9c73eb5
llvm14: Add LLVM 14 job to GitHub Actions
lzaoral Mar 5, 2022
4255979
llvm14: TargetRegistry.h was moved from Support to MC
lzaoral Mar 5, 2022
70bf8d0
llvm14: PointerType::getElementType() was deprecated
lzaoral Mar 5, 2022
d79d048
llvm14: port test/Feature/VarArgByVal.c to LLVM 14
lzaoral Mar 18, 2023
d9da9ea
ConstantArrayExprVisitor: Deduplicate `visitConcat` and `visitRead`
lzaoral Apr 17, 2022
1398e96
ConstantArrayExprVisitor: Fix detection of multiple array indices
lzaoral Apr 17, 2022
5c8610e
Explicitly check if 32bit support is enabled for testing
MartinNowack Mar 20, 2023
6b21755
Handle fail of KLEE gracefully
MartinNowack Mar 21, 2023
61d1251
Fixed typo
MartinNowack Mar 21, 2023
9020563
klee-stats: improve error message for missing tabulate package
251 Mar 15, 2023
8dcd69d
Remove hard to understand and debug pcregrep test
ccadar Mar 22, 2023
3a0e434
Require minimal version of CMake 3.16 for KLEE
MartinNowack Mar 22, 2023
318c637
use C++17
jbuening Aug 28, 2020
5607a7f
Change `llvm_map_components_to_libnames` to `llvm_config` CMake function
MartinNowack Mar 22, 2023
a520502
STP: add option to switch SAT solver: --stp-sat-solver and set defaul…
251 Mar 17, 2023
9437621
Added more test cases for --entry-point. EntryPointMissing is current…
ccadar Mar 21, 2023
91468cf
Run KDAlloc/rusage unittest a few times to allow for swapfile interfe…
danielschemmel Mar 22, 2023
a91be77
remove obsolete header
danielschemmel Mar 22, 2023
fc3c937
stats: add InhibitedForks
251 Jan 7, 2022
7b881cd
stats: add QCacheHits/Misses
251 Jan 7, 2022
895f095
stats: add ExternalCalls
251 Jan 7, 2022
855d331
stats: rename numQueries/Queries -> SolverQueries, add Queries
251 Jan 7, 2022
a88a768
stats: add Allocations
251 Jan 7, 2022
ba58e4a
stats: rename States -> ActiveStates, add States
251 Jan 7, 2022
4749068
stats: add branch type stats
251 Jan 7, 2022
a6f0612
tests: add Feature/KleeStatsBranches.c
251 Jan 10, 2022
3a1965c
stats: add termination class stats
251 Jan 11, 2022
58d4546
tests: add Feature/KleeStatsTermClasses.c
251 Jan 11, 2022
0ca2dc8
Remove model_version from the POSIX runtime, as we have never used it.
ccadar Mar 21, 2023
76f0573
fix unused variable warning
danielschemmel Mar 22, 2023
c9ce3b4
Transition to GitHub Container Registry hosting
MartinNowack Mar 23, 2023
721b2fc
Fix detection and installation of Ubuntu-provided llvm/clang packages
MartinNowack Mar 23, 2023
7c9ce86
fix unused variables warning
danielschemmel Mar 24, 2023
67ec447
tests: add some missing headers
251 Mar 24, 2023
89ebbb9
(gcc-13) include cstdint for *int*_t
Mar 22, 2023
dfd2aea
Core/Executor: long double on i686 must be aligned to 4 bytes
lzaoral Mar 25, 2023
13cfabb
ci(lint): add shell linter - Differential ShellCheck
jamacku Sep 11, 2022
66e1044
fix CMake: -UNDEBUG
jbuening Mar 29, 2023
2aa5b7b
Prevent fallthrough warning
danielschemmel Mar 24, 2023
a46b805
remove include/klee/Support/IntEvaluation.h
danielschemmel Mar 23, 2023
2769f1f
Mark variable as potentially unused
MartinNowack Mar 27, 2023
81ff90b
Support disabling compiler warnings; Use with external headers
MartinNowack Mar 27, 2023
0bef049
Use newer C++ standard for KLEE's iterators; fixes deprecation warning
MartinNowack Mar 27, 2023
16010c1
Disable "disabling of warnings" for LLVM >= 14
MartinNowack Mar 31, 2023
896c652
Modify name of variables in generated cvc files.
Sep 7, 2019
02b5254
ci: run ShellCheck on `*.inc` shell scripts
jamacku Apr 6, 2023
adfca64
change some obsolete KDAlloc comments
jbuening Apr 1, 2023
46ea4a4
use `std::mt19937` instead of the custom implementation
danielschemmel Mar 23, 2023
270ced8
remove unused rng adaptor functions
danielschemmel Mar 23, 2023
ccf40f5
ensure that the right mt19937 constructor is chosen during overload r…
danielschemmel Apr 20, 2023
f463da0
Remove additional quotation marks
MartinNowack Apr 20, 2023
4ccb3fe
use unique_ptr in STPSolverImpl
danielschemmel Mar 24, 2023
ad61b67
use unique_ptr in ValidatingSolver
danielschemmel Mar 24, 2023
9953e99
use unique_ptr in Z3SolverImpl
danielschemmel Mar 24, 2023
3a8fe1c
use unique_ptr in StagedSolverImpl
danielschemmel Mar 24, 2023
b0f6456
use unique_ptr in CachingSolver
danielschemmel Mar 24, 2023
ae0fd16
use unique_ptr in AssignmentValidatingSolver
danielschemmel Mar 24, 2023
421319a
use unique_ptr in CexCachingSolver
danielschemmel Mar 24, 2023
dab8f98
use unique_ptr in IndependentSolver
danielschemmel Mar 24, 2023
4d59fe9
use unique_ptr in QueryLoggingSolver
danielschemmel Mar 24, 2023
e9d77be
use unique_ptr in Solver
danielschemmel Mar 24, 2023
ac0fa15
use unique_ptr all throughout the solver chain
danielschemmel Mar 24, 2023
8795286
Replaced "-data" and "-stat" by "_data" and "_stat" in the ktest-(ran…
ccadar Apr 19, 2023
edfa29e
Tests: replaced "-data" and "-stat" by "_data" and "_stat" for consis…
ccadar Apr 19, 2023
8500a81
Cleaned up and updated codecov file.
ccadar Apr 21, 2023
7667c5c
Use unique_ptr for MemoryManager and avoid re-creating it in the firs…
MartinNowack May 16, 2023
43be111
Write `Control::meta` in C++17 style
danielschemmel May 19, 2023
5e63e1c
prevent assertions from failing unnecessarily
danielschemmel May 19, 2023
edda465
Add `getSize` primitive to kdalloc
danielschemmel May 19, 2023
d46bbdd
Add `getMapping` primitive to allocator directly
danielschemmel May 19, 2023
2833e66
Improve error message when KDAlloc fails to create a mapping
danielschemmel May 19, 2023
8600ab9
Improve LOH deallocation scheme
danielschemmel May 19, 2023
c588b95
add unsized free to kdalloc
danielschemmel May 19, 2023
6d8c05c
Refactored and fixed the code dealing with the entry point.
ccadar Mar 14, 2023
d3db14c
Some basic refactoring and pass through comments. In particular, it …
ccadar Mar 16, 2023
1a087c7
Copy stats to test directory when running tests
danielschemmel May 26, 2023
e9eaa77
CMake: remove unused TARGET_LIBS variable
jbuening May 29, 2023
e3c626b
CMake: remove obsolete KLEE_COMPONENT_EXTRA_LIBRARIES
jbuening May 29, 2023
182cc7a
CMake: remove obsolete comments
jbuening May 29, 2023
4ed6271
docs/CMakeLists.txt: drop support for old CMake versions
jbuening May 29, 2023
a272d02
README-CMake.md: clean up top-level targets
jbuening May 29, 2023
162f212
CMake: use built-in FindSQLite3 module
jbuening May 29, 2023
caeafa4
doxygen.cfg.in: DOXYGEN_OUTPUT_DIR
jbuening May 29, 2023
a166502
.clang-format: c++17
jbuening Apr 14, 2023
58fb505
config.h: include FSTATAT_PATH_ACCEPTS_NULL
jbuening May 29, 2023
5eca7f3
CMake: use check_c_source_compiles() for FSTATAT_PATH_ACCEPTS_NULL
jbuening May 29, 2023
3c42e21
also check for default CHECK directive in ArrayOpt Tests
fwc Apr 2, 2023
d3aee9c
fix BatchingSearcher's disabled time budget
jbuening Apr 11, 2020
2e4bb29
make BatchingSearcher more readable
jbuening May 29, 2023
0a240e5
re-enable StackTraceOutput.c test
jbuening May 29, 2023
a39348b
test/Feature/StackTraceOutput.c: relative checks, clang-format
jbuening May 29, 2023
a1edff4
Further improve KDAlloc memory usage with infinite quarantine
danielschemmel May 25, 2023
4417ff3
ktest-gen: remove unused function
251 Jun 5, 2023
ae071d8
unittests/CMakeLists.txt: gtest check for LLVM 13+
jbuening Apr 2, 2023
ae1ee27
unittests/CMakeLists.txt: fix LLVM find_package support
jbuening May 28, 2023
43414c9
unittests/CMakeLists.txt: remove obsolete policy
jbuening Apr 2, 2023
077f891
unittests/CMakeLists.txt: no UNITTEST_MAIN_LIBS
jbuening Apr 2, 2023
e10d366
unittests/CMakeLists.txt: do not echo GTEST_SRC_DIR on error
jbuening May 28, 2023
a31d200
unittests/CMakeLists.txt: set gtest include dir only if necessary
jbuening May 28, 2023
b07fcca
Use recommended LLVM 13 as part of the Docker image
MartinNowack Jun 7, 2023
29ccb31
Build and push Docker image as part of a release
MartinNowack Jun 7, 2023
d4ad01e
Fixed end date in the 2.3 release notes
ccadar May 20, 2023
ed31a44
Set version number to 3.0
ccadar Jun 7, 2023
dfa53ed
Release notes for KLEE 3.0
ccadar May 26, 2023
6a0448e
Changed version to 3.1-pre
ccadar Jun 7, 2023
b926b3d
Fixed a format specifier pointed to by a compiler warning.
ccadar Jun 9, 2023
f3a4b34
fix ktest-randgen: use after free
jbuening Jun 11, 2023
dab1c0f
SpecialFunctionHandler: use std::array for handlerInfo
jbuening Jun 11, 2023
c10e9e9
Rewrote has_permission in the POSIX runtime. We now only return with…
ccadar Jun 9, 2023
79f75a4
Improved help message for --exit-on-error-type=Abort
ccadar Jun 23, 2023
4cd34bd
Fixed a couple of spelling issues in the help menu
ccadar Jun 23, 2023
d54695e
Remove parentheses around klee_ intrinsics from the help menu
ccadar Jun 23, 2023
8b799c5
Consistently use ".ktest" when referring to .ktest files in the help …
ccadar Jun 23, 2023
ca0d095
RefTest: suppress -Wself-move
jbuening Jun 22, 2023
c699cc5
Perform location_info tests in KDAlloc's random test
danielschemmel Jun 29, 2023
b374f04
rename Allocator::location_info to Allocator::locationInfo for
danielschemmel Jun 29, 2023
3734251
Have CoWPtr::get and CoWPtr::getOwned return pointers instead of refe…
danielschemmel Jun 29, 2023
1fb67ef
Implement getLocationInfo in the same style as getSize
danielschemmel Jun 29, 2023
c8acc60
Using std::memcpy prevents alignment problems and removes an unnecess…
danielschemmel Jun 28, 2023
3034ae5
Combine all `ConstantExpr::toMemory` cases into one.
danielschemmel Jun 28, 2023
125fb26
Simplify KDAlloc tests
danielschemmel Jun 28, 2023
8ad9f2a
remove timings from kdalloc tests
danielschemmel Jul 5, 2023
9cb9fd5
Replaced --suppress-external-warnings and --all-external-warnings wit…
ccadar Jun 23, 2023
974f140
Move some options to the klee namespace and declare them in OptionCat…
ccadar Jul 7, 2023
7082eaf
Add code to only keep in the --help menu the KLEE/Kleaver option cate…
ccadar Jun 23, 2023
9912da3
Remove broken experimental optimisation for validity (--cex-cache-exp)
ccadar Aug 18, 2023
2e393db
Changed use-after-free and double-free tests to expect KDAlloc, plus …
ccadar Aug 18, 2023
9edf8e8
Make KDAlloc the default memory allocator
ccadar Aug 18, 2023
fc83f06
replace deprecated (as of c++20) std::is_pod with std::trivial && std…
danielschemmel Oct 17, 2023
19b6ae5
new: persistent ptree (-write-ptree) and klee-ptree
251 Mar 24, 2023
5ca8f5a
SearcherTest: remove redundant root init, fix branch type
251 Mar 30, 2023
2c8b74c
Rename files from PTree to ExecutionTree (and similar)
ccadar Dec 14, 2023
3fa03d1
Renamed PTree to ExecutionTree (and similar)
ccadar Dec 22, 2023
ad0daf5
Feature: implement single memory object resolution for symbolic addre…
tkuchta Oct 12, 2023
5ea5d43
Follow-up: applied review comments, implemented meta-data cleanup (on…
tkuchta Nov 17, 2023
f42931a
Make test more deterministic
tkuchta Nov 17, 2023
dd4bf4c
Remove check for the number of solver queries
tkuchta Dec 9, 2023
72b6207
Switch to FreeBSD 14 and 13.2; Use LLVM 13
MartinNowack Jan 30, 2024
cbf10db
Concretize constants using seed values, when available. Added two te…
ccadar Oct 20, 2023
251b28e
Concretize arguments to external function calls using seeds, if avail…
ccadar Oct 20, 2023
9d5bbe8
On a symbolic allocation, retrieve size from a seed, if available
ccadar Oct 20, 2023
4e99f8f
Refactored some code related to seeding.
ccadar Nov 8, 2023
513de04
Removed --zero-seed-extension, and merge it with --allow-seed-extensi…
ccadar Nov 8, 2023
3f65d6e
Added a test for --allow-seed-extension
ccadar Nov 8, 2023
3e006db
Add checks to the seed concretization tests about the expected number…
ccadar Nov 14, 2023
42662b7
Make Assignment::evaluate be const
ccadar Nov 22, 2023
cb5e898
Modify getValueFromSeeds() to include more functionality and simplify…
ccadar Nov 30, 2023
f813c88
Avoid generating array names in solver builders that could accidently…
MartinNowack Nov 20, 2023
3ca81c2
Change `GetConstraintLog` to work with `std::string`s instead of `cha…
danielschemmel Oct 29, 2023
2b07721
Add support to build newer LLVM versions
MartinNowack Oct 12, 2023
fa3719d
MERGE libc++ build system
MartinNowack Feb 5, 2024
f27b748
Add support for newer `libc++`; Simplify path detection
MartinNowack Oct 12, 2023
ef4b8d8
Replace `%libcxx_include` with `%libcxx_includes` for multi-include d…
MartinNowack Oct 12, 2023
db6381e
Fix `klee-libc/memchr.c` compiler warning
MartinNowack Oct 12, 2023
2b75ab2
Fix `klee_eh_cxx.cpp` compiler error
MartinNowack Oct 12, 2023
2a75a6d
Refactor invocation of old pass manager into legacy function
MartinNowack Oct 12, 2023
5371eb8
Use KLEE's uClibc v1.4 as default to support the compilation with new…
MartinNowack Oct 29, 2023
f9cb81f
Assume C compiler's default standard is `-std=gnu17`
MartinNowack Oct 30, 2023
bdc30e5
Explicitly build KLEE's exception handling runtime with C++11
MartinNowack Oct 30, 2023
44a38ba
Explicitly enable opaque pointer support for LLVM 15
MartinNowack Oct 30, 2023
657f961
Add support for opaque pointers
MartinNowack Oct 30, 2023
670ea6b
Fix test cases to support opaque pointers
MartinNowack Oct 30, 2023
5409532
Fix test case: using unsupported `CHECK_NEXT` instead of `CHECK-NEXT`
MartinNowack Oct 30, 2023
e9774bb
Use APIs of newer LLVM versions instead of unsupported ones
MartinNowack Oct 30, 2023
157a0c5
Add support for `Intrinsic::get_rounding` for LLVM 16
MartinNowack Oct 30, 2023
01af1ca
Add support to `aligned_alloc` generated by LLVM
MartinNowack Oct 30, 2023
c4f1634
Disable unsupported passes for newer LLVM versions
MartinNowack Oct 30, 2023
5da5cf4
Disable `2018-10-30-llvm-pr39177.ll` for newer LLVM versions.
MartinNowack Oct 30, 2023
cd08132
Handle check for thrown libc++ exceptions more general
MartinNowack Oct 30, 2023
3906c47
Update test case for expressions using `udiv`, `urem`, `sdiv` and `srem`
MartinNowack Oct 30, 2023
f3ef054
Support newer LLVM versions in `lit`
MartinNowack Oct 30, 2023
371cb97
Enable CI to test newer LLVM versions
MartinNowack Oct 30, 2023
3cc09b6
Use `std::` namespace for `uint64_t`
MartinNowack Feb 5, 2024
2ad2aef
Mention default value in help text for `--strip-all` and `--strip-debug`
MartinNowack Feb 5, 2024
9336cd2
Add space between include and main function for updated test cases
MartinNowack Feb 5, 2024
c966cc6
Fix brittleness in Feature/VarArgByVal test
danielschemmel Feb 9, 2024
325c6cd
drop llvm 9 and 10
danielschemmel Feb 1, 2024
df8a738
Fixed incorrect reference in ExternalCallWarnings
ccadar Feb 16, 2024
7679d0b
Remove the not Darwin requirement for the test TargetMismatch.c
ccadar Feb 16, 2024
38c0f67
Rename --ptree-batch-size to --exec-tree-batch size, and --compress-e…
ccadar Feb 16, 2024
8585874
Two test cases exercising two policies for calling external calls wit…
ccadar Feb 17, 2024
a802c6d
This commit fixes the concretization of arguments following an extern…
ccadar Feb 17, 2024
7a640c6
Extend toConstant() to take an additional boolean argument that decid…
ccadar Feb 22, 2024
b0261e0
Simplified callExternalFunction by using toConstant instead of getValue
ccadar Feb 22, 2024
399ea40
Small refactorings and reformatting in callExternalFunction
ccadar Feb 22, 2024
a01f46c
Compare LLVM_VERSION_SHORT to "140" rather than "14".
sp1ff Feb 28, 2024
3250b73
Set version number to 3.1
ccadar Feb 23, 2024
7b8edeb
Release notes for KLEE 3.1
ccadar Feb 23, 2024
279be1d
Test case for externally concretized variables and constraint fully s…
MartinNowack Jun 7, 2021
a4d9762
Correctly update symbolic variables that have been changed externally
MartinNowack Jun 7, 2021
8750da6
Use correctly constrained constants if the memory object is fully sym…
MartinNowack Jun 7, 2021
46b4c48
Refactor `ObjectState::flushToConcreteStore` to use `toConstant`
MartinNowack Feb 27, 2024
2cae553
Support external call concretisation policies for referenced objects
MartinNowack Feb 27, 2024
76a2ade
Add support to fully concretise objects if modified externally
MartinNowack Feb 27, 2024
fe22b90
Final changes to release notes for v3.1
ccadar Feb 29, 2024
a864870
Setting version to 3.2-pre
ccadar Feb 29, 2024
c7873a1
Remove FreeBSD 13.2 from CirrusCI, as the image does not seem to be a…
ccadar Mar 4, 2024
56b3b23
New domain name klee-se.org, updating links.
ccadar Mar 10, 2024
f4f1409
TARGET_TRIPLE was renamed to LLVM_TARGET_TRIPLE since LLVM 15
ccadar Mar 3, 2024
9447132
add pythonpath to lit forwarded env vars
danielschemmel Mar 2, 2024
7c94542
Addressed missing override warnings emitted by recent compilers
ccadar Mar 3, 2024
37e1fa0
Workaround for MSan failures due to https://github.com/llvm/llvm-proj…
ccadar Mar 20, 2024
a4b81ec
Move klee-stats tests into test/klee-stats
ccadar Mar 15, 2024
004d218
Adjust klee-stats tests to run in the test/klee-stats directory
ccadar Mar 15, 2024
87dd937
Move klee-exec-tree tests in a separate directory, test/klee-exec-tree
ccadar Mar 15, 2024
27a6646
Renamed test/Expr to test/kleaver and move ReadExprConsistency.c to t…
ccadar Mar 15, 2024
d5347d2
Switch to LLVM 13 as the default version in the CI
ccadar Mar 3, 2024
b0868d5
ci: add shellcheckrc
jamacku Apr 18, 2024
e3173d3
ci: update Differential ShellCheck to v5
jamacku Apr 18, 2024
cc7f3ff
ci: update actions/checkout to v4
jamacku Apr 18, 2024
7cc669b
Add handler for _Exit(3)
fwc Apr 17, 2024
56016c0
Install lit and tabulate via brew on macOS
ccadar May 16, 2024
5463df0
Use LLVM 14 for the macOS CI target
ccadar May 16, 2024
7b33e28
Fix/update LLVM path on macOS
ccadar May 16, 2024
10f0460
Fix test case that currently fails on Apple Silicon, where sizeof(lon…
ccadar May 25, 2024
7fd16c1
Inline assembly is not supported on Apple Silicon, so disabling these…
ccadar Jun 1, 2024
1cfdab4
Moving inline assembly tests to a separate directory
ccadar Jun 1, 2024
a575cdf
Moved variable argument tests to separate directory
ccadar Jun 1, 2024
89dd0fd
Variadic functions are not currently supported on Apple Silicon
ccadar Jun 1, 2024
53ef455
The test currently fails on the macOS version used in the CI: the com…
ccadar Jun 1, 2024
e83c1bf
Move test/Feature/ubsan to test/UBSan as for the tests of other features
ccadar Jun 1, 2024
4245405
Add support for x86_64 and arm targets to lit testing
ccadar Jun 10, 2024
58e558c
Mark inline assembly tests as requiring x86_64
ccadar Jun 10, 2024
4bc3d0e
Mark variadic argument tests as requiring x86_64
ccadar Jun 10, 2024
1f0e864
Update Python installation for FreeBSD on CirrusCI
ccadar Jun 10, 2024
ad557cb
Upgrade to FreeBSD 15 on CirrusCI
ccadar Jun 11, 2024
26632f1
Fixed bug that disabled the CI tests for the Linux targets
ccadar Jun 12, 2024
cdd3f4e
fix(klee-replay): add missing `<limits.h>` includes
May 24, 2024
d4e380a
Specialize the build for some expensive components for Arch & Debian.
sp1ff Feb 28, 2024
6e2efd1
Whitespace fix
sp1ff Mar 23, 2024
f6d4fef
Add option to generate XML test cases
misonijnik Jul 9, 2024
a72fa35
Fixup
misonijnik Jul 9, 2024
db152fe
Fixup
misonijnik Jul 10, 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
  •  
  •  
  •  
9 changes: 4 additions & 5 deletions .cirrus.yml
Original file line number Diff line number Diff line change
@@ -1,18 +1,17 @@
task:
freebsd_instance:
matrix:
- image_family: freebsd-12-2-snap
- image_family: freebsd-13-0-snap
- image_family: freebsd-15-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 llvm90 gmake z3 cmake pkgconf google-perftools python3 py38-sqlite3 py38-tabulate
- env ASSUME_ALWAYS_YES=yes pkg install -y llvm13 gmake z3 cmake pkgconf google-perftools python311 py311-sqlite3 py311-tabulate
build_script:
- mkdir build
- cd build
- cmake -DLLVM_CONFIG_BINARY=/usr/local/bin/llvm-config90 -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 -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\./lit90\./' test/lit.cfg
- sed -i.bak -e 's/lit\./lit13\./' test/lit.cfg
- cd build
- gmake check
4 changes: 2 additions & 2 deletions .clang-format
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
---
BasedOnStyle: LLVM
Standard: Cpp11
BasedOnStyle: LLVM
Standard: c++17
...
9 changes: 5 additions & 4 deletions .codecov.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,21 +2,22 @@ codecov:
disable_default_path_fixes: true

coverage:
range: 70...90
precision: 2
round: down
status:
project: no
patch: yes
changes: no
precision: 2
round: down
range: "70...100"

fixes:
- "/tmp/klee_src::"

ignore:
- "usr/"
- "test/"
- "unittests"
- "**/test-utils"

comment:
layout: "header, diff, changes, uncovered, tree"
behavior: default
4 changes: 2 additions & 2 deletions .github/ISSUE_TEMPLATE/question.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@ assignees: ''
---

To ask a question about KLEE:
1. Please first check the documentation at http://klee.github.io/docs/
1. Please first check the documentation at https://klee-se.org/docs/
2. Then check the [searchable mailing list archive](https://www.mail-archive.com/[email protected]/)
3. If this still doesn’t answer your questions then please send an email to the [klee-dev mailing list](http://klee.github.io/klee-dev/)
3. If this still doesn’t answer your questions then please send an email to the [klee-dev mailing list](https://klee-se.org/klee-dev/)

**We will normally not answer questions asked on GitHub.**
2 changes: 1 addition & 1 deletion .github/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<!--
Thank you for contributing to KLEE. We are looking forward to reviewing your PR. However, given the small number of active reviewers and our limited time, it might take a while to do so. We aim to get back to each PR within one month, and often do so within one week.

To review your PR, please add a summary of the proposed changes and ensure all items are fulfilled in the checklist above, by placing an "x" inside each applicable pair of brackets. More details about each item can be found in the [Developer's Guide](https://klee.github.io/docs/developers-guide/#pull-requests).
To review your PR, please add a summary of the proposed changes and ensure all items are fulfilled in the checklist above, by placing an "x" inside each applicable pair of brackets. More details about each item can be found in the [Developer's Guide](https://klee-se.org/docs/developers-guide/#pull-requests).
-->

## Summary:
Expand Down
133 changes: 72 additions & 61 deletions .github/workflows/build.yaml
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
---
name: CI

on:
Expand All @@ -8,113 +9,101 @@ on:

# Defaults for building KLEE
env:
BASE_IMAGE: ubuntu:bionic-20200807
REPOSITORY: klee
BASE_IMAGE: ubuntu:jammy-20230126
REPOSITORY: ghcr.io/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
LLVM_VERSION: 13
MINISAT_VERSION: "master"
REQUIRES_RTTI: 0
SOLVERS: STP:Z3
STP_VERSION: 2.3.3
TCMALLOC_VERSION: 2.7
UCLIBC_VERSION: klee_uclibc_v1.2
TCMALLOC_VERSION: 2.9.1
UCLIBC_VERSION: klee_uclibc_v1.4
USE_TCMALLOC: 1
USE_LIBCXX: 1
Z3_VERSION: 4.8.14
Z3_VERSION: 4.8.15
SQLITE_VERSION: 3400100

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",
]
"LLVM 16",
"LLVM 15",
"LLVM 14",
"LLVM 13, Doxygen",
"LLVM 12",
"LLVM 11",
"ASan",
"UBSan",
"MSan",
"Z3 only",
"metaSMT",
"STP master",
"Latest klee-uclibc",
"Asserts disabled",
"No TCMalloc, optimised runtime",
]
include:
- name: "LLVM 13"
- name: "LLVM 16"
env:
LLVM_VERSION: 16
- name: "LLVM 15"
env:
LLVM_VERSION: 15
- name: "LLVM 14"
env:
LLVM_VERSION: 14
- name: "LLVM 13, Doxygen"
env:
LLVM_VERSION: 13
ENABLE_DOXYGEN: 1
- name: "LLVM 12"
env:
LLVM_VERSION: 12
- name: "LLVM 11, Doxygen"
- name: "LLVM 11"
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
# 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
SANITIZER_LLVM_VERSION: 13
- name: "UBSan"
env:
SANITIZER_BUILD: undefined
ENABLE_OPTIMIZED: 0
USE_TCMALLOC: 0
SANITIZER_LLVM_VERSION: 11
SANITIZER_LLVM_VERSION: 13
- name: "MSan"
env:
SANITIZER_BUILD: memory
ENABLE_OPTIMIZED: 0
USE_TCMALLOC: 0
SOLVERS: STP
SANITIZER_LLVM_VERSION: 11
# Test just using Z3 only
SANITIZER_LLVM_VERSION: 14
# Test just using Z3 only
- name: "Z3 only"
env:
SOLVERS: Z3
# Test just using metaSMT
- name: "metaSMT STP"
- name: "metaSMT"
env:
METASMT_VERSION: qf_abv
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:
Expand All @@ -125,7 +114,7 @@ jobs:
env:
UCLIBC_VERSION: klee_0_9_29
# Check at least one build with Asserts disabled.
- name: "Asserts enabled"
- name: "Asserts disabled"
env:
SOLVERS: STP
DISABLE_ASSERTIONS: 1
Expand All @@ -136,16 +125,19 @@ jobs:
KLEE_RUNTIME_BUILD: "Release+Debug+Asserts"
steps:
- name: Checkout KLEE source code
uses: actions/checkout@v2
uses: actions/checkout@v4
- 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
run: | # XXX: Workaround for https://github.com/llvm/llvm-project/issues/78354
sudo sysctl vm.mmap_rnd_bits=28
scripts/build/run-tests.sh --run-docker --debug

macOS:
runs-on: macos-latest
env:
LLVM_VERSION: 14
BASE: /tmp
SOLVERS: STP
UCLIBC_VERSION: 0
Expand All @@ -155,7 +147,7 @@ jobs:
- name: Install newer version of Bash
run: brew install bash
- name: Checkout KLEE source code
uses: actions/checkout@v2
uses: actions/checkout@v4
- name: Build KLEE
run: scripts/build/build.sh klee --debug --install-system-deps
- name: Run tests
Expand All @@ -165,19 +157,38 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout KLEE Code
uses: actions/checkout@v2
uses: actions/checkout@v4
- name: Build Docker image
run: docker build .

Coverage:
runs-on: ubuntu-latest
strategy:
matrix:
name: [
"STP",
"Z3",
]
include:
- name: "STP"
env:
SOLVERS: STP:Z3
- name: "Z3"
env:
SOLVERS: Z3
env:
ENABLE_OPTIMIZED: 0
COVERAGE: 1
steps:
- name: Checkout KLEE source code
uses: actions/checkout@v2
uses: actions/checkout@v4
with:
# Codecov may run into "Issue detecting commit SHA. Please run
# actions/checkout with fetch-depth > 1 or set to 0" when uploading.
# See also https://github.com/codecov/codecov-action/issues/190
fetch-depth: 2
- 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 --coverage --upload-coverage --run-docker --debug
32 changes: 32 additions & 0 deletions .github/workflows/differential-shellcheck.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
# Doc: https://github.com/redhat-plumbers-in-action/differential-shellcheck#usage
---

name: Differential ShellCheck
on:
push:
branches: [master]
pull_request:
branches: [master]

permissions:
contents: read

jobs:
lint:
runs-on: ubuntu-latest

permissions:
security-events: write

steps:
- name: Repository checkout
uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Differential ShellCheck
uses: redhat-plumbers-in-action/differential-shellcheck@v5
with:
severity: warning
include-path: scripts/**.inc
token: ${{ secrets.GITHUB_TOKEN }}
34 changes: 34 additions & 0 deletions .github/workflows/docker_release_push.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
name: Publish Docker Image for Release Builds

on:
release:
types: [published]

jobs:
push_to_registry:
name: Push Docker Image to Docker Hub
runs-on: ubuntu-latest
steps:
- name: Check out the repo
uses: actions/checkout@v4

- name: Log in to Docker Hub
uses: docker/login-action@f4ef78c080cd8ba55a85445d5b36e214a81df20a
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}

- name: Extract metadata (tags, labels) for Docker
id: meta
uses: docker/metadata-action@9ec57ed1fcdbf14dcef7dfbe97b2010124a938b7
with:
images: klee/klee

- name: Build and push Docker image
uses: docker/build-push-action@3b5e8027fcad23fda98b2e3ac259d8d67585f671
with:
context: .
file: ./Dockerfile
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
3 changes: 3 additions & 0 deletions .shellcheckrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# Tell ShellCheck to use bash when checking scripts
# This is alternative for disable=SC2148
shell=bash
Loading