Skip to content

Commit 9d539c0

Browse files
committed
Fix vm tests
1 parent 2d7b837 commit 9d539c0

File tree

7 files changed

+246
-157
lines changed

7 files changed

+246
-157
lines changed

packages/vm/benches/main.rs

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -54,8 +54,10 @@ fn bench_instance(c: &mut Criterion) {
5454
Instance::from_code(CONTRACT, backend, much_gas, Some(DEFAULT_MEMORY_LIMIT)).unwrap();
5555

5656
b.iter(|| {
57-
let info = mock_info("creator", &coins(1000, "earth"));
58-
let msg = br#"{"verifier": "verifies", "beneficiary": "benefits"}"#;
57+
let info = mock_info(&instance.api().addr_make("creator"), &coins(1000, "earth"));
58+
let verifier = instance.api().addr_make("verifies");
59+
let beneficiary = instance.api().addr_make("benefits");
60+
let msg = format!(r#"{{"verifier": "{verifier}", "beneficiary": "{beneficiary}"}}"#);
5961
let contract_result =
6062
call_instantiate::<_, _, _, Empty>(&mut instance, &mock_env(), &info, msg).unwrap();
6163
assert!(contract_result.into_result().is_ok());
@@ -70,14 +72,16 @@ fn bench_instance(c: &mut Criterion) {
7072
let mut instance =
7173
Instance::from_code(CONTRACT, backend, much_gas, Some(DEFAULT_MEMORY_LIMIT)).unwrap();
7274

73-
let info = mock_info("creator", &coins(1000, "earth"));
74-
let msg = br#"{"verifier": "verifies", "beneficiary": "benefits"}"#;
75+
let info = mock_info(&instance.api().addr_make("creator"), &coins(1000, "earth"));
76+
let verifier = instance.api().addr_make("verifies");
77+
let beneficiary = instance.api().addr_make("benefits");
78+
let msg = format!(r#"{{"verifier": "{verifier}", "beneficiary": "{beneficiary}"}}"#);
7579
let contract_result =
7680
call_instantiate::<_, _, _, Empty>(&mut instance, &mock_env(), &info, msg).unwrap();
7781
assert!(contract_result.into_result().is_ok());
7882

7983
b.iter(|| {
80-
let info = mock_info("verifies", &coins(15, "earth"));
84+
let info = mock_info(&verifier, &coins(15, "earth"));
8185
let msg = br#"{"release":{}}"#;
8286
let contract_result =
8387
call_execute::<_, _, _, Empty>(&mut instance, &mock_env(), &info, msg).unwrap();

packages/vm/examples/multi_threaded_cache.rs

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -55,13 +55,20 @@ pub fn main() {
5555
.unwrap();
5656
println!("Done instantiating contract {i}");
5757

58-
let info = mock_info("creator", &coins(1000, "earth"));
59-
let msg = br#"{"verifier": "verifies", "beneficiary": "benefits"}"#;
60-
let contract_result =
61-
call_instantiate::<_, _, _, Empty>(&mut instance, &mock_env(), &info, msg).unwrap();
58+
let info = mock_info(&instance.api().addr_make("creator"), &coins(1000, "earth"));
59+
let verifier = instance.api().addr_make("verifies");
60+
let beneficiary = instance.api().addr_make("benefits");
61+
let msg = format!(r#"{{"verifier": "{verifier}", "beneficiary": "{beneficiary}"}}"#);
62+
let contract_result = call_instantiate::<_, _, _, Empty>(
63+
&mut instance,
64+
&mock_env(),
65+
&info,
66+
msg.as_bytes(),
67+
)
68+
.unwrap();
6269
assert!(contract_result.into_result().is_ok());
6370

64-
let info = mock_info("verifies", &coins(15, "earth"));
71+
let info = mock_info(&verifier, &coins(15, "earth"));
6572
let msg = br#"{"release":{}}"#;
6673
let contract_result =
6774
call_execute::<_, _, _, Empty>(&mut instance, &mock_env(), &info, msg).unwrap();

packages/vm/src/cache.rs

Lines changed: 113 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -590,22 +590,24 @@ mod tests {
590590
}
591591

592592
/// Takes an instance and executes it
593-
fn test_hackatom_instance_execution<A, S, Q>(instance: &mut Instance<A, S, Q>)
593+
fn test_hackatom_instance_execution<S, Q>(instance: &mut Instance<MockApi, S, Q>)
594594
where
595-
A: BackendApi + 'static,
596595
S: Storage + 'static,
597596
Q: Querier + 'static,
598597
{
599598
// instantiate
600-
let info = mock_info("creator", &coins(1000, "earth"));
601-
let msg = br#"{"verifier": "verifies", "beneficiary": "benefits"}"#;
602-
let response = call_instantiate::<_, _, _, Empty>(instance, &mock_env(), &info, msg)
603-
.unwrap()
604-
.unwrap();
599+
let info = mock_info(&instance.api().addr_make("creator"), &coins(1000, "earth"));
600+
let verifier = instance.api().addr_make("verifies");
601+
let beneficiary = instance.api().addr_make("benefits");
602+
let msg = format!(r#"{{"verifier": "{verifier}", "beneficiary": "{beneficiary}"}}"#);
603+
let response =
604+
call_instantiate::<_, _, _, Empty>(instance, &mock_env(), &info, msg.as_bytes())
605+
.unwrap()
606+
.unwrap();
605607
assert_eq!(response.messages.len(), 0);
606608

607609
// execute
608-
let info = mock_info("verifies", &coins(15, "earth"));
610+
let info = mock_info(&verifier, &coins(15, "earth"));
609611
let msg = br#"{"release":{}}"#;
610612
let response = call_execute::<_, _, _, Empty>(instance, &mock_env(), &info, msg)
611613
.unwrap()
@@ -936,10 +938,17 @@ mod tests {
936938
assert_eq!(cache.stats().misses, 0);
937939

938940
// instantiate
939-
let info = mock_info("creator", &coins(1000, "earth"));
940-
let msg = br#"{"verifier": "verifies", "beneficiary": "benefits"}"#;
941-
let res =
942-
call_instantiate::<_, _, _, Empty>(&mut instance, &mock_env(), &info, msg).unwrap();
941+
let info = mock_info(&instance.api().addr_make("creator"), &coins(1000, "earth"));
942+
let verifier = instance.api().addr_make("verifies");
943+
let beneficiary = instance.api().addr_make("benefits");
944+
let msg = format!(r#"{{"verifier": "{verifier}", "beneficiary": "{beneficiary}"}}"#);
945+
let res = call_instantiate::<_, _, _, Empty>(
946+
&mut instance,
947+
&mock_env(),
948+
&info,
949+
msg.as_bytes(),
950+
)
951+
.unwrap();
943952
let msgs = res.unwrap().messages;
944953
assert_eq!(msgs.len(), 0);
945954
}
@@ -955,10 +964,17 @@ mod tests {
955964
assert_eq!(cache.stats().misses, 0);
956965

957966
// instantiate
958-
let info = mock_info("creator", &coins(1000, "earth"));
959-
let msg = br#"{"verifier": "verifies", "beneficiary": "benefits"}"#;
960-
let res =
961-
call_instantiate::<_, _, _, Empty>(&mut instance, &mock_env(), &info, msg).unwrap();
967+
let info = mock_info(&instance.api().addr_make("creator"), &coins(1000, "earth"));
968+
let verifier = instance.api().addr_make("verifies");
969+
let beneficiary = instance.api().addr_make("benefits");
970+
let msg = format!(r#"{{"verifier": "{verifier}", "beneficiary": "{beneficiary}"}}"#);
971+
let res = call_instantiate::<_, _, _, Empty>(
972+
&mut instance,
973+
&mock_env(),
974+
&info,
975+
msg.as_bytes(),
976+
)
977+
.unwrap();
962978
let msgs = res.unwrap().messages;
963979
assert_eq!(msgs.len(), 0);
964980
}
@@ -976,10 +992,17 @@ mod tests {
976992
assert_eq!(cache.stats().misses, 0);
977993

978994
// instantiate
979-
let info = mock_info("creator", &coins(1000, "earth"));
980-
let msg = br#"{"verifier": "verifies", "beneficiary": "benefits"}"#;
981-
let res =
982-
call_instantiate::<_, _, _, Empty>(&mut instance, &mock_env(), &info, msg).unwrap();
995+
let info = mock_info(&instance.api().addr_make("creator"), &coins(1000, "earth"));
996+
let verifier = instance.api().addr_make("verifies");
997+
let beneficiary = instance.api().addr_make("benefits");
998+
let msg = format!(r#"{{"verifier": "{verifier}", "beneficiary": "{beneficiary}"}}"#);
999+
let res = call_instantiate::<_, _, _, Empty>(
1000+
&mut instance,
1001+
&mock_env(),
1002+
&info,
1003+
msg.as_bytes(),
1004+
)
1005+
.unwrap();
9831006
let msgs = res.unwrap().messages;
9841007
assert_eq!(msgs.len(), 0);
9851008
}
@@ -1001,16 +1024,22 @@ mod tests {
10011024
assert_eq!(cache.stats().misses, 0);
10021025

10031026
// instantiate
1004-
let info = mock_info("creator", &coins(1000, "earth"));
1005-
let msg = br#"{"verifier": "verifies", "beneficiary": "benefits"}"#;
1006-
let response =
1007-
call_instantiate::<_, _, _, Empty>(&mut instance, &mock_env(), &info, msg)
1008-
.unwrap()
1009-
.unwrap();
1027+
let info = mock_info(&instance.api().addr_make("creator"), &coins(1000, "earth"));
1028+
let verifier = instance.api().addr_make("verifies");
1029+
let beneficiary = instance.api().addr_make("benefits");
1030+
let msg = format!(r#"{{"verifier": "{verifier}", "beneficiary": "{beneficiary}"}}"#);
1031+
let response = call_instantiate::<_, _, _, Empty>(
1032+
&mut instance,
1033+
&mock_env(),
1034+
&info,
1035+
msg.as_bytes(),
1036+
)
1037+
.unwrap()
1038+
.unwrap();
10101039
assert_eq!(response.messages.len(), 0);
10111040

10121041
// execute
1013-
let info = mock_info("verifies", &coins(15, "earth"));
1042+
let info = mock_info(&verifier, &coins(15, "earth"));
10141043
let msg = br#"{"release":{}}"#;
10151044
let response = call_execute::<_, _, _, Empty>(&mut instance, &mock_env(), &info, msg)
10161045
.unwrap()
@@ -1029,16 +1058,22 @@ mod tests {
10291058
assert_eq!(cache.stats().misses, 0);
10301059

10311060
// instantiate
1032-
let info = mock_info("creator", &coins(1000, "earth"));
1033-
let msg = br#"{"verifier": "verifies", "beneficiary": "benefits"}"#;
1034-
let response =
1035-
call_instantiate::<_, _, _, Empty>(&mut instance, &mock_env(), &info, msg)
1036-
.unwrap()
1037-
.unwrap();
1061+
let info = mock_info(&instance.api().addr_make("creator"), &coins(1000, "earth"));
1062+
let verifier = instance.api().addr_make("verifies");
1063+
let beneficiary = instance.api().addr_make("benefits");
1064+
let msg = format!(r#"{{"verifier": "{verifier}", "beneficiary": "{beneficiary}"}}"#);
1065+
let response = call_instantiate::<_, _, _, Empty>(
1066+
&mut instance,
1067+
&mock_env(),
1068+
&info,
1069+
msg.as_bytes(),
1070+
)
1071+
.unwrap()
1072+
.unwrap();
10381073
assert_eq!(response.messages.len(), 0);
10391074

10401075
// execute
1041-
let info = mock_info("verifies", &coins(15, "earth"));
1076+
let info = mock_info(&verifier, &coins(15, "earth"));
10421077
let msg = br#"{"release":{}}"#;
10431078
let response = call_execute::<_, _, _, Empty>(&mut instance, &mock_env(), &info, msg)
10441079
.unwrap()
@@ -1059,16 +1094,22 @@ mod tests {
10591094
assert_eq!(cache.stats().misses, 0);
10601095

10611096
// instantiate
1062-
let info = mock_info("creator", &coins(1000, "earth"));
1063-
let msg = br#"{"verifier": "verifies", "beneficiary": "benefits"}"#;
1064-
let response =
1065-
call_instantiate::<_, _, _, Empty>(&mut instance, &mock_env(), &info, msg)
1066-
.unwrap()
1067-
.unwrap();
1097+
let info = mock_info(&instance.api().addr_make("creator"), &coins(1000, "earth"));
1098+
let verifier = instance.api().addr_make("verifies");
1099+
let beneficiary = instance.api().addr_make("benefits");
1100+
let msg = format!(r#"{{"verifier": "{verifier}", "beneficiary": "{beneficiary}"}}"#);
1101+
let response = call_instantiate::<_, _, _, Empty>(
1102+
&mut instance,
1103+
&mock_env(),
1104+
&info,
1105+
msg.as_bytes(),
1106+
)
1107+
.unwrap()
1108+
.unwrap();
10681109
assert_eq!(response.messages.len(), 0);
10691110

10701111
// execute
1071-
let info = mock_info("verifies", &coins(15, "earth"));
1112+
let info = mock_info(&verifier, &coins(15, "earth"));
10721113
let msg = br#"{"release":{}}"#;
10731114
let response = call_execute::<_, _, _, Empty>(&mut instance, &mock_env(), &info, msg)
10741115
.unwrap()
@@ -1112,9 +1153,12 @@ mod tests {
11121153
.get_instance(&checksum, backend1, TESTING_OPTIONS)
11131154
.unwrap();
11141155
let info = mock_info("owner1", &coins(1000, "earth"));
1115-
let msg = br#"{"verifier": "sue", "beneficiary": "mary"}"#;
1156+
let sue = instance.api().addr_make("sue");
1157+
let mary = instance.api().addr_make("mary");
1158+
let msg = format!(r#"{{"verifier": "{sue}", "beneficiary": "{mary}"}}"#);
11161159
let res =
1117-
call_instantiate::<_, _, _, Empty>(&mut instance, &mock_env(), &info, msg).unwrap();
1160+
call_instantiate::<_, _, _, Empty>(&mut instance, &mock_env(), &info, msg.as_bytes())
1161+
.unwrap();
11181162
let msgs = res.unwrap().messages;
11191163
assert_eq!(msgs.len(), 0);
11201164
let backend1 = instance.recycle().unwrap();
@@ -1124,9 +1168,12 @@ mod tests {
11241168
.get_instance(&checksum, backend2, TESTING_OPTIONS)
11251169
.unwrap();
11261170
let info = mock_info("owner2", &coins(500, "earth"));
1127-
let msg = br#"{"verifier": "bob", "beneficiary": "john"}"#;
1171+
let bob = instance.api().addr_make("bob");
1172+
let john = instance.api().addr_make("john");
1173+
let msg = format!(r#"{{"verifier": "{bob}", "beneficiary": "{john}"}}"#);
11281174
let res =
1129-
call_instantiate::<_, _, _, Empty>(&mut instance, &mock_env(), &info, msg).unwrap();
1175+
call_instantiate::<_, _, _, Empty>(&mut instance, &mock_env(), &info, msg.as_bytes())
1176+
.unwrap();
11301177
let msgs = res.unwrap().messages;
11311178
assert_eq!(msgs.len(), 0);
11321179
let backend2 = instance.recycle().unwrap();
@@ -1135,7 +1182,7 @@ mod tests {
11351182
let mut instance = cache
11361183
.get_instance(&checksum, backend2, TESTING_OPTIONS)
11371184
.unwrap();
1138-
let info = mock_info("bob", &coins(15, "earth"));
1185+
let info = mock_info(&bob, &coins(15, "earth"));
11391186
let msg = br#"{"release":{}}"#;
11401187
let res = call_execute::<_, _, _, Empty>(&mut instance, &mock_env(), &info, msg).unwrap();
11411188
let msgs = res.unwrap().messages;
@@ -1145,7 +1192,7 @@ mod tests {
11451192
let mut instance = cache
11461193
.get_instance(&checksum, backend1, TESTING_OPTIONS)
11471194
.unwrap();
1148-
let info = mock_info("sue", &coins(15, "earth"));
1195+
let info = mock_info(&sue, &coins(15, "earth"));
11491196
let msg = br#"{"release":{}}"#;
11501197
let res = call_execute::<_, _, _, Empty>(&mut instance, &mock_env(), &info, msg).unwrap();
11511198
let msgs = res.unwrap().messages;
@@ -1172,8 +1219,10 @@ mod tests {
11721219

11731220
// Consume some gas
11741221
let info = mock_info("owner1", &coins(1000, "earth"));
1175-
let msg = br#"{"verifier": "sue", "beneficiary": "mary"}"#;
1176-
call_instantiate::<_, _, _, Empty>(&mut instance1, &mock_env(), &info, msg)
1222+
let sue = instance1.api().addr_make("sue");
1223+
let mary = instance1.api().addr_make("mary");
1224+
let msg = format!(r#"{{"verifier": "{sue}", "beneficiary": "{mary}"}}"#);
1225+
call_instantiate::<_, _, _, Empty>(&mut instance1, &mock_env(), &info, msg.as_bytes())
11771226
.unwrap()
11781227
.unwrap();
11791228
assert!(instance1.get_gas_left() < original_gas);
@@ -1205,9 +1254,17 @@ mod tests {
12051254

12061255
// Consume some gas. This fails
12071256
let info1 = mock_info("owner1", &coins(1000, "earth"));
1208-
let msg1 = br#"{"verifier": "sue", "beneficiary": "mary"}"#;
1209-
match call_instantiate::<_, _, _, Empty>(&mut instance1, &mock_env(), &info1, msg1)
1210-
.unwrap_err()
1257+
let sue = instance1.api().addr_make("sue");
1258+
let mary = instance1.api().addr_make("mary");
1259+
let msg1 = format!(r#"{{"verifier": "{sue}", "beneficiary": "{mary}"}}"#);
1260+
1261+
match call_instantiate::<_, _, _, Empty>(
1262+
&mut instance1,
1263+
&mock_env(),
1264+
&info1,
1265+
msg1.as_bytes(),
1266+
)
1267+
.unwrap_err()
12111268
{
12121269
VmError::GasDepletion { .. } => (), // all good, continue
12131270
e => panic!("unexpected error, {e:?}"),
@@ -1227,8 +1284,10 @@ mod tests {
12271284

12281285
// Now it works
12291286
let info2 = mock_info("owner2", &coins(500, "earth"));
1230-
let msg2 = br#"{"verifier": "bob", "beneficiary": "john"}"#;
1231-
call_instantiate::<_, _, _, Empty>(&mut instance2, &mock_env(), &info2, msg2)
1287+
let bob = instance2.api().addr_make("bob");
1288+
let john = instance2.api().addr_make("john");
1289+
let msg2 = format!(r#"{{"verifier": "{bob}", "beneficiary": "{john}"}}"#);
1290+
call_instantiate::<_, _, _, Empty>(&mut instance2, &mock_env(), &info2, msg2.as_bytes())
12321291
.unwrap()
12331292
.unwrap();
12341293
}

0 commit comments

Comments
 (0)