mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-07-26 22:56:43 +00:00
swarm/network: protocol test simplifications
This commit is contained in:
parent
a6a006c5e3
commit
29d3936af7
4 changed files with 30 additions and 48 deletions
|
|
@ -11,7 +11,7 @@ func TestDiscovery(t *testing.T) {
|
|||
to := NewKademlia(addr.OAddr, NewKadParams())
|
||||
pp := NewHive(NewHiveParams(), to)
|
||||
ct := BzzCodeMap(HiveMsgs...)
|
||||
s := newBzzTester(t, 1, addr, pp, ct, nil)
|
||||
s := newBzzTester(t, addr, pp, ct, nil)
|
||||
|
||||
s.runHandshakes()
|
||||
s.TestExchanges(p2ptest.Exchange{
|
||||
|
|
@ -19,7 +19,7 @@ func TestDiscovery(t *testing.T) {
|
|||
p2ptest.Expect{
|
||||
Code: 3,
|
||||
Msg: &SubPeersMsg{ProxLimit: 0, MinProxBinSize: 8},
|
||||
Peer: s.ExchangeSession.Id(1),
|
||||
Peer: s.ExchangeSession.Ids[1],
|
||||
},
|
||||
},
|
||||
})
|
||||
|
|
|
|||
|
|
@ -44,7 +44,7 @@ func TestOverlayRegistration(t *testing.T) {
|
|||
pp := NewHive(NewHiveParams(), to) // hive
|
||||
ct := BzzCodeMap(HiveMsgs...) // bzz protocol code map
|
||||
|
||||
s := newBzzTester(t, 1, addr, ct, nil)
|
||||
s := newBzzTester(t, addr, pp, ct, nil)
|
||||
|
||||
// connect to the other peer
|
||||
id := s.Ids[0]
|
||||
|
|
@ -62,7 +62,7 @@ func TestRegisterAndConnect(t *testing.T) {
|
|||
to := NewTestOverlay(addr.OverlayAddr())
|
||||
pp := NewHive(NewHiveParams(), to)
|
||||
ct := BzzCodeMap(HiveMsgs...)
|
||||
s := newBzzTester(t, 0, addr, pp, ct, nil)
|
||||
s := newBzzTester(t, addr, pp, ct, nil)
|
||||
|
||||
// register the node with the peerPool
|
||||
id := p2ptest.RandomNodeId()
|
||||
|
|
@ -103,7 +103,7 @@ func TestRegisterAndConnect(t *testing.T) {
|
|||
p2ptest.Expect{
|
||||
Code: 3,
|
||||
Msg: &SubPeersMsg{ProxLimit: 0, MinProxBinSize: 8},
|
||||
Peer: s.ExchangeSession.Id(1),
|
||||
Peer: s.ExchangeSession.Ids[1],
|
||||
},
|
||||
},
|
||||
})
|
||||
|
|
|
|||
|
|
@ -43,16 +43,13 @@ type bzzPeer struct {
|
|||
localAddr *peerAddr
|
||||
*peerAddr // remote address
|
||||
lastActive time.Time
|
||||
peers map[discover.NodeID]bool
|
||||
//peers map[discover.NodeID]bool
|
||||
}
|
||||
|
||||
func (self *bzzPeer) LastActive() time.Time {
|
||||
return self.lastActive
|
||||
}
|
||||
|
||||
func (self *bzzPeer) Peers() map[discover.NodeID]bool {
|
||||
return self.peers
|
||||
}
|
||||
|
||||
// implemented by peerAddr
|
||||
type PeerAddr interface {
|
||||
|
|
@ -65,7 +62,6 @@ type Peer interface {
|
|||
PeerAddr
|
||||
String() string // pretty printable the Node
|
||||
ID() discover.NodeID // the key that uniquely identifies the Node for the peerPool
|
||||
Peers() map[discover.NodeID]bool
|
||||
Send(interface{}) error // can send messages
|
||||
Drop(error) // disconnect this peer
|
||||
Register(interface{}, func(interface{}) error) uint64 // register message-handler callbacks
|
||||
|
|
@ -80,7 +76,7 @@ func BzzCodeMap(msgs ...interface{}) *protocols.CodeMap {
|
|||
|
||||
// Bzz is the protocol constructor
|
||||
// returns p2p.Protocol that is to be offered by the node.Service
|
||||
func Bzz(localAddr []byte, na adapters.NodeAdapter, ct *protocols.CodeMap, services func(Peer) error) *p2p.Protocol {
|
||||
func Bzz(localAddr []byte, na adapters.NodeAdapter, ct *protocols.CodeMap, services func(Peer) error, peerInfo func(id discover.NodeID) interface{}, nodeInfo func() interface{}) *p2p.Protocol {
|
||||
run := func(p *protocols.Peer) error {
|
||||
addr := &peerAddr{localAddr, na.LocalAddr()}
|
||||
|
||||
|
|
@ -88,7 +84,6 @@ func Bzz(localAddr []byte, na adapters.NodeAdapter, ct *protocols.CodeMap, servi
|
|||
Peer: p,
|
||||
network: na,
|
||||
localAddr: addr,
|
||||
peers: make(map[discover.NodeID]bool),
|
||||
}
|
||||
// protocol handshake and its validation
|
||||
// sets remote peer address
|
||||
|
|
|
|||
|
|
@ -2,12 +2,10 @@ package network
|
|||
|
||||
import (
|
||||
"fmt"
|
||||
"sync"
|
||||
"testing"
|
||||
|
||||
"github.com/ethereum/go-ethereum/logger/glog"
|
||||
"github.com/ethereum/go-ethereum/p2p/adapters"
|
||||
"github.com/ethereum/go-ethereum/p2p/discover"
|
||||
"github.com/ethereum/go-ethereum/p2p/protocols"
|
||||
p2ptest "github.com/ethereum/go-ethereum/p2p/testing"
|
||||
)
|
||||
|
|
@ -36,31 +34,35 @@ func bzzHandshakeExchange(lhs, rhs *bzzHandshake, id *adapters.NodeId) []p2ptest
|
|||
}
|
||||
}
|
||||
|
||||
func newTestBzzProtocol(addr *peerAddr, ct *protocols.CodeMap, services func(Peer) error) func(adapters.NodeAdapter) adapters.ProtoCall {
|
||||
func newBzzTester(t *testing.T, addr *peerAddr, pp *Hive, ct *protocols.CodeMap, services func(Peer) error) *bzzTester {
|
||||
if ct == nil {
|
||||
ct = BzzCodeMap()
|
||||
}
|
||||
// ct.Register(p2ptest.FlushMsg)
|
||||
return func(na adapters.NodeAdapter) adapters.ProtoCall {
|
||||
srv := func(p Peer) error {
|
||||
extraservices := func(p Peer) error {
|
||||
pp.Add(p)
|
||||
p.Register(&protocols.Disconnect{}, func(e interface{}) error { pp.Remove(p) })
|
||||
|
||||
if services != nil {
|
||||
err := services(p)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
// id := p.ID()
|
||||
// p.Register(p2ptest.FlushMsg, func(interface{}) error {
|
||||
// flushc := na.(p2ptest.TestNetAdapter).GetPeer(&adapters.NodeId{id}).Flushc
|
||||
// flushc <- true
|
||||
// return nil
|
||||
// })
|
||||
return nil
|
||||
}
|
||||
|
||||
protocol := Bzz(addr.OverlayAddr(), pp, na, ct, srv)
|
||||
protocall := func(na adapters.NodeAdapter) adapters.ProtoCall {
|
||||
protocol := Bzz(addr.OverlayAddr(), pp, na, ct, extraservices, nil, nil)
|
||||
return protocol.Run
|
||||
}
|
||||
|
||||
s := p2ptest.NewProtocolTester(t, NodeId(addr), 1, protocall)
|
||||
|
||||
return &bzzTester{
|
||||
addr: addr,
|
||||
// flushCode: 4,
|
||||
ExchangeSession: s,
|
||||
}
|
||||
}
|
||||
|
||||
type bzzTester struct {
|
||||
|
|
@ -103,21 +105,6 @@ func correctBzzHandshake(addr *peerAddr) *bzzHandshake {
|
|||
return &bzzHandshake{0, 322, addr}
|
||||
}
|
||||
|
||||
func newBzzTester(t *testing.T, addr *peerAddr, pp PeerPool, ct *protocols.CodeMap, services func(Peer) error) *bzzTester {
|
||||
|
||||
extraservices := func(p Peer) error {
|
||||
pp.Add(p)
|
||||
p.Register(&protocols.Disconnect{}, func(e interface{}) error { pp.Remove(p) })
|
||||
return services(p)
|
||||
}
|
||||
s := p2ptest.NewProtocolTester(t, NodeId(addr), 1, newTestBzzProtocol(addr, pp, ct, extraservices))
|
||||
return &bzzTester{
|
||||
addr: addr,
|
||||
// flushCode: 4,
|
||||
ExchangeSession: s,
|
||||
}
|
||||
}
|
||||
|
||||
func TestBzzHandshakeNetworkIdMismatch(t *testing.T) {
|
||||
pp := p2ptest.NewTestPeerPool()
|
||||
addr := RandomAddr()
|
||||
|
|
|
|||
Loading…
Reference in a new issue