diff --git a/wasm/wasm_source/src/vp_implicit.rs b/wasm/wasm_source/src/vp_implicit.rs
index 95dc6db562c..785fdd6af27 100644
--- a/wasm/wasm_source/src/vp_implicit.rs
+++ b/wasm/wasm_source/src/vp_implicit.rs
@@ -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;
@@ -635,8 +637,13 @@ mod tests {
let verifiers: BTreeSet
= 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::().cloned().unwrap())
+ .unwrap()
+ .contains("InvalidSectionSignature")
);
}
@@ -789,8 +796,13 @@ mod tests {
let verifiers: BTreeSet = 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::().cloned().unwrap())
+ .unwrap()
+ .contains("InvalidSectionSignature")
);
}
@@ -977,7 +989,15 @@ mod tests {
vp_env.all_touched_storage_keys();
let verifiers: BTreeSet = 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::().cloned().unwrap())
+ .unwrap()
+ .contains("InvalidSectionSignature")
+ );
}
fn test_signed_arb_storage_write(
@@ -1061,8 +1081,13 @@ mod tests {
let verifiers: BTreeSet = 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::().cloned().unwrap())
+ .unwrap()
+ .contains("InvalidSectionSignature")
);
}
}
diff --git a/wasm/wasm_source/src/vp_user.rs b/wasm/wasm_source/src/vp_user.rs
index 2da43825d21..af81d0892e8 100644
--- a/wasm/wasm_source/src/vp_user.rs
+++ b/wasm/wasm_source/src/vp_user.rs
@@ -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;
@@ -556,8 +558,13 @@ mod tests {
let verifiers: BTreeSet = 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::().cloned().unwrap())
+ .unwrap()
+ .contains("InvalidSectionSignature")
);
}
@@ -705,8 +712,13 @@ mod tests {
let verifiers: BTreeSet = 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::().cloned().unwrap())
+ .unwrap()
+ .contains("InvalidSectionSignature")
);
}
@@ -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,
@@ -938,8 +950,13 @@ mod tests {
let verifiers: BTreeSet = 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::().cloned().unwrap())
+ .unwrap()
+ .contains("InvalidSectionSignature")
);
}
@@ -1029,8 +1046,13 @@ mod tests {
let verifiers: BTreeSet = 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::().cloned().unwrap())
+ .unwrap()
+ .contains("InvalidSectionSignature")
);
}
@@ -1431,7 +1453,15 @@ mod tests {
vp_env.all_touched_storage_keys();
let verifiers: BTreeSet = 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::().cloned().unwrap())
+ .unwrap()
+ .contains("InvalidSectionSignature")
+ );
}
}
@@ -1520,8 +1550,13 @@ mod tests {
let verifiers: BTreeSet = 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::().cloned().unwrap())
+ .unwrap()
+ .contains("InvalidSectionSignature")
);
}