mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-06-13 19:51:05 +00:00
Add test suite and minor refinements to the utility subsystem (#1403)
* get conclude signal working properly; don't allocate a vector * wip: add test suite / example / explanation for using utility subsystem Unfortunately, the test fails right now for reasons which seem very odd. Just have to keep poking at it. * explicitly import everything * fix subsystem-util test The root problem here was two-fold: - there was a circular dependency from subsystem -> test-helpers/subsystem -> subsystem - cfg(test) doesn't propagate between crates The solution: move the subsystem test helpers into a sub-module within subsystem. Publicly export them from the previous location so no other code breaks. Doing this has an additional benefit: it ensures that no production code can ever accidentally use the subsystem helpers, as they are compile- gated on cfg(test). * fully commit to moving test helpers into a subsystem module * add some more tests * get rid of log tests in favor of real error forwarding It's not obvious whether we'll ever really want to chase down these errors outside a testing context, but having the capability won't hurt. * fix issue which caused test to hang on osx * only require that job errors are PartialEq when testing also fix polkadot-node-core-backing tests * get rid of any notion of partialeq * rethink testing Combine tests of starting and stopping job: leaving a test executor with a job running was pretty clearly the cause of the sometimes-hang. Also, add a timeout so tests _can't_ hang anymore; they just fail after a while. * rename fwd_errors -> forward_errors * warn on error propagation failure * fix unused import leftover from merge * derive eq for subsystemerror
This commit is contained in:
committed by
GitHub
parent
9aadb5d499
commit
5cfcc8446c
@@ -18,6 +18,5 @@ polkadot-subsystem = { package = "polkadot-node-subsystem", path = "../../subsys
|
||||
|
||||
[dev-dependencies]
|
||||
parking_lot = "0.10.0"
|
||||
subsystem-test = { package = "polkadot-subsystem-test-helpers", path = "../../test-helpers/subsystem" }
|
||||
assert_matches = "1.3.0"
|
||||
sp-core = { git = "https://github.com/paritytech/substrate", branch = "master" }
|
||||
|
||||
@@ -531,7 +531,7 @@ mod tests {
|
||||
use assert_matches::assert_matches;
|
||||
|
||||
use polkadot_subsystem::messages::{StatementDistributionMessage, BitfieldDistributionMessage};
|
||||
use subsystem_test::{SingleItemSink, SingleItemStream};
|
||||
use polkadot_subsystem::test_helpers::{SingleItemSink, SingleItemStream};
|
||||
|
||||
// The subsystem's view of the network - only supports a single call to `event_stream`.
|
||||
struct TestNetwork {
|
||||
@@ -550,7 +550,7 @@ mod tests {
|
||||
TestNetwork,
|
||||
TestNetworkHandle,
|
||||
) {
|
||||
let (net_tx, net_rx) = subsystem_test::single_item_sink();
|
||||
let (net_tx, net_rx) = polkadot_subsystem::test_helpers::single_item_sink();
|
||||
let (action_tx, action_rx) = mpsc::unbounded();
|
||||
|
||||
(
|
||||
@@ -631,13 +631,13 @@ mod tests {
|
||||
|
||||
struct TestHarness {
|
||||
network_handle: TestNetworkHandle,
|
||||
virtual_overseer: subsystem_test::TestSubsystemContextHandle<NetworkBridgeMessage>,
|
||||
virtual_overseer: polkadot_subsystem::test_helpers::TestSubsystemContextHandle<NetworkBridgeMessage>,
|
||||
}
|
||||
|
||||
fn test_harness<T: Future<Output=()>>(test: impl FnOnce(TestHarness) -> T) {
|
||||
let pool = sp_core::testing::SpawnBlockingExecutor::new();
|
||||
let (network, network_handle) = new_test_network();
|
||||
let (context, virtual_overseer) = subsystem_test::make_subsystem_context(pool);
|
||||
let (context, virtual_overseer) = polkadot_subsystem::test_helpers::make_subsystem_context(pool);
|
||||
|
||||
let network_bridge = run_network(
|
||||
network,
|
||||
|
||||
@@ -18,6 +18,6 @@ polkadot-subsystem = { package = "polkadot-node-subsystem", path = "../../subsys
|
||||
|
||||
[dev-dependencies]
|
||||
parking_lot = "0.10.0"
|
||||
subsystem-test = { package = "polkadot-subsystem-test-helpers", path = "../../test-helpers/subsystem" }
|
||||
assert_matches = "1.3.0"
|
||||
sp-core = { git = "https://github.com/paritytech/substrate", branch = "master" }
|
||||
polkadot-subsystem = { package = "polkadot-node-subsystem", path = "../../subsystem", features = [ "test-helpers" ] }
|
||||
|
||||
@@ -620,7 +620,7 @@ mod tests {
|
||||
};
|
||||
|
||||
let pool = sp_core::testing::SpawnBlockingExecutor::new();
|
||||
let (mut ctx, mut handle) = subsystem_test::make_subsystem_context(pool);
|
||||
let (mut ctx, mut handle) = polkadot_subsystem::test_helpers::make_subsystem_context(pool);
|
||||
let mut descriptor = CandidateDescriptor::default();
|
||||
descriptor.pov_hash = pov_hash;
|
||||
|
||||
@@ -700,7 +700,7 @@ mod tests {
|
||||
};
|
||||
|
||||
let pool = sp_core::testing::SpawnBlockingExecutor::new();
|
||||
let (mut ctx, mut handle) = subsystem_test::make_subsystem_context(pool);
|
||||
let (mut ctx, mut handle) = polkadot_subsystem::test_helpers::make_subsystem_context(pool);
|
||||
let mut descriptor = CandidateDescriptor::default();
|
||||
descriptor.pov_hash = pov_hash;
|
||||
|
||||
@@ -778,7 +778,7 @@ mod tests {
|
||||
};
|
||||
|
||||
let pool = sp_core::testing::SpawnBlockingExecutor::new();
|
||||
let (mut ctx, mut handle) = subsystem_test::make_subsystem_context(pool);
|
||||
let (mut ctx, mut handle) = polkadot_subsystem::test_helpers::make_subsystem_context(pool);
|
||||
|
||||
executor::block_on(async move {
|
||||
handle_network_update(
|
||||
@@ -850,7 +850,7 @@ mod tests {
|
||||
};
|
||||
|
||||
let pool = sp_core::testing::SpawnBlockingExecutor::new();
|
||||
let (mut ctx, mut handle) = subsystem_test::make_subsystem_context(pool);
|
||||
let (mut ctx, mut handle) = polkadot_subsystem::test_helpers::make_subsystem_context(pool);
|
||||
|
||||
executor::block_on(async move {
|
||||
// Peer A answers our request before peer B.
|
||||
@@ -938,7 +938,7 @@ mod tests {
|
||||
};
|
||||
|
||||
let pool = sp_core::testing::SpawnBlockingExecutor::new();
|
||||
let (mut ctx, mut handle) = subsystem_test::make_subsystem_context(pool);
|
||||
let (mut ctx, mut handle) = polkadot_subsystem::test_helpers::make_subsystem_context(pool);
|
||||
|
||||
executor::block_on(async move {
|
||||
// Peer A answers our request: right relay parent, awaited hash, wrong PoV.
|
||||
@@ -1001,7 +1001,7 @@ mod tests {
|
||||
};
|
||||
|
||||
let pool = sp_core::testing::SpawnBlockingExecutor::new();
|
||||
let (mut ctx, mut handle) = subsystem_test::make_subsystem_context(pool);
|
||||
let (mut ctx, mut handle) = polkadot_subsystem::test_helpers::make_subsystem_context(pool);
|
||||
|
||||
executor::block_on(async move {
|
||||
// Peer A answers our request: right relay parent, awaited hash, wrong PoV.
|
||||
@@ -1062,7 +1062,7 @@ mod tests {
|
||||
};
|
||||
|
||||
let pool = sp_core::testing::SpawnBlockingExecutor::new();
|
||||
let (mut ctx, mut handle) = subsystem_test::make_subsystem_context(pool);
|
||||
let (mut ctx, mut handle) = polkadot_subsystem::test_helpers::make_subsystem_context(pool);
|
||||
|
||||
executor::block_on(async move {
|
||||
// Peer A answers our request: right relay parent, awaited hash, wrong PoV.
|
||||
@@ -1120,7 +1120,7 @@ mod tests {
|
||||
};
|
||||
|
||||
let pool = sp_core::testing::SpawnBlockingExecutor::new();
|
||||
let (mut ctx, mut handle) = subsystem_test::make_subsystem_context(pool);
|
||||
let (mut ctx, mut handle) = polkadot_subsystem::test_helpers::make_subsystem_context(pool);
|
||||
|
||||
executor::block_on(async move {
|
||||
let max_plausibly_awaited = n_validators * 2;
|
||||
@@ -1205,7 +1205,7 @@ mod tests {
|
||||
};
|
||||
|
||||
let pool = sp_core::testing::SpawnBlockingExecutor::new();
|
||||
let (mut ctx, mut handle) = subsystem_test::make_subsystem_context(pool);
|
||||
let (mut ctx, mut handle) = polkadot_subsystem::test_helpers::make_subsystem_context(pool);
|
||||
|
||||
executor::block_on(async move {
|
||||
let pov_hash = make_pov(vec![1, 2, 3]).hash();
|
||||
@@ -1267,7 +1267,7 @@ mod tests {
|
||||
};
|
||||
|
||||
let pool = sp_core::testing::SpawnBlockingExecutor::new();
|
||||
let (mut ctx, mut handle) = subsystem_test::make_subsystem_context(pool);
|
||||
let (mut ctx, mut handle) = polkadot_subsystem::test_helpers::make_subsystem_context(pool);
|
||||
|
||||
executor::block_on(async move {
|
||||
let pov_hash = make_pov(vec![1, 2, 3]).hash();
|
||||
@@ -1344,7 +1344,7 @@ mod tests {
|
||||
};
|
||||
|
||||
let pool = sp_core::testing::SpawnBlockingExecutor::new();
|
||||
let (mut ctx, mut handle) = subsystem_test::make_subsystem_context(pool);
|
||||
let (mut ctx, mut handle) = polkadot_subsystem::test_helpers::make_subsystem_context(pool);
|
||||
|
||||
executor::block_on(async move {
|
||||
handle_network_update(
|
||||
@@ -1427,7 +1427,7 @@ mod tests {
|
||||
};
|
||||
|
||||
let pool = sp_core::testing::SpawnBlockingExecutor::new();
|
||||
let (mut ctx, mut handle) = subsystem_test::make_subsystem_context(pool);
|
||||
let (mut ctx, mut handle) = polkadot_subsystem::test_helpers::make_subsystem_context(pool);
|
||||
|
||||
executor::block_on(async move {
|
||||
handle_network_update(
|
||||
|
||||
@@ -21,7 +21,7 @@ indexmap = "1.4.0"
|
||||
|
||||
[dev-dependencies]
|
||||
parking_lot = "0.10.0"
|
||||
subsystem-test = { package = "polkadot-subsystem-test-helpers", path = "../../test-helpers/subsystem" }
|
||||
polkadot-subsystem = { package = "polkadot-node-subsystem", path = "../../subsystem", features = ["test-helpers"] }
|
||||
assert_matches = "1.3.0"
|
||||
sp-keyring = { git = "https://github.com/paritytech/substrate", branch = "master" }
|
||||
sp-core = { git = "https://github.com/paritytech/substrate", branch = "master" }
|
||||
|
||||
@@ -1213,7 +1213,7 @@ mod tests {
|
||||
};
|
||||
|
||||
let pool = sp_core::testing::SpawnBlockingExecutor::new();
|
||||
let (mut ctx, mut handle) = subsystem_test::make_subsystem_context(pool);
|
||||
let (mut ctx, mut handle) = polkadot_subsystem::test_helpers::make_subsystem_context(pool);
|
||||
let peer = PeerId::random();
|
||||
|
||||
executor::block_on(async move {
|
||||
@@ -1305,7 +1305,7 @@ mod tests {
|
||||
].into_iter().collect();
|
||||
|
||||
let pool = sp_core::testing::SpawnBlockingExecutor::new();
|
||||
let (mut ctx, mut handle) = subsystem_test::make_subsystem_context(pool);
|
||||
let (mut ctx, mut handle) = polkadot_subsystem::test_helpers::make_subsystem_context(pool);
|
||||
|
||||
executor::block_on(async move {
|
||||
let statement = {
|
||||
|
||||
Reference in New Issue
Block a user