• Peter Goodspeed-Niklaus's avatar
    Add test suite and minor refinements to the utility subsystem (#1403) · cc2d7afd
    Peter Goodspeed-Niklaus authored
    * 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
    cc2d7afd
This project manages its dependencies using Cargo. Learn more