mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-07-10 14:37:31 +00:00
e377e4becd
* Increase recusive limit to 512 for macro expansions Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io> * Increase limit to 1024 Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io> * Adjust comment Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io> * Increase more limits Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io> * Add QueuePausedQuery * ... on westend Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io> * update lockfile for {"substrate"} * update lockfile for {"substrate"} * Add QueuePausedQuery * ... on westend Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io> * Fix test error Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io> * CI buggy Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io> --------- Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io> Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io> Co-authored-by: Alexandru Vasile <alexandru.vasile@parity.io> Co-authored-by: parity-processbot <>
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.