* Add unit tests for core::nodes::NodeStream
* Move DummyMuxer to core/tests
* Address grumbles
* Impl Debug for SubstreamRef<P>
* Add test for poll()
* Don't need to open a substream
* pretty printer test
* More tests for NodeStream poll()
* ListenerStream unit tests: transport() and listeners()
* Tests for nodes/listeners.rs
* Add a few tests to help illustrate the "drowning" behaviour of busy listeners
* Tests for HandledNode
* Address grumbles
* Remove non-project specific stuff
* Address grumbles
* Prefer freestanding function
* Untangle the code for old shutdown test from the new tests
Add HandlerState and use it in TestBuilder
Shorter test names
* WIP – tests pass
* Use a newtype to lighten up the function signatures a bit
Test NotReady case
* Cleanup Event enum
Track events as they reach the Handler
Describe complex test logic
* Assert on the event trace
* More tests for poll()
* Switch to using usize as the OutboundOpenInfo so we can assert on event contents
More tests for poll()
* whitespace
* whitespace and spelling
* WIP tests for handled_node_tasks:Task
* wip
* Move Handler related code to dummy_handler
* Sort out the events going to/from node
* WIP tests for poll
* Add a TestBuilder for NodeTask tests
More NodeTask tests
* Fixes broken test after upstream changes
* Clarify the behaviour of is_shutting_down
* Fix broken test
* Test for task exit when muxers in- and outbound are closed
* Add question about impossible Async::NotReady
* Fix tests after recent changes on master
* Upstream changes
* Tests for HandledNodesTasks
* Add test for HandledNodesTasks poll
* Test we reach all nodes and then closed all nodes
* Test event emission by HandledNodesTasks
* Rustfmt
* More rustfmt
* Less noise
* cleanup
* Address grumbles
* Better debug impl for HandledNodesTasks
* Remove tests for Task we don't need
Test Task.send_event() and id() using a HandledNodesTasks
* Rename test builders
* Don't organise tests in submodules
* whitespace
* Revert changes to Debug impl for HandledNodesTasks
* Add ProtocolsHandlerSelect
* Add a custom derive for NetworkBehaviour
* Remove 2018 edition
* More work
* Update the tests and work
* Allow ignored fields
* More fixes
* Give access to everything in the poll method
* Add ProtocolsHandler trait
* Reexport symbols
* Add a note about shutting down
* Add a PeriodicPingHandler and a PingListenHandler
* Fix core doctest
* Add tolerating not supported
* Fix concerns
* Add unit tests for core::nodes::NodeStream
* Move DummyMuxer to core/tests
* Address grumbles
* Impl Debug for SubstreamRef<P>
* Add test for poll()
* Don't need to open a substream
* pretty printer test
* More tests for NodeStream poll()
* ListenerStream unit tests: transport() and listeners()
* Tests for nodes/listeners.rs
* Add a few tests to help illustrate the "drowning" behaviour of busy listeners
* Tests for HandledNode
* Address grumbles
* Remove non-project specific stuff
* Address grumbles
* Prefer freestanding function
* Untangle the code for old shutdown test from the new tests
Add HandlerState and use it in TestBuilder
Shorter test names
* WIP – tests pass
* Use a newtype to lighten up the function signatures a bit
Test NotReady case
* Cleanup Event enum
Track events as they reach the Handler
Describe complex test logic
* Assert on the event trace
* More tests for poll()
* Switch to using usize as the OutboundOpenInfo so we can assert on event contents
More tests for poll()
* whitespace
* Move Handler related code to dummy_handler
* Fixes broken test after upstream changes
* Clarify the behaviour of is_shutting_down
* Fix broken test
* Fix tests after recent changes on master
* no tabs
* whitespace
* rustfmt
* Add public HandledNode.handler() method that returns a ref to the NodeHandler
Don't use private members in tests
* Add HandledNode.handler_mut that returns a mutable ref to the NodeHandler
* Remove debugging stmts
* Fix parse error
* remove tokio_current_thread tests
* Review changes:
Removed newline
Moved uds tokio test crate to top to avoid self and keep with convention of other test crates
Removed sleep from uds test and block until all futures are completed.
Add shutdown functionality to `NodeStream`.
Add `NodeStream::shutdown` to allow triggering the shutdown process,
and `NodeStream::poll_shutdown` as the internal way to drive any
potential shutdown to completion.
Update the `StreamMuxer` trait.
- `read_substream`, `write_substream` and `flush_substream` now return `Poll` instead of `Result`.
- A new `Shutdown` enum allows for half-closing of substreams and is used in `shutdown_substream`.
- `close_inbound` and `close_outbound` have been merged into `shutdown` which takes a `Shutdown` parameter to allow closing only one direction.
- Add a new `flush_all` method to allow flushing after a series of actions (e.g. multiple `shutdown_substream`).
W.r.t. flushing the general idea is that normal use drains buffers over time. Shutting down a substream does not imply flushing, so can be followed by `flush_substream` or (if multiple substreams are to be shut down) a single `flush_all`. Shutting down the muxer itself proceeds likewise, i.e. `shutdown` followed by `flush_all`.
* Add unit tests for core::nodes::NodeStream
* Move DummyMuxer to core/tests
* Address grumbles
* Impl Debug for SubstreamRef<P>
* Add test for poll()
* Don't need to open a substream
* pretty printer test
* More tests for NodeStream poll()
* ListenerStream unit tests: transport() and listeners()
* Tests for nodes/listeners.rs
* Add a few tests to help illustrate the "drowning" behaviour of busy listeners
* Address grumbles
* Remove non-project specific stuff
* Address grumbles
* Prefer freestanding function
* Add unit tests for core::nodes::NodeStream
* Move DummyMuxer to core/tests
* Address grumbles
* Impl Debug for SubstreamRef<P>
* Add test for poll()
* Don't need to open a substream
* pretty printer test
* More tests for NodeStream poll()
* Remove contentious test of Debug
* Provide poll() as a regular method when we can't fail
* Add a CollectionReachEvent that allows accepting
* Add small TODO in handled_node
* Implement Debug on collection events
* Implement Debug for CollectionStream
* Implement Debug for structs in handled_node_tasks
* Attempt to fix compilation errors with stable Rust
* Prove the unwrap
Refactor multiaddr crate.
- Remove `AddrComponent`. Instead `Protocol` directly contains its
associated data.
- Various smaller changes around conversions to Multiaddr from other
types, e.g. socket addresses.
- Expand tests to include property tests which test encoding/decoding
identity.
* Rewrite the swarm
* Small improvement to Debug of ListenersStream
* Fix Swarm::Replaced never being produced
* Fix logic problem when reaching a node in swarm
* Small comment in swarm
* Add closed_multiaddr to Replaced event
* Add address to NodeClosed and NodeError
* Fix concerns
* Remove StreamMuxer::boxed