Skip to content

Commit

Permalink
fixup! Return a result of unit from VPs rather than of bools
Browse files Browse the repository at this point in the history
  • Loading branch information
tzemanovic committed Mar 26, 2024
1 parent 76a1037 commit 6cad262
Show file tree
Hide file tree
Showing 2 changed files with 79 additions and 19 deletions.
39 changes: 32 additions & 7 deletions wasm/wasm_source/src/vp_implicit.rs
Original file line number Diff line number Diff line change
Expand Up @@ -364,6 +364,8 @@ fn validate_pos_changes(

#[cfg(test)]
mod tests {
use std::panic;

// Use this as `#[test]` annotation to enable logging
use namada::core::dec::Dec;
use namada::core::storage::Epoch;
Expand Down Expand Up @@ -635,8 +637,13 @@ mod tests {
let verifiers: BTreeSet<Address> = BTreeSet::default();
vp_host_env::set(vp_env);
assert!(
validate_tx(&CTX, tx_data, vp_owner, keys_changed, verifiers)
.is_err()
panic::catch_unwind(|| {
validate_tx(&CTX, tx_data, vp_owner, keys_changed, verifiers)
})
.err()
.map(|a| a.downcast_ref::<String>().cloned().unwrap())
.unwrap()
.contains("InvalidSectionSignature")
);
}

Expand Down Expand Up @@ -789,8 +796,13 @@ mod tests {
let verifiers: BTreeSet<Address> = BTreeSet::default();
vp_host_env::set(vp_env);
assert!(
validate_tx(&CTX, tx_data, vp_owner, keys_changed, verifiers)
.is_err()
panic::catch_unwind(|| {
validate_tx(&CTX, tx_data, vp_owner, keys_changed, verifiers)
})
.err()
.map(|a| a.downcast_ref::<String>().cloned().unwrap())
.unwrap()
.contains("InvalidSectionSignature")
);
}

Expand Down Expand Up @@ -977,7 +989,15 @@ mod tests {
vp_env.all_touched_storage_keys();
let verifiers: BTreeSet<Address> = BTreeSet::default();
vp_host_env::set(vp_env);
assert!(validate_tx(&CTX, tx_data, vp_owner, keys_changed, verifiers).is_err());
assert!(
panic::catch_unwind(|| {
validate_tx(&CTX, tx_data, vp_owner, keys_changed, verifiers)
})
.err()
.map(|a| a.downcast_ref::<String>().cloned().unwrap())
.unwrap()
.contains("InvalidSectionSignature")
);
}

fn test_signed_arb_storage_write(
Expand Down Expand Up @@ -1061,8 +1081,13 @@ mod tests {
let verifiers: BTreeSet<Address> = BTreeSet::default();
vp_host_env::set(vp_env);
assert!(
validate_tx(&CTX, tx_data, vp_owner, keys_changed, verifiers)
.is_err()
panic::catch_unwind(|| {
validate_tx(&CTX, tx_data, vp_owner, keys_changed, verifiers)
})
.err()
.map(|a| a.downcast_ref::<String>().cloned().unwrap())
.unwrap()
.contains("InvalidSectionSignature")
);
}
}
59 changes: 47 additions & 12 deletions wasm/wasm_source/src/vp_user.rs
Original file line number Diff line number Diff line change
Expand Up @@ -412,6 +412,8 @@ fn validate_pos_changes(

#[cfg(test)]
mod tests {
use std::panic;

use address::testing::arb_non_internal_address;
use namada::core::dec::Dec;
use namada::core::storage::Epoch;
Expand Down Expand Up @@ -556,8 +558,13 @@ mod tests {
let verifiers: BTreeSet<Address> = BTreeSet::default();
vp_host_env::set(vp_env);
assert!(
validate_tx(&CTX, tx_data, vp_owner, keys_changed, verifiers)
.is_err()
panic::catch_unwind(|| {
validate_tx(&CTX, tx_data, vp_owner, keys_changed, verifiers)
})
.err()
.map(|a| a.downcast_ref::<String>().cloned().unwrap())
.unwrap()
.contains("InvalidSectionSignature")
);
}

Expand Down Expand Up @@ -705,8 +712,13 @@ mod tests {
let verifiers: BTreeSet<Address> = BTreeSet::default();
vp_host_env::set(vp_env);
assert!(
validate_tx(&CTX, tx_data, vp_owner, keys_changed, verifiers)
.is_err()
panic::catch_unwind(|| {
validate_tx(&CTX, tx_data, vp_owner, keys_changed, verifiers)
})
.err()
.map(|a| a.downcast_ref::<String>().cloned().unwrap())
.unwrap()
.contains("InvalidSectionSignature")
);
}

Expand Down Expand Up @@ -768,7 +780,7 @@ mod tests {
GenesisValidator {
address: validator2.clone(),
tokens: stake2,
consensus_key: ck2,
consensus_key: ck2.clone(),
protocol_key,
commission_rate,
max_commission_rate_change,
Expand Down Expand Up @@ -938,8 +950,13 @@ mod tests {
let verifiers: BTreeSet<Address> = BTreeSet::default();
vp_host_env::set(vp_env);
assert!(
validate_tx(&CTX, tx_data, vp_owner, keys_changed, verifiers)
.is_err()
panic::catch_unwind(|| {
validate_tx(&CTX, tx_data, vp_owner, keys_changed, verifiers)
})
.err()
.map(|a| a.downcast_ref::<String>().cloned().unwrap())
.unwrap()
.contains("InvalidSectionSignature")
);
}

Expand Down Expand Up @@ -1029,8 +1046,13 @@ mod tests {
let verifiers: BTreeSet<Address> = BTreeSet::default();
vp_host_env::set(vp_env);
assert!(
validate_tx(&CTX, tx_data, validator, keys_changed, verifiers)
.is_err()
panic::catch_unwind(|| {
validate_tx(&CTX, tx_data, validator, keys_changed, verifiers)
})
.err()
.map(|a| a.downcast_ref::<String>().cloned().unwrap())
.unwrap()
.contains("InvalidSectionSignature")
);
}

Expand Down Expand Up @@ -1431,7 +1453,15 @@ mod tests {
vp_env.all_touched_storage_keys();
let verifiers: BTreeSet<Address> = BTreeSet::default();
vp_host_env::set(vp_env);
assert!(validate_tx(&CTX, tx_data, vp_owner, keys_changed, verifiers).is_err());
assert!(
panic::catch_unwind(|| {
validate_tx(&CTX, tx_data, vp_owner, keys_changed, verifiers)
})
.err()
.map(|a| a.downcast_ref::<String>().cloned().unwrap())
.unwrap()
.contains("InvalidSectionSignature")
);
}
}

Expand Down Expand Up @@ -1520,8 +1550,13 @@ mod tests {
let verifiers: BTreeSet<Address> = BTreeSet::default();
vp_host_env::set(vp_env);
assert!(
validate_tx(&CTX, tx_data, vp_owner, keys_changed, verifiers)
.is_err()
panic::catch_unwind(|| {
validate_tx(&CTX, tx_data, vp_owner, keys_changed, verifiers)
})
.err()
.map(|a| a.downcast_ref::<String>().cloned().unwrap())
.unwrap()
.contains("InvalidSectionSignature")
);
}

Expand Down

0 comments on commit 6cad262

Please sign in to comment.