mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-04-26 18:07:58 +00:00
e5f65865fe
* Add improved XCM fuzzer * Add command for running a single input * Add installation command * Fix @m-cat's nit * Add newline Co-authored-by: Kian Paimani <5588131+kianenigma@users.noreply.github.com> * Add info about current directory in fuzzing README * Update Cargo.lock --------- Co-authored-by: Keith Yeung <kungfukeith11@gmail.com> Co-authored-by: Kian Paimani <5588131+kianenigma@users.noreply.github.com>
39 lines
1.0 KiB
Markdown
39 lines
1.0 KiB
Markdown
# XCM Simulator Fuzzer
|
|
|
|
This project will fuzz-test the XCM simulator. It can catch reachable panics, timeouts as well as integer overflows and underflows.
|
|
|
|
## Install dependencies
|
|
|
|
```
|
|
cargo install honggfuzz
|
|
```
|
|
|
|
## Run the fuzzer
|
|
|
|
In this directory, run this command:
|
|
|
|
```
|
|
cargo hfuzz run xcm-fuzzer
|
|
```
|
|
|
|
## Run a single input
|
|
|
|
In this directory, run this command:
|
|
|
|
```
|
|
cargo hfuzz run-debug xcm-fuzzer hfuzz_workspace/xcm-fuzzer/fuzzer_input_file
|
|
```
|
|
|
|
## Generate coverage
|
|
|
|
In this directory, run these four commands:
|
|
|
|
```
|
|
RUSTFLAGS="-Zprofile -Ccodegen-units=1 -Copt-level=0 -Clink-dead-code -Coverflow-checks=off -Zpanic_abort_tests -Cpanic=abort" CARGO_INCREMENTAL=0 SKIP_WASM_BUILD=1 CARGO_HOME=./cargo cargo build
|
|
../../../target/debug/xcm-fuzzer hfuzz_workspace/xcm-fuzzer/input/
|
|
zip -0 ccov.zip `find ../../../target/ \( -name "*.gc*" -o -name "test-*.gc*" \) -print`
|
|
grcov ccov.zip -s ../../../ -t html --llvm --branch --ignore-not-existing -o ./coverage
|
|
```
|
|
|
|
The code coverage will be in `./coverage/index.html`.
|