Skip to content

Latest commit

 

History

History
190 lines (125 loc) · 3.43 KB

Configuration.md

File metadata and controls

190 lines (125 loc) · 3.43 KB

cifuzz configuration

You can change the behavior of cifuzz both via command-line flags and via settings stored in the cifuzz.yaml config file. Flags take precedence over the respective config file setting.

cifuzz.yaml settings

build-system
build-command
seed-corpus-dirs
dict
engine-args
timeout
use-sandbox
print-json
no-notifications
server
project
style

build-system

The build system used to build this project. If not set, cifuzz tries to detect the build system automatically. Valid values: "bazel", "cmake", "maven", "gradle", "other".

Example

build-system: cmake

build-command

If the build system type is "other", this command is used by cifuzz run to build the fuzz test.

Example

build-command: "make all"

seed-corpus-dirs

Directories containing sample inputs for the code under test. See https://llvm.org/docs/LibFuzzer.html#corpus.

Example

seed-corpus-dirs:
  - path/to/seed-corpus

dict

A file containing input language keywords or other interesting byte sequences. See https://llvm.org/docs/LibFuzzer.html#dictionaries.

Example

dict: path/to/dictionary.dct

engine-args

Command-line arguments to pass to libFuzzer or Jazzer for running fuzz tests. Engine-args are not supported for running cifuzz coverage on JVM-projects and are not supported for Node.js projects.

For possible libFuzzer options see https://llvm.org/docs/LibFuzzer.html#options.

For advanced configuration with Jazzer parameters see https://github.com/CodeIntelligenceTesting/jazzer/blob/main/docs/advanced.md.

Fuzzer customization for Node.js projects can be specified in .jazzerjsrc.json in the root project directory. See https://github.com/CodeIntelligenceTesting/jazzer.js/blob/main/docs/jest-integration.md for further information.

Example Libfuzzer

engine-args:
  - -rss_limit_mb=4096
  - -timeout=5s

Example Jazzer

engine-args:
  - --instrumentation_includes=com.**
  - --keep_going

timeout

Maximum time in seconds to run the fuzz tests. The default is to run indefinitely.

Example

timeout: 300

use-sandbox

By default, fuzz tests are executed in a sandbox to prevent accidental damage to the system. Set to false to run fuzz tests unsandboxed. Only supported on Linux.

Example

use-sandbox: false

print-json

Set to true to print output of the cifuzz run command as JSON.

Example

print-json: true

no-notifications

Set to true to disable desktop notifications

Example

no-notifications: true

server

Set URL of CI Sense

Example

server: https://app.code-intelligence.com

project

Set the project name of CI Sense project

Example

project: my-project-1a2b3c4d

style

Choose the style to run cifuzz in

  • pretty: Colored output and icons (default)
  • color: Colored output
  • plain: Pure text without any styles

Example

style: plain