Refactoring Checkpoint: (WIP)
This commit is contained in:
@@ -0,0 +1,40 @@
|
||||
# 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 --locked
|
||||
```
|
||||
|
||||
## Run the fuzzer
|
||||
|
||||
In this directory, run this command:
|
||||
|
||||
```
|
||||
HFUZZ_BUILD_ARGS="--features=try-runtime" cargo hfuzz run xcm-fuzzer
|
||||
```
|
||||
|
||||
## Run a single input
|
||||
|
||||
In this directory, run this command:
|
||||
|
||||
```
|
||||
cargo run --features=try-runtime -- 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 --features=try-runtime
|
||||
../../../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`.
|
||||
Reference in New Issue
Block a user