Make sharness tests' output helpful when verbose.
This means cating certain files, or running diagnostic
commands. I used a construction like:
test_expect_success ".go-ipfs/ has been created" '
test -d ".go-ipfs" &&
test -f ".go-ipfs/config" &&
test -d ".go-ipfs/datastore" ||
fsh ls -al .go-ipfs
'
The `|| ...` is a diagnostic run when the preceding command
fails. `fsh` is a trivial script that echoes the args, runs
the cmd, and then also fails, making sure the test case fails.
(wouldnt want the diagnostic accidentally returning true and
making it _seem_ like the test case succeeded).
This commit makes all network tests use ZeroLocalTCPAddress
as the initial peer address, and then relies on
net.ListenAddresses()
This should get rid of the tcp addr clash problems.
The separation of work in the p2p pkg is as follows:
- net implements the Swarm and connectivity
- protocol has muxer and header protocols
- host implements protocol muxing + services
- identify took over handshake completely! yay.
- p2p package works as a whole
I think it's time to move a lot of the peer-to-peer networking
but-not-ipfs-specific things into its own package: p2p.
This could in the future be split off into its own library.
The first thing to go is the peer.
These services should all be added separately, in a function
that is Network impl independent. The interfaces need to be
massaged a bit (split inet.Network in two), so will do when
needed. For now this is fine.
I needed the network implementation in its own
package, because I'll be writing several services that
will plug into _it_ that shouldn't be part of the core net
package. and then there were dependency conflicts. yay.
mux + identify are good examples of what i mean.
refactor test peer creation to be deterministic and reliable
a bit of cleanup trying to figure out TestGetFailure
add test to verify deterministic peer creation
switch put RPC over to use getClosestPeers
rm 0xDEADC0DE
fix queries not searching peer if its not actually closer