Files
pezkuwi-subxt/polkadot/xcm/xcm-simulator/fuzzer
Oliver Tale-Yazdi e377e4becd Co #14318: pallet-message-queue: add queue pausing (#7433)
* 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 <>
2023-06-28 12:17:15 +00:00
..
2023-02-23 08:59:03 +00:00
2023-02-23 08:59:03 +00:00

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.