Fuzzer and generator for string and regex problems in SMT-LIB 2.x format.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
bin
stringfuzz
tests
.gitignore
LICENSE
Makefile
README.md
setup.py

README.md

Description

A collection of tools to manipulate and generate SMT-LIB 2.x problem instances. There are four main tools:

  • stringfuzzg to generate new instances
  • stringfuzzx to transform existing instances
  • stringstats to measure properties of instances
  • stringmerge to merge several instances into one

Installing

Clone this repository, and run this command inside it:

python3 setup.py install

Running

Without installing, the scripts can be run from the repository root as follows:

./bin/stringfuzzg --help
./bin/stringfuzzx --help
./bin/stringstats --help

If installed, they can be run from anywhere as follows:

stringfuzzg --help
stringfuzzx --help
stringstats --help

Examples

To create a problem with concats nested 100 levels deep:

./bin/stringfuzzg concats --depth 100

To create the above problem and replace all characters with unprintable ones:

./bin/stringfuzzg concats --depth 100 | ./bin/stringfuzzx unprintable

To create and immediately feed a problem to Z3str3:

./bin/stringfuzzg concats --depth 100 | z3str3 -in