mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-05-06 02:08:02 +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
@@ -745,7 +745,7 @@ where
|
||||
|
||||
/// Run this subsystem
|
||||
pub async fn run(ctx: Context, keystore: KeyStorePtr, spawner: Spawner) {
|
||||
<Manager<Spawner, Context>>::run(ctx, keystore, spawner).await
|
||||
<Manager<Spawner, Context>>::run(ctx, keystore, spawner, None).await
|
||||
}
|
||||
}
|
||||
|
||||
@@ -895,13 +895,13 @@ mod tests {
|
||||
}
|
||||
|
||||
struct TestHarness {
|
||||
virtual_overseer: subsystem_test::TestSubsystemContextHandle<CandidateBackingMessage>,
|
||||
virtual_overseer: polkadot_subsystem::test_helpers::TestSubsystemContextHandle<CandidateBackingMessage>,
|
||||
}
|
||||
|
||||
fn test_harness<T: Future<Output=()>>(keystore: KeyStorePtr, test: impl FnOnce(TestHarness) -> T) {
|
||||
let pool = sp_core::testing::SpawnBlockingExecutor::new();
|
||||
|
||||
let (context, virtual_overseer) = subsystem_test::make_subsystem_context(pool.clone());
|
||||
let (context, virtual_overseer) = polkadot_subsystem::test_helpers::make_subsystem_context(pool.clone());
|
||||
|
||||
let subsystem = CandidateBackingSubsystem::run(context, keystore, pool.clone());
|
||||
|
||||
@@ -959,7 +959,7 @@ mod tests {
|
||||
|
||||
// Tests that the subsystem performs actions that are requied on startup.
|
||||
async fn test_startup(
|
||||
virtual_overseer: &mut subsystem_test::TestSubsystemContextHandle<CandidateBackingMessage>,
|
||||
virtual_overseer: &mut polkadot_subsystem::test_helpers::TestSubsystemContextHandle<CandidateBackingMessage>,
|
||||
test_state: &TestState,
|
||||
) {
|
||||
// Start work on some new parent.
|
||||
|
||||
Reference in New Issue
Block a user