mirror of
https://github.com/fluencelabs/aquavm
synced 2025-03-15 04:30:48 +00:00
fix: cannon treats ap with different generations as incompatible (#350)
Fixes #348.
This commit is contained in:
parent
2e98712cb2
commit
dd0c458339
58
air/tests/test_module/issues/issue_348.rs
Normal file
58
air/tests/test_module/issues/issue_348.rs
Normal file
@ -0,0 +1,58 @@
|
||||
/*
|
||||
* Copyright 2022 Fluence Labs Limited
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
use air_test_utils::prelude::*;
|
||||
|
||||
#[test]
|
||||
// test for github.com/fluencelabs/aquavm/issues/348
|
||||
fn issue_348() {
|
||||
let vm_peer_id_1 = "vm_peer_id_1";
|
||||
let mut peer_vm_1 = create_avm(echo_call_service(), vm_peer_id_1);
|
||||
let vm_peer_id_2 = "vm_peer_id_2";
|
||||
let mut peer_vm_2 = create_avm(echo_call_service(), vm_peer_id_2);
|
||||
let vm_peer_id_3 = "vm_peer_id_3";
|
||||
let mut peer_vm_3 = create_avm(echo_call_service(), vm_peer_id_3);
|
||||
|
||||
let script = f!(r#"
|
||||
(seq
|
||||
(seq
|
||||
(ap 1 $inner)
|
||||
(seq
|
||||
(call "{vm_peer_id_2}" ("op" "noop") [1])
|
||||
(ap 2 $inner)
|
||||
)
|
||||
)
|
||||
(seq
|
||||
(canon "{vm_peer_id_2}" $inner #inner)
|
||||
(seq
|
||||
(call "{vm_peer_id_3}" ("op" "noop") [1])
|
||||
(call "{vm_peer_id_2}" ("op" "noop") [1])
|
||||
)
|
||||
)
|
||||
)
|
||||
"#);
|
||||
|
||||
let result11 = checked_call_vm!(peer_vm_1, <_>::default(), &script, "", "");
|
||||
let result21 = checked_call_vm!(peer_vm_2, <_>::default(), &script, "", result11.data.clone());
|
||||
let result31 = checked_call_vm!(peer_vm_3, <_>::default(), &script, "", result21.data.clone());
|
||||
let _result22 = checked_call_vm!(
|
||||
peer_vm_2,
|
||||
<_>::default(),
|
||||
&script,
|
||||
result21.data.clone(),
|
||||
result31.data.clone()
|
||||
);
|
||||
}
|
@ -33,3 +33,4 @@ mod issue_304;
|
||||
mod issue_306;
|
||||
mod issue_331;
|
||||
mod issue_346;
|
||||
mod issue_348;
|
||||
|
@ -114,9 +114,7 @@ fn check_canon_results(
|
||||
{
|
||||
continue;
|
||||
}
|
||||
(Some(ExecutedState::Ap(prev_ap_result)), Some(ExecutedState::Ap(current_ap_result)))
|
||||
if prev_ap_result == current_ap_result =>
|
||||
{
|
||||
(Some(ExecutedState::Ap(_)), Some(ExecutedState::Ap(_))) => {
|
||||
continue;
|
||||
}
|
||||
_ => {
|
||||
|
Loading…
x
Reference in New Issue
Block a user