From d47b2cbbe57aa220d2e8227a8e6df8d57153180b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Costin=20Caraba=C8=99?= Date: Thu, 13 Jul 2023 13:09:22 +0300 Subject: [PATCH 1/6] Adder: Add upgrade SC mandos test --- ...der_mandos_constructed_raw_upgrade_test.rs | 47 +++++++++++++++++++ .../adder/tests/adder_scenario_go_test.rs | 2 + 2 files changed, 49 insertions(+) create mode 100644 contracts/examples/adder/tests/adder_mandos_constructed_raw_upgrade_test.rs diff --git a/contracts/examples/adder/tests/adder_mandos_constructed_raw_upgrade_test.rs b/contracts/examples/adder/tests/adder_mandos_constructed_raw_upgrade_test.rs new file mode 100644 index 0000000000..decd222b48 --- /dev/null +++ b/contracts/examples/adder/tests/adder_mandos_constructed_raw_upgrade_test.rs @@ -0,0 +1,47 @@ +use multiversx_sc_scenario::{scenario_model::*, *}; + +fn world() -> ScenarioWorld { + let mut blockchain = ScenarioWorld::new(); + blockchain.set_current_dir_from_workspace("contracts/examples/adder"); + + blockchain.register_contract("file:output/adder.wasm", adder::ContractBuilder); + blockchain +} + +#[test] +fn adder_mandos_constructed_raw() { + let mut world = world(); + let ic = world.interpreter_context(); + world + .set_state_step( + SetStateStep::new() + .put_account("address:owner", Account::new().nonce(1)) + .new_address("address:owner", 1, "sc:adder"), + ) + .sc_deploy_step( + ScDeployStep::new() + .from("address:owner") + .contract_code("file:output/adder.wasm", &ic) + .argument("5") + .gas_limit("5,000,000") + .expect(TxExpect::ok().no_result()), + ) + .sc_call_step( + ScCallStep::new() + .from("address:owner") + .to("sc:adder") + .function("upgradeContract") + .argument("file:output/adder.wasm") // code + .argument("0x0502") // codeMetadata + .argument("8") // contract argument + .expect(TxExpect::ok().no_result()), + ) + .check_state_step( + CheckStateStep::new() + .put_account("address:owner", CheckAccount::new()) + .put_account( + "sc:adder", + CheckAccount::new().check_storage("str:sum", "8"), + ), + ); +} diff --git a/contracts/examples/adder/tests/adder_scenario_go_test.rs b/contracts/examples/adder/tests/adder_scenario_go_test.rs index 17e846e2a5..05fd7e3f35 100644 --- a/contracts/examples/adder/tests/adder_scenario_go_test.rs +++ b/contracts/examples/adder/tests/adder_scenario_go_test.rs @@ -1,3 +1,5 @@ +mod adder_mandos_constructed_raw_upgrade_test; + #[test] fn adder_go() { multiversx_sc_scenario::run_go("scenarios/adder.scen.json"); From a6f8c64ed70d121d34d08216b73e7843f2ae68ad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Costin=20Caraba=C8=99?= Date: Thu, 13 Jul 2023 13:24:13 +0300 Subject: [PATCH 2/6] Adder: minor fix --- .../adder/tests/adder_mandos_constructed_raw_upgrade_test.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contracts/examples/adder/tests/adder_mandos_constructed_raw_upgrade_test.rs b/contracts/examples/adder/tests/adder_mandos_constructed_raw_upgrade_test.rs index decd222b48..4feeb08823 100644 --- a/contracts/examples/adder/tests/adder_mandos_constructed_raw_upgrade_test.rs +++ b/contracts/examples/adder/tests/adder_mandos_constructed_raw_upgrade_test.rs @@ -9,7 +9,7 @@ fn world() -> ScenarioWorld { } #[test] -fn adder_mandos_constructed_raw() { +fn adder_mandos_constructed_raw_upgrade_test() { let mut world = world(); let ic = world.interpreter_context(); world From 0721218a94d9c54af2845922376469fa5e6435b8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Costin=20Caraba=C8=99?= Date: Thu, 13 Jul 2023 13:55:20 +0300 Subject: [PATCH 3/6] Adder: Test fix --- .../adder/tests/adder_mandos_constructed_raw_upgrade_test.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/contracts/examples/adder/tests/adder_mandos_constructed_raw_upgrade_test.rs b/contracts/examples/adder/tests/adder_mandos_constructed_raw_upgrade_test.rs index 4feeb08823..7c47bc5187 100644 --- a/contracts/examples/adder/tests/adder_mandos_constructed_raw_upgrade_test.rs +++ b/contracts/examples/adder/tests/adder_mandos_constructed_raw_upgrade_test.rs @@ -1,4 +1,4 @@ -use multiversx_sc_scenario::{scenario_model::*, *}; +use multiversx_sc_scenario::{scenario_model::*, *, scenario_format::interpret_trait::InterpretableFrom}; fn world() -> ScenarioWorld { let mut blockchain = ScenarioWorld::new(); @@ -31,7 +31,7 @@ fn adder_mandos_constructed_raw_upgrade_test() { .from("address:owner") .to("sc:adder") .function("upgradeContract") - .argument("file:output/adder.wasm") // code + .argument(BytesValue::interpret_from("file:output/adder.wasm", &ic)) .argument("0x0502") // codeMetadata .argument("8") // contract argument .expect(TxExpect::ok().no_result()), From 597a23578296d3be8a895d62673ecd25ff964bb8 Mon Sep 17 00:00:00 2001 From: Andrei Marinica Date: Sat, 15 Jul 2023 01:40:03 +0300 Subject: [PATCH 4/6] renamed test --- ...ucted_raw_upgrade_test.rs => adder_blackbox_upgrade_test.rs} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename contracts/examples/adder/tests/{adder_mandos_constructed_raw_upgrade_test.rs => adder_blackbox_upgrade_test.rs} (97%) diff --git a/contracts/examples/adder/tests/adder_mandos_constructed_raw_upgrade_test.rs b/contracts/examples/adder/tests/adder_blackbox_upgrade_test.rs similarity index 97% rename from contracts/examples/adder/tests/adder_mandos_constructed_raw_upgrade_test.rs rename to contracts/examples/adder/tests/adder_blackbox_upgrade_test.rs index 7c47bc5187..65dc1090fe 100644 --- a/contracts/examples/adder/tests/adder_mandos_constructed_raw_upgrade_test.rs +++ b/contracts/examples/adder/tests/adder_blackbox_upgrade_test.rs @@ -9,7 +9,7 @@ fn world() -> ScenarioWorld { } #[test] -fn adder_mandos_constructed_raw_upgrade_test() { +fn adder_blackbox_upgrade() { let mut world = world(); let ic = world.interpreter_context(); world From 89273e8a3682cf973926a14f3a25f85d6b5fc4ec Mon Sep 17 00:00:00 2001 From: Andrei Marinica Date: Sat, 15 Jul 2023 01:41:58 +0300 Subject: [PATCH 5/6] renamed tests --- contracts/examples/adder/tests/adder_blackbox_test.rs | 2 +- .../examples/adder/tests/adder_blackbox_with_values_test.rs | 2 +- contracts/examples/adder/tests/adder_test.rs | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/contracts/examples/adder/tests/adder_blackbox_test.rs b/contracts/examples/adder/tests/adder_blackbox_test.rs index d647602355..3d2e166582 100644 --- a/contracts/examples/adder/tests/adder_blackbox_test.rs +++ b/contracts/examples/adder/tests/adder_blackbox_test.rs @@ -11,7 +11,7 @@ fn world() -> ScenarioWorld { } #[test] -fn adder_mandos_constructed_raw() { +fn adder_blackbox_raw() { let mut world = world(); let adder_code = world.code_expression(ADDER_PATH_EXPR); diff --git a/contracts/examples/adder/tests/adder_blackbox_with_values_test.rs b/contracts/examples/adder/tests/adder_blackbox_with_values_test.rs index 92763f7200..62173c5cce 100644 --- a/contracts/examples/adder/tests/adder_blackbox_with_values_test.rs +++ b/contracts/examples/adder/tests/adder_blackbox_with_values_test.rs @@ -13,7 +13,7 @@ fn world() -> ScenarioWorld { } #[test] -fn adder_scenario_constructed_raw() { +fn adder_blackbox_with_values() { let mut world = world(); let owner_address = "address:owner"; let mut adder_contract = ContractInfo::>::new("sc:adder"); diff --git a/contracts/examples/adder/tests/adder_test.rs b/contracts/examples/adder/tests/adder_test.rs index d71870d6a6..3839382866 100644 --- a/contracts/examples/adder/tests/adder_test.rs +++ b/contracts/examples/adder/tests/adder_test.rs @@ -3,7 +3,7 @@ use multiversx_sc::types::BigUint; use multiversx_sc_scenario::api::SingleTxApi; #[test] -fn test_add() { +fn adder_unit_test() { let adder = adder::contract_obj::(); adder.init(BigUint::from(5u32)); From 53e281d0b78965520d8ea26e06c1bc532f98ddb8 Mon Sep 17 00:00:00 2001 From: Andrei Marinica Date: Sat, 15 Jul 2023 01:44:15 +0300 Subject: [PATCH 6/6] upgraded adder upgrade test --- .../tests/adder_blackbox_upgrade_test.rs | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/contracts/examples/adder/tests/adder_blackbox_upgrade_test.rs b/contracts/examples/adder/tests/adder_blackbox_upgrade_test.rs index 65dc1090fe..1e3301f335 100644 --- a/contracts/examples/adder/tests/adder_blackbox_upgrade_test.rs +++ b/contracts/examples/adder/tests/adder_blackbox_upgrade_test.rs @@ -1,4 +1,6 @@ -use multiversx_sc_scenario::{scenario_model::*, *, scenario_format::interpret_trait::InterpretableFrom}; +use multiversx_sc_scenario::{scenario_model::*, *}; + +const ADDER_PATH_EXPR: &str = "file:output/adder.wasm"; fn world() -> ScenarioWorld { let mut blockchain = ScenarioWorld::new(); @@ -11,29 +13,30 @@ fn world() -> ScenarioWorld { #[test] fn adder_blackbox_upgrade() { let mut world = world(); - let ic = world.interpreter_context(); + let adder_code = world.code_expression(ADDER_PATH_EXPR); + world .set_state_step( SetStateStep::new() .put_account("address:owner", Account::new().nonce(1)) .new_address("address:owner", 1, "sc:adder"), ) - .sc_deploy_step( + .sc_deploy( ScDeployStep::new() .from("address:owner") - .contract_code("file:output/adder.wasm", &ic) + .code(&adder_code) .argument("5") .gas_limit("5,000,000") .expect(TxExpect::ok().no_result()), ) - .sc_call_step( + .sc_call( ScCallStep::new() .from("address:owner") .to("sc:adder") .function("upgradeContract") - .argument(BytesValue::interpret_from("file:output/adder.wasm", &ic)) - .argument("0x0502") // codeMetadata - .argument("8") // contract argument + .argument(&adder_code) + .argument("0x0502") // codeMetadata + .argument("8") // contract argument .expect(TxExpect::ok().no_result()), ) .check_state_step(