tests: use future::join instead of future::select (#2813)

* tests/av-store: use future::join instead of future::select

* tests/backing: use future::join instead of future::select

* tests/provisioner: use future::join instead of future::select

* tests/av-dist: use future::join instead of future::select

* tests/av-recovery: use future::join instead of future::select

* tests/bridge: use future::join instead of future::select

* tests/collator-protocol: use future::join instead of future::select

* tests/stmt-dist: use future::join instead of future::select

* fix tests
This commit is contained in:
Andronik Ordian
2021-04-05 18:30:27 +02:00
committed by GitHub
parent 5c94a5b9c7
commit 2ff5c9b995
11 changed files with 215 additions and 154 deletions
@@ -27,7 +27,7 @@ use super::*;
type VirtualOverseer = test_helpers::TestSubsystemContextHandle<ApprovalDistributionMessage>;
fn test_harness<T: Future<Output = ()>>(
fn test_harness<T: Future<Output = VirtualOverseer>>(
mut state: State,
test_fn: impl FnOnce(VirtualOverseer) -> T,
) -> State {
@@ -51,7 +51,14 @@ fn test_harness<T: Future<Output = ()>>(
futures::pin_mut!(test_fut);
futures::pin_mut!(subsystem);
executor::block_on(future::select(test_fut, subsystem));
executor::block_on(future::join(async move {
let mut overseer = test_fut.await;
overseer
.send(FromOverseer::Signal(OverseerSignal::Conclude))
.timeout(TIMEOUT)
.await
.expect("Conclude send timeout");
}, subsystem));
}
state
@@ -262,6 +269,7 @@ fn try_import_the_same_assignment() {
.is_none(),
"no message should be sent",
);
virtual_overseer
});
}
@@ -342,6 +350,7 @@ fn spam_attack_results_in_negative_reputation_change() {
expect_reputation_change(overseer, peer, COST_UNEXPECTED_MESSAGE).await;
expect_reputation_change(overseer, peer, BENEFIT_VALID_MESSAGE).await;
}
virtual_overseer
});
}
@@ -423,6 +432,7 @@ fn peer_sending_us_the_same_we_just_sent_them_is_ok() {
// now we should
expect_reputation_change(overseer, peer, COST_DUPLICATE_MESSAGE).await;
virtual_overseer
});
}
@@ -509,6 +519,7 @@ fn import_approval_happy_path() {
assert_eq!(approvals.len(), 1);
}
);
virtual_overseer
});
}
@@ -588,6 +599,7 @@ fn import_approval_bad() {
);
expect_reputation_change(overseer, &peer_b, COST_INVALID_MESSAGE).await;
virtual_overseer
});
}
@@ -626,6 +638,7 @@ fn update_our_view() {
let msg = ApprovalDistributionMessage::NewBlocks(vec![meta_a, meta_b, meta_c]);
overseer_send(overseer, msg).await;
virtual_overseer
});
assert!(state.blocks_by_number.get(&1).is_some());
@@ -639,6 +652,7 @@ fn update_our_view() {
let overseer = &mut virtual_overseer;
// finalize a block
overseer_signal_block_finalized(overseer, 2).await;
virtual_overseer
});
assert!(state.blocks_by_number.get(&1).is_none());
@@ -652,6 +666,7 @@ fn update_our_view() {
let overseer = &mut virtual_overseer;
// finalize a very high block
overseer_signal_block_finalized(overseer, 4_000_000_000).await;
virtual_overseer
});
assert!(state.blocks_by_number.get(&3).is_none());
@@ -726,6 +741,7 @@ fn update_peer_view() {
assert_eq!(assignments.len(), 1);
}
);
virtual_overseer
});
assert_eq!(state.peer_views.get(peer).map(|v| v.finalized_number), Some(0));
@@ -773,6 +789,7 @@ fn update_peer_view() {
assert_eq!(assignments[0].0, cert_c);
}
);
virtual_overseer
});
assert_eq!(state.peer_views.get(peer).map(|v| v.finalized_number), Some(2));
@@ -799,6 +816,7 @@ fn update_peer_view() {
NetworkBridgeEvent::PeerViewChange(peer.clone(), View::with_finalized(finalized_number))
)
).await;
virtual_overseer
});
assert_eq!(state.peer_views.get(peer).map(|v| v.finalized_number), Some(finalized_number));
@@ -909,6 +927,7 @@ fn import_remotely_then_locally() {
.is_none(),
"no message should be sent",
);
virtual_overseer
});
}
@@ -994,5 +1013,6 @@ fn sends_assignments_even_when_state_is_approved() {
.is_none(),
"no message should be sent",
);
virtual_overseer
});
}