Jazzer.js has the following dependencies when built from source:
- Node.js 16
- NPM 7.0
- cmake-js dependencies
- CMake version 3.10 or later
- C/C++ compiler toolchain of the used platform
- See cmake-js installation documentation
To build the project execute install and build in the root directory.
npm install
npm run buildThis takes care of downloading all dependencies, compiling the TypeScript code
and building libFuzzer via cmake-js.
All tests can be executed via the test npm script in the root directory.
Please make sure that you build the newest version with the commands mentioned
above.
npm run testThis executes all Jest unit tests and also all test
scripts in the workspaces, plus a dryRun of all example projects.
Note: Please make sure to provide test cases for all code changes.
All code and documentation have to satisfy format and linting rules. This is
enforced through a git pre-commit hook. The check npm script in the root
directory runs the appropriate checks.
npm run checkfix will try to resolve found issues automatically for you.
npm run fixJazzer.js is mostly developed using TypeScript, for example higher-level parts and the code instrumentation. The lower-lever Node.js addon providing the libFuzzer integration is created using C++.
TypeScript is globally set up on root level and compiled into dist folders in
the individual workspaces. On the other hand C++ is only used in the fuzzer
workspace and compiled using cmake-js. More information on that part can be
found in the workspace readme.