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.
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.
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:
To start fuzzing, press the play button next to the test collection.
You can also Go the the Dashboard and start fuzzing from there: Click on the Dashboard Menu item in the CI Fuzz sidebar:
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)
In the dashboard, click on the Test Collection you want to run:
And then on “Run locally”:
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: