Skip to content

Commit e0a0d40

Browse files
committed
Add --verbose flag to cosmwasm-check
1 parent 7244341 commit e0a0d40

File tree

2 files changed

+23
-2
lines changed

2 files changed

+23
-2
lines changed

packages/check/src/main.rs

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,13 @@ pub fn main() {
2828
.num_args(1)
2929
.action(ArgAction::Set),
3030
)
31+
.arg(
32+
Arg::new("VERBOSE")
33+
.long("verbose")
34+
.num_args(0)
35+
.help("Prints additional information on stderr")
36+
.action(ArgAction::SetTrue),
37+
)
3138
.arg(
3239
Arg::new("WASM")
3340
.help("Wasm file to read and compile")
@@ -54,7 +61,7 @@ pub fn main() {
5461

5562
let (passes, failures): (Vec<_>, _) = paths
5663
.map(|p| {
57-
let result = check_contract(p, &available_capabilities);
64+
let result = check_contract(p, &available_capabilities, matches.get_flag("VERBOSE"));
5865
match &result {
5966
Ok(_) => println!("{}: {}", p, "pass".green()),
6067
Err(e) => {
@@ -88,14 +95,15 @@ pub fn main() {
8895
fn check_contract(
8996
path: impl AsRef<Path>,
9097
available_capabilities: &HashSet<String>,
98+
verbose: bool,
9199
) -> anyhow::Result<()> {
92100
let mut file = File::open(path)?;
93101

94102
// Read wasm
95103
let mut wasm = Vec::<u8>::new();
96104
file.read_to_end(&mut wasm)?;
97105

98-
let mut logs = Logs::new();
106+
let mut logs = if verbose { Logs::new() } else { Logs::Off };
99107
// Check wasm
100108
let res = check_wasm_with_logs(&wasm, available_capabilities, &mut logs);
101109
for line in logs {

packages/check/tests/cosmwasm_check_tests.rs

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,19 @@ fn valid_contract_check() -> Result<(), Box<dyn std::error::Error>> {
1414
Ok(())
1515
}
1616

17+
#[test]
18+
fn contract_check_verbose() -> Result<(), Box<dyn std::error::Error>> {
19+
let mut cmd = Command::cargo_bin("cosmwasm-check")?;
20+
21+
cmd.arg("../vm/testdata/empty.wasm").arg("--verbose");
22+
cmd.assert()
23+
.success()
24+
.stdout(predicate::str::contains("pass"))
25+
.stderr(predicate::str::contains("Max function parameters"));
26+
27+
Ok(())
28+
}
29+
1730
#[test]
1831
fn empty_contract_check() -> Result<(), Box<dyn std::error::Error>> {
1932
let mut cmd = Command::cargo_bin("cosmwasm-check")?;

0 commit comments

Comments
 (0)