forked from paritytech/substrate
-
Notifications
You must be signed in to change notification settings - Fork 4
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add
benchmark extrinsic
command (paritytech#11456)
* Benchmark extrinsic Signed-off-by: Oliver Tale-Yazdi <[email protected]> * Reduce warmup and repeat Running this 1000 times with a full block takes ~33 minutes 🙈. Reducing it to ~3 minutes per default. Signed-off-by: Oliver Tale-Yazdi <[email protected]> * Make ExistentialDeposit public Signed-off-by: Oliver Tale-Yazdi <[email protected]> * Add 'bechmark extrinsic' command Signed-off-by: Oliver Tale-Yazdi <[email protected]> * fmt Signed-off-by: Oliver Tale-Yazdi <[email protected]> * Add --list and cleanup Signed-off-by: Oliver Tale-Yazdi <[email protected]> * Unrelated Clippy Signed-off-by: Oliver Tale-Yazdi <[email protected]> * Clippy Signed-off-by: Oliver Tale-Yazdi <[email protected]> * Fix tests and doc Signed-off-by: Oliver Tale-Yazdi <[email protected]> * Move implementations up + fmt Signed-off-by: Oliver Tale-Yazdi <[email protected]> * Dont use parameter_types macro Signed-off-by: Oliver Tale-Yazdi <[email protected]> * Cache to_lowercase() call The .to_lowercase() on the builder is actually not needes since its already documented to only return lower case. Signed-off-by: Oliver Tale-Yazdi <[email protected]> * Spelling Signed-off-by: Oliver Tale-Yazdi <[email protected]> * Use correct nightly for fmt... Signed-off-by: Oliver Tale-Yazdi <[email protected]> * Rename ED Signed-off-by: Oliver Tale-Yazdi <[email protected]> * Fix compile Signed-off-by: Oliver Tale-Yazdi <[email protected]> * Subtract block base weight Signed-off-by: Oliver Tale-Yazdi <[email protected]> * Fixes Signed-off-by: Oliver Tale-Yazdi <[email protected]> * Use tmp folder for test This should already be the case since --dev is passed but somehow not... Signed-off-by: Oliver Tale-Yazdi <[email protected]> * Fix test Signed-off-by: Oliver Tale-Yazdi <[email protected]>
- Loading branch information
Showing
16 changed files
with
537 additions
and
109 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,46 @@ | ||
// This file is part of Substrate. | ||
|
||
// Copyright (C) 2022 Parity Technologies (UK) Ltd. | ||
// SPDX-License-Identifier: GPL-3.0-or-later WITH Classpath-exception-2.0 | ||
|
||
// This program is free software: you can redistribute it and/or modify | ||
// it under the terms of the GNU General Public License as published by | ||
// the Free Software Foundation, either version 3 of the License, or | ||
// (at your option) any later version. | ||
|
||
// This program is distributed in the hope that it will be useful, | ||
// but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
// GNU General Public License for more details. | ||
|
||
// You should have received a copy of the GNU General Public License | ||
// along with this program. If not, see <https://www.gnu.org/licenses/>. | ||
|
||
use assert_cmd::cargo::cargo_bin; | ||
use std::process::Command; | ||
use tempfile::tempdir; | ||
|
||
/// Tests that the `benchmark extrinsic` command works for | ||
/// remark and transfer_keep_alive within the substrate dev runtime. | ||
#[test] | ||
fn benchmark_extrinsic_works() { | ||
benchmark_extrinsic("system", "remark"); | ||
benchmark_extrinsic("balances", "transfer_keep_alive"); | ||
} | ||
|
||
/// Checks that the `benchmark extrinsic` command works for the given pallet and extrinsic. | ||
fn benchmark_extrinsic(pallet: &str, extrinsic: &str) { | ||
let base_dir = tempdir().expect("could not create a temp dir"); | ||
|
||
let status = Command::new(cargo_bin("substrate")) | ||
.args(&["benchmark", "extrinsic", "--dev"]) | ||
.arg("-d") | ||
.arg(base_dir.path()) | ||
.args(&["--pallet", pallet, "--extrinsic", extrinsic]) | ||
// Run with low repeats for faster execution. | ||
.args(["--warmup=10", "--repeat=10", "--max-ext-per-block=10"]) | ||
.status() | ||
.unwrap(); | ||
|
||
assert!(status.success()); | ||
} |
Oops, something went wrong.