Skip to content

Commit d9189f0

Browse files
authored
Merge pull request #99 from movementlabsxyz/sebtomba/move-e2e-criteria
refactor(e2e): move e2e criterion GlobalFeatureCheck to checks/migrator
2 parents 1025075 + 49eca5d commit d9189f0

File tree

20 files changed

+590
-30
lines changed

20 files changed

+590
-30
lines changed

Cargo.lock

Lines changed: 39 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -191,6 +191,9 @@ mtma-node-test-global-storage-not-empty-criterion = { path = "checks/node/citeri
191191

192192
### migrator
193193
mtma-migrator-test-types = { path = "checks/migrator/util/types" }
194+
mtma-migrator-test-empty-criterion = { path = "checks/migrator/citeria/empty" }
195+
mtma-migrator-test-matching-feature-flags-criterion = { path = "checks/migrator/citeria/matching-feature-flags" }
196+
mtma-migrator-test-transacting-criterion = { path = "checks/migrator/citeria/transacting" }
194197
mtma-migrator-test-accounts-equal-criterion = { path = "checks/migrator/citeria/accounts-equal" }
195198
mtma-migrator-test-balances-equal-criterion = { path = "checks/migrator/citeria/balances-equal" }
196199

checks/migrator/checks/sketchpad/Cargo.toml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,9 @@ mtma-types = { workspace = true }
1313
mtma-migrator-types = { workspace = true }
1414
mtma-migrator-test-types = { workspace = true }
1515
anyhow = { workspace = true }
16+
mtma-migrator-test-matching-feature-flags-criterion = { workspace = true }
17+
mtma-migrator-test-transacting-criterion = { workspace = true }
18+
mtma-migrator-test-empty-criterion = { workspace = true }
1619
mtma-node-replay-core = { workspace = true }
1720
mtma-node-test-global-storage-injective-criterion = { workspace = true }
1821
mtma-node-test-global-storage-includes-criterion = { workspace = true }
@@ -25,6 +28,7 @@ chrono = { workspace = true }
2528
rand = { workspace = true }
2629
kestrel = { workspace = true }
2730
mtma-node-test-types = { workspace = true }
31+
aptos-sdk = { workspace = true }
2832

2933
[dev-dependencies]
3034
tracing-test = { workspace = true }
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,3 @@
1+
pub mod matching_feature_flags;
2+
pub mod transacting;
13
pub mod accounts_equal;
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
#[cfg(test)]
2+
pub mod test {
3+
use mtma_migrator_test_matching_feature_flags_criterion::GlobalFeatureCheck;
4+
use mtma_migrator_test_types::check::checked_migration;
5+
use mtma_migrator_types::migrator::{movement_migrator::Overlays, MovementMigrator};
6+
use mtma_node_null_core::config::Config as MtmaNullConfig;
7+
use mtma_node_test_types::prelude::Prelude;
8+
9+
#[tokio::test]
10+
#[tracing_test::traced_test]
11+
async fn test_matching_feature_flags() -> Result<(), anyhow::Error> {
12+
// Form the migrator.
13+
let mut movement_migrator = MovementMigrator::try_temp()?;
14+
// TODO: use `MovementMigrator::try_debug_home()`
15+
// let mut movement_migrator = MovementMigrator::try_debug_home()?;
16+
movement_migrator.set_overlays(Overlays::default());
17+
18+
// Start the migrator so that it's running in the background.
19+
// In the future, some migrators may be for already running nodes.
20+
let movement_migrator_for_task = movement_migrator.clone();
21+
let movement_migrator_task = kestrel::task(async move {
22+
movement_migrator_for_task.run().await?;
23+
Ok::<_, anyhow::Error>(())
24+
});
25+
26+
tokio::time::sleep(tokio::time::Duration::from_secs(30)).await;
27+
28+
kestrel::end!(movement_migrator_task)?;
29+
30+
// Form the prelude.
31+
// todo: this needs to be updated to use the prelude generator
32+
let prelude = Prelude::new_empty();
33+
34+
// Form the migration.
35+
let migration_config = MtmaNullConfig::default();
36+
let migration = migration_config.build()?;
37+
38+
// Run the checked migration.
39+
let matching_feature_flags = GlobalFeatureCheck::new();
40+
checked_migration(
41+
&mut movement_migrator,
42+
&prelude,
43+
&migration,
44+
vec![matching_feature_flags],
45+
)
46+
.await?;
47+
48+
Ok(())
49+
}
50+
}
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
#[cfg(test)]
2+
pub mod test {
3+
use aptos_sdk::types::LocalAccount;
4+
use mtma_migrator_test_transacting_criterion::MaptosTransferLifecycle;
5+
use mtma_migrator_test_types::check::checked_migration;
6+
use mtma_migrator_types::migrator::{movement_migrator::Overlays, MovementMigrator};
7+
use mtma_node_null_core::config::Config as MtmaNullConfig;
8+
use mtma_node_test_types::prelude::Prelude;
9+
10+
#[tokio::test]
11+
#[tracing_test::traced_test]
12+
async fn test_transacting() -> Result<(), anyhow::Error> {
13+
// Form the migrator.
14+
let mut movement_migrator = MovementMigrator::try_temp()?;
15+
// TODO: use `MovementMigrator::try_debug_home()`
16+
// let mut movement_migrator = MovementMigrator::try_debug_home()?;
17+
movement_migrator.set_overlays(Overlays::default());
18+
19+
// Start the migrator so that it's running in the background.
20+
// In the future, some migrators may be for already running nodes.
21+
let movement_migrator_for_task = movement_migrator.clone();
22+
let movement_migrator_task = kestrel::task(async move {
23+
movement_migrator_for_task.run().await?;
24+
Ok::<_, anyhow::Error>(())
25+
});
26+
27+
tokio::time::sleep(tokio::time::Duration::from_secs(30)).await;
28+
29+
kestrel::end!(movement_migrator_task)?;
30+
31+
// Form the prelude.
32+
// todo: this needs to be updated to use the prelude generator
33+
let prelude = Prelude::new_empty();
34+
35+
// Form the migration.
36+
let migration_config = MtmaNullConfig::default();
37+
let migration = migration_config.build()?;
38+
39+
// Run the checked migration.
40+
let local_account = LocalAccount::generate(&mut rand::rngs::OsRng);
41+
let transacting = MaptosTransferLifecycle::new(local_account);
42+
checked_migration(&mut movement_migrator, &prelude, &migration, vec![transacting]).await?;
43+
44+
Ok(())
45+
}
46+
}

checks/migrator/citeria/empty/Cargo.toml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,7 @@ publish = { workspace = true }
99
rust-version = { workspace = true }
1010

1111
[dependencies]
12-
mtma-node-test-types = { workspace = true }
13-
12+
mtma-migrator-test-types = { workspace = true }
1413

1514
[lints]
1615
workspace = true

checks/migrator/citeria/empty/src/lib.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
use mtma_node_test_types::criterion::{
2-
Criterion, CriterionError, Criterionish, MovementAptosNode, MovementNode,
1+
use mtma_migrator_test_types::criterion::{
2+
Criterion, CriterionError, Criterionish, MovementAptosMigrator, MovementMigrator,
33
};
44

55
pub struct Empty;
@@ -15,10 +15,10 @@ impl Empty {
1515
}
1616

1717
impl Criterionish for Empty {
18-
fn satisfies(
18+
async fn satisfies(
1919
&self,
20-
_movement_executor: &MovementNode,
21-
_movement_aptos_executor: &MovementAptosNode,
20+
_movement_migrator: &MovementMigrator,
21+
_movement_aptos_migrator: &MovementAptosMigrator,
2222
) -> Result<(), CriterionError> {
2323
Ok(())
2424
}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
[package]
2+
name = "mtma-migrator-test-matching-feature-flags-criterion"
3+
version = { workspace = true }
4+
edition = { workspace = true }
5+
license = { workspace = true }
6+
authors = { workspace = true }
7+
homepage = { workspace = true }
8+
publish = { workspace = true }
9+
rust-version = { workspace = true }
10+
11+
[dependencies]
12+
mtma-migrator-test-types = { workspace = true }
13+
movement-client = { workspace = true }
14+
aptos-rest-client = { workspace = true }
15+
tokio = { workspace = true }
16+
serde_json = { workspace = true }
17+
18+
[lints]
19+
workspace = true
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
# Matching Feature Flags
2+
The Matching Feature Flags criterion reports feature flags differences between the new framework and the old framework. It asserts that the new framework has the same features as Aptos but for features 73 (Governed Gas Pool), which should be true.

0 commit comments

Comments
 (0)