testing

package
v0.0.0-...-92cc422 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 21, 2019 License: GPL-3.0 Imports: 17 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Wrap

func Wrap(msg interface{}) interface{}

Types

type Disconnect

type Disconnect struct {
	Peer  discover.NodeID //DiscConnected对等
	Error error           //断开连接原因
}

disconnect表示一个disconnect事件,由testdisconnected使用并检查

type Exchange

type Exchange struct {
	Label    string
	Triggers []Trigger
	Expects  []Expect
	Timeout  time.Duration
}

交换是协议测试的基本单元 数组中的触发器和预期将立即异步运行 因此,对于具有不同消息类型的同一对等端,不能有多个预期值 因为它是不可预测的,哪个期望会收到哪个消息 (对于Expect 1和2,可能会发送消息2和1,两个Expect都会抱怨错误的消息代码) 在会话上定义交换

type Expect

type Expect struct {
	Msg     interface{}     //预期的消息类型
	Code    uint64          //现在给出了消息代码
	Peer    discover.NodeID //期望消息的对等机
	Timeout time.Duration   //接收超时时间
}

Expect是来自透视节点的交换传出消息的一部分 由对等方接收

type ProtocolSession

type ProtocolSession struct {
	Server *p2p.Server
	IDs    []discover.NodeID
	// contains filtered or unexported fields
}

ProtocolSession是对运行的枢轴节点的准模拟。 可以发送(触发器)或 接收(预期)消息

func (*ProtocolSession) TestDisconnected

func (s *ProtocolSession) TestDisconnected(disconnects ...*Disconnect) error

testDisconnected测试作为参数提供的断开 disconnect结构描述了在哪个对等机上预期出现的断开连接错误

func (*ProtocolSession) TestExchanges

func (s *ProtocolSession) TestExchanges(exchanges ...Exchange) error

测试交换测试一系列针对会话的交换

type ProtocolTester

type ProtocolTester struct {
	*ProtocolSession
	// contains filtered or unexported fields
}

ProtocolTester是用于单元测试协议的测试环境 消息交换。它使用P2P/仿真框架

func NewProtocolTester

func NewProtocolTester(t *testing.T, id discover.NodeID, n int, run func(*p2p.Peer, p2p.MsgReadWriter) error) *ProtocolTester

NewProtocolTester构造了一个新的ProtocolTester 它将透视节点ID、虚拟对等数和 P2P服务器在对等连接上调用的协议运行函数

func (*ProtocolTester) Connect

func (t *ProtocolTester) Connect(selfID discover.NodeID, peers ...*adapters.NodeConfig)

Connect打开远程对等节点并使用 P2P/模拟与内存网络适配器的网络连接

func (*ProtocolTester) Stop

func (t *ProtocolTester) Stop() error

停止停止P2P服务器

type TestPeer

type TestPeer interface {
	ID() discover.NodeID
	Drop(error)
}

type TestPeerPool

type TestPeerPool struct {
	// contains filtered or unexported fields
}

testpeerpool是演示对等连接注册的示例对等池

func NewTestPeerPool

func NewTestPeerPool() *TestPeerPool

func (*TestPeerPool) Add

func (p *TestPeerPool) Add(peer TestPeer)

func (*TestPeerPool) Get

func (p *TestPeerPool) Get(id discover.NodeID) TestPeer

func (*TestPeerPool) Has

func (p *TestPeerPool) Has(id discover.NodeID) bool

func (*TestPeerPool) Remove

func (p *TestPeerPool) Remove(peer TestPeer)

type Trigger

type Trigger struct {
	Msg     interface{}     //要发送的消息类型
	Code    uint64          //给出报文代码
	Peer    discover.NodeID //向其发送消息的对等方
	Timeout time.Duration   //发送超时时间
}

触发器是交换的一部分,透视节点的传入消息 同行发送

type WrappedMsg

type WrappedMsg struct {
	Context []byte
	Size    uint32
	Payload []byte
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL