Running Fuzzers

Now that the fuzz target is defined, we want to execute the test. Upon using “Fuzz this function” next to the actual fuzz target, two types of configuration were automatically created and stored in the CI Fuzz sidebar.

open

The Fuzz Test Configuration (marked with green) contains internal information about how to build the fuzz target. Usually this configuration does not need to be modified at all, but you can inspect it for informational purposes.

open

The other configuration of the type “Test Collection” contains information about how to execute the fuzz test. You can tweak some settings like the runtime of the tests or even expert options, like selecting the fuzz engines used by the backend here:

open

To start fuzzing, press the play button next to the test collection.

open

You can also Go the the Dashboard and start fuzzing from there: Click on the Dashboard Menu item in the CI Fuzz sidebar:

open

The dashboard will open and show you all the findings, the fuzzers have made so far. (Nothing in this case, because we did not run yet)

open

In the dashboard, click on the Test Collection you want to run:

open

And then on “Run locally”:

open

This will start the fuzzing process locally. Note that if you start fuzzing locally for the first time, it will take some time before starting up, because CI Fuzz recompiles the whole project multiple times with different instrumentations, in order to leverage all the features of different feedback based fuzzers. The progress of the instrumentation is shown in the pipeline in the dashboard:

open