diff options
author | obscuren <geffobscura@gmail.com> | 2015-05-26 20:51:41 +0800 |
---|---|---|
committer | obscuren <geffobscura@gmail.com> | 2015-05-26 20:51:41 +0800 |
commit | 2f2dd80e480d90fa3bd2f5b2f2413a0eb51f3fa9 (patch) | |
tree | 4fb20244d3c10cdbeb85b993ac6d2e73f73016fa /p2p/peer_test.go | |
parent | e6b143b00dcdb3841d41af0e9a1942f5c24d669f (diff) | |
parent | d74ee40c86fed3a48d88de1094efc0a2f464b659 (diff) | |
download | go-tangerine-0.9.24.tar go-tangerine-0.9.24.tar.gz go-tangerine-0.9.24.tar.bz2 go-tangerine-0.9.24.tar.lz go-tangerine-0.9.24.tar.xz go-tangerine-0.9.24.tar.zst go-tangerine-0.9.24.zip |
Merge branch 'develop'v0.9.24
Diffstat (limited to 'p2p/peer_test.go')
-rw-r--r-- | p2p/peer_test.go | 59 |
1 files changed, 8 insertions, 51 deletions
diff --git a/p2p/peer_test.go b/p2p/peer_test.go index 59dcb7ba4..7b772e198 100644 --- a/p2p/peer_test.go +++ b/p2p/peer_test.go @@ -1,7 +1,6 @@ package p2p import ( - "bytes" "errors" "fmt" "math/rand" @@ -29,24 +28,20 @@ var discard = Protocol{ } func testPeer(protos []Protocol) (func(), *conn, *Peer, <-chan DiscReason) { - fd1, _ := net.Pipe() - hs1 := &protoHandshake{ID: randomID(), Version: baseProtocolVersion} - hs2 := &protoHandshake{ID: randomID(), Version: baseProtocolVersion} + fd1, fd2 := net.Pipe() + c1 := &conn{fd: fd1, transport: newTestTransport(randomID(), fd1)} + c2 := &conn{fd: fd2, transport: newTestTransport(randomID(), fd2)} for _, p := range protos { - hs1.Caps = append(hs1.Caps, p.cap()) - hs2.Caps = append(hs2.Caps, p.cap()) + c1.caps = append(c1.caps, p.cap()) + c2.caps = append(c2.caps, p.cap()) } - p1, p2 := MsgPipe() - peer := newPeer(fd1, &conn{p1, hs1}, protos) + peer := newPeer(c1, protos) errc := make(chan DiscReason, 1) go func() { errc <- peer.run() }() - closer := func() { - p1.Close() - fd1.Close() - } - return closer, &conn{p2, hs2}, peer, errc + closer := func() { c2.close(errors.New("close func called")) } + return closer, c2, peer, errc } func TestPeerProtoReadMsg(t *testing.T) { @@ -107,44 +102,6 @@ func TestPeerProtoEncodeMsg(t *testing.T) { } } -func TestPeerWriteForBroadcast(t *testing.T) { - closer, rw, peer, peerErr := testPeer([]Protocol{discard}) - defer closer() - - emptymsg := func(code uint64) Msg { - return Msg{Code: code, Size: 0, Payload: bytes.NewReader(nil)} - } - - // test write errors - if err := peer.writeProtoMsg("b", emptymsg(3)); err == nil { - t.Errorf("expected error for unknown protocol, got nil") - } - if err := peer.writeProtoMsg("discard", emptymsg(8)); err == nil { - t.Errorf("expected error for out-of-range msg code, got nil") - } else if perr, ok := err.(*peerError); !ok || perr.Code != errInvalidMsgCode { - t.Errorf("wrong error for out-of-range msg code, got %#v", err) - } - - // setup for reading the message on the other end - read := make(chan struct{}) - go func() { - if err := ExpectMsg(rw, 16, nil); err != nil { - t.Error(err) - } - close(read) - }() - - // test successful write - if err := peer.writeProtoMsg("discard", emptymsg(0)); err != nil { - t.Errorf("expect no error for known protocol: %v", err) - } - select { - case <-read: - case err := <-peerErr: - t.Fatalf("peer stopped: %v", err) - } -} - func TestPeerPing(t *testing.T) { closer, rw, _, _ := testPeer(nil) defer closer() |