Skip to content

Commit cc641d4

Browse files
Add undocumented config options to docs (#124)
* Add parallel-fuzzing option to docs * Document more options * Add options to build integrations * Small fixes to gitlab.md
1 parent 828ba04 commit cc641d4

File tree

3 files changed

+28
-5
lines changed

3 files changed

+28
-5
lines changed

docs/running-clusterfuzzlite/github_actions.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,7 @@ Optionally, edit the following fields to customize your settings:
102102
- `language` Change to the language of your target code.
103103
- `sanitizers` Change or enable more sanitizers.
104104
- `fuzz-seconds` Change the amount of time spent fuzzing.
105+
- `parallel-fuzzing`: Use all available CPU cores for fuzzing.
105106
- `storage-repo`, `storage-repo-branch`,
106107
`storage-repo-branch-coverage` Enable a [storage repo] (not necessary for initial runs, but a useful feature discussed [later on]).
107108

@@ -168,6 +169,7 @@ Optionally, edit the following fields to customize your settings:
168169
- `cron` Change how frequently batch fuzzing is run. See [GitHub's documentation] on this.
169170
- `sanitizers` Change or enable more sanitizers.
170171
- `fuzz-seconds` Change the amount of time spent fuzzing.
172+
- `parallel-fuzzing`: Use all available CPU cores for fuzzing.
171173
- `storage-repo`, `storage-repo-branch`,
172174
`storage-repo-branch-coverage` Enable a [storage repo].
173175

docs/running-clusterfuzzlite/gitlab.md

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,7 @@ Optionally, edit the following variables to customize your settings:
8787
- `CFL_BRANCH` Branch to fuzz, default is `CI_DEFAULT_BRANCH`.
8888
- `FILESTORE` storage for files: builds, corpus, coverage and crashes.
8989
- `FUZZ_SECONDS` Change the amount of time spent fuzzing.
90+
- `PARALLEL_FUZZING` Use all available cores when fuzzing.
9091
- `CFL_ARTIFACTS_DIR` To save your artifacts in a different directory than `artifacts`
9192

9293
### Batch fuzzing and corpus pruning
@@ -136,8 +137,8 @@ keyword to avoid duplicating most of the common parameters between the different
136137
The continuous build task causes a build to be triggered and uploaded
137138
whenever a new push is done to main/default branches.
138139

139-
Continuous builds are used when a crash is found during PR fuzzing to determine whether the crash was newly introduced.
140-
If the crash was not newly introduced, PR fuzzing will not report it.
140+
Continuous builds are used when a crash is found during MR fuzzing to determine whether the crash was newly introduced.
141+
If the crash was not newly introduced, MR fuzzing will not report it.
141142
This means that there will be fewer unrelated failures when running code change
142143
fuzzing.
143144

@@ -212,7 +213,7 @@ From a performance point of view, it is recommended to use a `docker` gitlab run
212213
See this [doc](https://docs.gitlab.com/ee/ci/docker/using_docker_build.html#use-docker-socket-binding)
213214
for more information.
214215

215-
To do so, if you have such a runner ready, you simply need to remove the following lines from the configuration :
216+
To do so, if you have such a runner ready, you simply need to remove the following lines from the configuration:
216217
{% raw %}
217218
```yaml
218219
variables:
@@ -249,7 +250,7 @@ For continuous builds, you need to use a [cache](https://docs.gitlab.com/ee/ci/c
249250
- cfl-cache/
250251
```
251252
{% endraw %}
252-
The cache directory needs to defined as `CFL_CACHE_DIR` to be used by ClusterFuzzLite.
253+
The cache directory needs to be defined as `CFL_CACHE_DIR` to be used by ClusterFuzzLite.
253254
If it is not defined, the default value is `cache`.
254255
You should ensure that the runners share the access to the cache.
255256

@@ -263,7 +264,7 @@ project access token, due to your Gitlab license.
263264

264265
![gitlab-project-token]
265266

266-
And this token should be used from the fuzzed repository as a CI/CD variable.
267+
Add the token as a CI/CD variable to your GitLab project.
267268
You can name this variable as you like, in the following example it is named
268269
`CFL_TOKEN`. This variable should be defined as masked to avoid leaks.
269270
It should not be protected if you need it on unprotected branches.

docs/running_clusterfuzzlite.md

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -153,6 +153,26 @@ specific CI system.
153153
coverage report generation). The default is `'address'`.
154154
See [Sanitizers] for more information.
155155

156+
- `parallel-fuzzing`: Whether to use all available CPU cores for fuzzing.
157+
The default value is `false`, which only uses a single CPU core.
158+
When set to `true`, ClusterFuzzLite runs multiple fuzzer processes
159+
in parallel with a shared corpus directory. New inputs found by one
160+
fuzzer process will be available to the other fuzzer processes.
161+
The number of cores available depends on your specific CI system.
162+
163+
- `report-unreproducible-crashes`: Whether to report unreproducible crashes.
164+
The default value is `false`. ClusterFuzzLite will always attempt to reproduce
165+
new crashes. Sometimes crashes can not be reproduced reliably, e.g.,
166+
because the fuzz target is in a different state. Read more on
167+
non-reproducible bugs in
168+
[this section](https://google.github.io/oss-fuzz/advanced-topics/bug-fixing-guidance#non-reproducible-bugs).
169+
When set to `true`, even non-reproducable bugs will be reported a
170+
as failure.
171+
172+
- `minimize-crashes`: If `true`, reportable crashes will be minimized.
173+
The default value is `false`. Minimizing crashes reduces fuzzing time
174+
in batch fuzzing.
175+
156176
- `mode`: The mode for ClusterFuzzLite to execute. `code-change` by default. See
157177
[ClusterFuzzLite modes] for more details on how to run different modes.
158178

0 commit comments

Comments
 (0)