Installation
Docker container
A prebuilt container image is available on Docker Hub. You can pull and launch it with:
$ docker run -ti --rm ercoppa/fuzzolic-runner-v1
Manual build
Fuzzolic and fuzzy-sat have been tested on Ubuntu 18.04/20.04 x86_64. A manual installation requires to build:
our custom fork of Z3
fuzzy-sat
fuzzolic tracer based on QEMU
fuzzolic solver frontend
AFL++
Some of these dependencies are included as submodules, hence to build fuzzolic you first need to fetch them:
$ git submodule sync && git submodule update --init
$ cd solver/fuzzy-sat && git fetch && git submodule sync && git submodule update --init
Step-by-step instructions for compiling these components can be found inside the Dockerfile
.
Running tests
To test your installation of fuzzolic and fuzzy-sat, you can run some tests from the root of project:
$ cd tests
$ make run
The expected output should be similar to:
Running tests using SMT solver
============================= test session starts ==============================
platform linux -- Python 3.6.9, pytest-6.2.1, py-1.10.0, pluggy-0.13.1
rootdir: /home/ubuntu/fuzzolic/tests
collected 14 items
run.py .............. [100%]
============================= 14 passed in 16.04s ==============================
Running tests using Fuzzy-SAT solver
============================= test session starts ==============================
platform linux -- Python 3.6.9, pytest-6.2.1, py-1.10.0, pluggy-0.13.1
rootdir: /home/ubuntu/fuzzolic/tests
collected 14 items
run.py .............. [100%]
============================= 14 passed in 15.98s ==============================
The number of executed tests and the running time may differ.