p2p: fix tests for required channels

This commit is contained in:
Ethan Buchman
2018-01-23 23:40:33 -05:00
parent 50129ad8ac
commit 99034904f8
3 changed files with 26 additions and 15 deletions

View File

@ -240,6 +240,9 @@ func (p *peer) hasChannel(chID byte) bool {
return true return true
} }
} }
// NOTE: probably will want to remove this
// but could be helpful while the feature is new
p.Logger.Debug("Unknown channel for peer", "channel", chID, "channels", p.channels)
return false return false
} }

View File

@ -13,6 +13,8 @@ import (
tmconn "github.com/tendermint/tendermint/p2p/conn" tmconn "github.com/tendermint/tendermint/p2p/conn"
) )
const testCh = 0x01
func TestPeerBasic(t *testing.T) { func TestPeerBasic(t *testing.T) {
assert, require := assert.New(t), require.New(t) assert, require := assert.New(t), require.New(t)
@ -77,15 +79,15 @@ func TestPeerSend(t *testing.T) {
defer p.Stop() defer p.Stop()
assert.True(p.CanSend(0x01)) assert.True(p.CanSend(testCh))
assert.True(p.Send(0x01, "Asylum")) assert.True(p.Send(testCh, "Asylum"))
} }
func createOutboundPeerAndPerformHandshake(addr *NetAddress, config *PeerConfig) (*peer, error) { func createOutboundPeerAndPerformHandshake(addr *NetAddress, config *PeerConfig) (*peer, error) {
chDescs := []*tmconn.ChannelDescriptor{ chDescs := []*tmconn.ChannelDescriptor{
{ID: 0x01, Priority: 1}, {ID: testCh, Priority: 1},
} }
reactorsByCh := map[byte]Reactor{0x01: NewTestReactor(chDescs, true)} reactorsByCh := map[byte]Reactor{testCh: NewTestReactor(chDescs, true)}
pk := crypto.GenPrivKeyEd25519().Wrap() pk := crypto.GenPrivKeyEd25519().Wrap()
p, err := newOutboundPeer(addr, reactorsByCh, chDescs, func(p Peer, r interface{}) {}, pk, config, false) p, err := newOutboundPeer(addr, reactorsByCh, chDescs, func(p Peer, r interface{}) {}, pk, config, false)
if err != nil { if err != nil {
@ -96,6 +98,7 @@ func createOutboundPeerAndPerformHandshake(addr *NetAddress, config *PeerConfig)
Moniker: "host_peer", Moniker: "host_peer",
Network: "testing", Network: "testing",
Version: "123.123.123", Version: "123.123.123",
Channels: []byte{testCh},
}, 1*time.Second) }, 1*time.Second)
if err != nil { if err != nil {
return nil, err return nil, err
@ -148,6 +151,7 @@ func (p *remotePeer) accept(l net.Listener) {
Network: "testing", Network: "testing",
Version: "123.123.123", Version: "123.123.123",
ListenAddr: l.Addr().String(), ListenAddr: l.Addr().String(),
Channels: []byte{testCh},
}, 1*time.Second) }, 1*time.Second)
if err != nil { if err != nil {
golog.Fatalf("Failed to perform handshake: %+v", err) golog.Fatalf("Failed to perform handshake: %+v", err)

View File

@ -132,16 +132,20 @@ func MakeSwitch(cfg *cfg.P2PConfig, i int, network, version string, initSwitch f
nodeKey := &NodeKey{ nodeKey := &NodeKey{
PrivKey: crypto.GenPrivKeyEd25519().Wrap(), PrivKey: crypto.GenPrivKeyEd25519().Wrap(),
} }
s := NewSwitch(cfg) sw := NewSwitch(cfg)
s.SetLogger(log.TestingLogger()) sw.SetLogger(log.TestingLogger())
s = initSwitch(i, s) sw = initSwitch(i, sw)
s.SetNodeInfo(NodeInfo{ ni := NodeInfo{
PubKey: nodeKey.PubKey(), PubKey: nodeKey.PubKey(),
Moniker: cmn.Fmt("switch%d", i), Moniker: cmn.Fmt("switch%d", i),
Network: network, Network: network,
Version: version, Version: version,
ListenAddr: cmn.Fmt("%v:%v", network, rand.Intn(64512)+1023), ListenAddr: cmn.Fmt("%v:%v", network, rand.Intn(64512)+1023),
}) }
s.SetNodeKey(nodeKey) for ch, _ := range sw.reactorsByCh {
return s ni.Channels = append(ni.Channels, ch)
}
sw.SetNodeInfo(ni)
sw.SetNodeKey(nodeKey)
return sw
} }