makes fuzz tests as easy as unit tests
Docs | Glossary | Examples | Website | Blog | Twitter | YouTube
IMPORTANT: This project is under active development. Be aware that the behavior of the commands or the configuration can change.
cifuzz is a CLI tool that helps you to integrate and run fuzzing based tests into your project.
- Easily set up, create and run fuzz tests
- Generate coverage reports that can be integrated in your IDE
- Supports multiple programming languages and build systems
All you need to get started with fuzzing are these three simple commands:
$ cifuzz init # initialize your project
$ cifuzz create # create a simple fuzz test to start from
$ cifuzz run myfuzztest # run the fuzz test
If you are new to the world of fuzzing, we recommend you to take a look at our Glossary and our example projects.
Read the getting started guide if you just want to learn how to fuzz your applications with cifuzz.
You can get the latest release from GitHub or by running our install script:
sh -c "$(curl -fsSL https://raw.githubusercontent.com/CodeIntelligenceTesting/cifuzz/main/install.sh)"
If you are using Windows you can download the latest release and execute it.
Do not forget to add the installation's bin
directory to your PATH
.
You can find additional information in our Installation Guide.
Depending on your language / build system of choice cifuzz has different prerequisites:
C/C++ with CMake
Ubuntu / Debian
sudo apt install cmake clang llvm
Arch
sudo pacman -S cmake clang llvm
macOS
brew install cmake llvm lcov
Windows
At least Visual Studio 2022 version 17 is required.
choco install cmake llvm
C/C++ with Bazel
- Bazel >= 5.3.2
- Java JDK >= 8 (e.g. OpenJDK or Zulu) is needed for Bazel's coverage feature.
- LLVM >= 11
- lcov
Ubuntu / Debian
sudo apt install clang llvm lcov default-jdk zip
# install bazelisk
sudo curl -L https://github.com/bazelbuild/bazelisk/releases/latest/download/bazelisk-linux-amd64 -o /usr/local/bin/bazel
sudo chmod +x /usr/local/bin/bazel
Arch
sudo pacman -S clang llvm lcov python jdk-openjdk zip
# install bazelisk
sudo curl -L https://github.com/bazelbuild/bazelisk/releases/latest/download/bazelisk-linux-amd64 -o /usr/local/bin/bazel
sudo chmod +x /usr/local/bin/bazel
macOS
brew install llvm lcov openjdk bazelisk zip
Windows
At least Visual Studio 2022 version 17 is required.
choco install cmake llvm microsoft-openjdk bazelisk zip
Java with Maven
Ubuntu / Debian
sudo apt install default-jdk maven
Arch
sudo pacman -S jdk-openjdk maven
macOS
brew install openjdk maven
Windows
choco install microsoft-openjdk maven
Java with Gradle
Ubuntu / Debian
sudo apt install default-jdk gradle
Arch
sudo pacman -S jdk-openjdk gradle
macOS
brew install openjdk gradle
Windows
choco install microsoft-openjdk gradle
Want to help improve cifuzz? Check out our contributing documentation. There you will find instructions for building the tool locally.
If you find an issue, please report it on the issue tracker.