mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-04-26 12:17:58 +00:00
a30092ab42
* Add markdown linting - add linter default rules - adapt rules to current code - fix the code for linting to pass - add CI check fix #1243 * Fix markdown for Substrate * Fix tooling install * Fix workflow * Add documentation * Remove trailing spaces * Update .github/.markdownlint.yaml Co-authored-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io> * Fix mangled markdown/lists * Fix captalization issues on known words
41 lines
1.0 KiB
Markdown
41 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`.
|