Documentation ¶
Overview ¶
Package testing includes useful utilities for mocking a beacon node's p2p service for unit tests.
Index ¶
- Variables
- type MockBroadcaster
- type MockPeersProvider
- type TestP2P
- func (p *TestP2P) AddConnectionHandler(f func(ctx context.Context, id peer.ID) error, ...)
- func (p *TestP2P) AddDisconnectionHandler(f func(ctx context.Context, id peer.ID) error)
- func (p *TestP2P) AddPingMethod(reqFunc func(ctx context.Context, id peer.ID) error)
- func (p *TestP2P) Broadcast(ctx context.Context, msg proto.Message) error
- func (p *TestP2P) Connect(b *TestP2P)
- func (p *TestP2P) Disconnect(pid peer.ID) error
- func (p *TestP2P) Encoding() encoder.NetworkEncoding
- func (p *TestP2P) FindPeersWithSubnet(index uint64) (bool, error)
- func (p *TestP2P) ForkDigest() ([4]byte, error)
- func (p *TestP2P) Metadata() *pb.MetaData
- func (p *TestP2P) MetadataSeq() uint64
- func (p *TestP2P) PeerID() peer.ID
- func (p *TestP2P) Peers() *peers.Status
- func (p *TestP2P) PubSub() *pubsub.PubSub
- func (p *TestP2P) ReceivePubSub(topic string, msg proto.Message)
- func (p *TestP2P) ReceiveRPC(topic string, msg proto.Message)
- func (p *TestP2P) RefreshENR()
- func (p *TestP2P) Send(ctx context.Context, msg interface{}, topic string, pid peer.ID) (network.Stream, error)
- func (p *TestP2P) SetStreamHandler(topic string, handler network.StreamHandler)
- func (p *TestP2P) Started() bool
Constants ¶
This section is empty.
Variables ¶
var TopicMappings = map[reflect.Type]string{ reflect.TypeOf(&pb.Status{}): "/eth2/beacon_chain/req/status/1", reflect.TypeOf(new(uint64)): "/eth2/beacon_chain/req/goodbye/1", reflect.TypeOf(&pb.BeaconBlocksByRangeRequest{}): "/eth2/beacon_chain/req/beacon_blocks_by_range/1", reflect.TypeOf([][32]byte{}): "/eth2/beacon_chain/req/beacon_blocks_by_root/1", reflect.TypeOf(new(uint64)): "/eth2/beacon_chain/req/ping/1/", }
TopicMappings are the protocol ids for the different types of requests.
Functions ¶
This section is empty.
Types ¶
type MockBroadcaster ¶
type MockBroadcaster struct {
BroadcastCalled bool
}
MockBroadcaster implements p2p.Broadcaster for testing.
type MockPeersProvider ¶ added in v0.3.0
type MockPeersProvider struct {
// contains filtered or unexported fields
}
MockPeersProvider implements PeersProvider for testing.
func (*MockPeersProvider) Peers ¶ added in v0.3.0
func (m *MockPeersProvider) Peers() *peers.Status
Peers provides access the peer status.
type TestP2P ¶
type TestP2P struct { Host host.Host BroadcastCalled bool DelaySend bool Digest [4]byte LocalMetadata *pb.MetaData // contains filtered or unexported fields }
TestP2P represents a p2p implementation that can be used for testing.
func NewTestP2P ¶
NewTestP2P initializes a new p2p test service.
func (*TestP2P) AddConnectionHandler ¶
func (p *TestP2P) AddConnectionHandler(f func(ctx context.Context, id peer.ID) error, g func(context.Context, peer.ID) error)
AddConnectionHandler handles the connection with a newly connected peer.
func (*TestP2P) AddDisconnectionHandler ¶
AddDisconnectionHandler --
func (*TestP2P) AddPingMethod ¶
AddPingMethod mocks the p2p func.
func (*TestP2P) Disconnect ¶
Disconnect from a peer.
func (*TestP2P) Encoding ¶
func (p *TestP2P) Encoding() encoder.NetworkEncoding
Encoding returns ssz encoding.
func (*TestP2P) FindPeersWithSubnet ¶ added in v0.3.8
FindPeersWithSubnet mocks the p2p func.
func (*TestP2P) ForkDigest ¶
ForkDigest mocks the p2p func.
func (*TestP2P) MetadataSeq ¶
MetadataSeq mocks metadata sequence number.
func (*TestP2P) PubSub ¶
PubSub returns reference underlying floodsub. This test library uses floodsub to ensure all connected peers receive the message.
func (*TestP2P) ReceivePubSub ¶
ReceivePubSub simulates an incoming message over pubsub on a given topic.
func (*TestP2P) ReceiveRPC ¶
ReceiveRPC simulates an incoming RPC.
func (*TestP2P) RefreshENR ¶ added in v0.3.8
func (p *TestP2P) RefreshENR()
RefreshENR mocks the p2p func.
func (*TestP2P) Send ¶
func (p *TestP2P) Send(ctx context.Context, msg interface{}, topic string, pid peer.ID) (network.Stream, error)
Send a message to a specific peer.
func (*TestP2P) SetStreamHandler ¶
func (p *TestP2P) SetStreamHandler(topic string, handler network.StreamHandler)
SetStreamHandler for RPC.