Skip to content

Commit eef38b1

Browse files
authored
Zombienet test with timeout v2 (#9640)
refactor suggestion from #9168 (comment)
1 parent 70ccbe6 commit eef38b1

File tree

1 file changed

+7
-24
lines changed

1 file changed

+7
-24
lines changed

cumulus/zombienet/zombienet-sdk/tests/zombie_ci/statement_store.rs

Lines changed: 7 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -10,20 +10,6 @@ use futures::FutureExt;
1010
use sp_core::{Bytes, Encode};
1111
use zombienet_sdk::{subxt::rpc_params, NetworkConfigBuilder};
1212

13-
fn timeout_1min<T>(
14-
fut: impl std::future::Future<Output = Result<T, impl Into<anyhow::Error>>>,
15-
) -> impl std::future::Future<Output = Result<T, anyhow::Error>> {
16-
let caller_loc = std::panic::Location::caller();
17-
tokio::time::timeout(Duration::from_secs(60), fut).map(move |res| match res {
18-
Ok(res) => res.map_err(|e| e.into()),
19-
Err(_) => Err(anyhow!(
20-
"Operation timed out after 60s (called from {}:{})",
21-
caller_loc.file(),
22-
caller_loc.line(),
23-
)),
24-
})
25-
}
26-
2713
#[tokio::test(flavor = "multi_thread")]
2814
async fn statement_store() -> Result<(), anyhow::Error> {
2915
let _ = env_logger::try_init_from_env(
@@ -69,13 +55,14 @@ async fn statement_store() -> Result<(), anyhow::Error> {
6955
})?;
7056

7157
let spawn_fn = zombienet_sdk::environment::get_spawn_fn();
72-
let network = timeout_1min(spawn_fn(config)).await?;
58+
let network = spawn_fn(config).await?;
59+
assert!(network.wait_until_is_up(60).await.is_ok());
7360

7461
let charlie = network.get_node("charlie")?;
7562
let dave = network.get_node("dave")?;
7663

77-
let charlie_rpc = timeout_1min(charlie.rpc()).await?;
78-
let dave_rpc = timeout_1min(dave.rpc()).await?;
64+
let charlie_rpc = charlie.rpc().await?;
65+
let dave_rpc = dave.rpc().await?;
7966

8067
// Create the statement "1,2,3" signed by dave.
8168
let mut statement = sp_statement_store::Statement::new();
@@ -85,13 +72,10 @@ async fn statement_store() -> Result<(), anyhow::Error> {
8572
let statement: Bytes = statement.encode().into();
8673

8774
// Submit the statement to charlie.
88-
let _: () =
89-
timeout_1min(charlie_rpc.request("statement_submit", rpc_params![statement.clone()]))
90-
.await?;
75+
let _: () = charlie_rpc.request("statement_submit", rpc_params![statement.clone()]).await?;
9176

9277
// Ensure that charlie stored the statement.
93-
let charlie_dump: Vec<Bytes> =
94-
timeout_1min(charlie_rpc.request("statement_dump", rpc_params![])).await?;
78+
let charlie_dump: Vec<Bytes> = charlie_rpc.request("statement_dump", rpc_params![]).await?;
9579
if charlie_dump != vec![statement.clone()] {
9680
return Err(anyhow!("Charlie did not store the statement"));
9781
}
@@ -100,8 +84,7 @@ async fn statement_store() -> Result<(), anyhow::Error> {
10084
let query_start_time = std::time::SystemTime::now();
10185
let stop_after_secs = 20;
10286
loop {
103-
let dave_dump: Vec<Bytes> =
104-
timeout_1min(dave_rpc.request("statement_dump", rpc_params![])).await?;
87+
let dave_dump: Vec<Bytes> = dave_rpc.request("statement_dump", rpc_params![]).await?;
10588
if !dave_dump.is_empty() {
10689
if dave_dump != vec![statement.clone()] {
10790
return Err(anyhow!("Dave statement store is not the expected one"));

0 commit comments

Comments
 (0)