OSDN Git Service

writer close
[bytom/vapor.git] / p2p / listener_test.go
1 // +build !network
2
3 package p2p
4
5 import (
6         "bytes"
7         "testing"
8 )
9
10 func TestListener(t *testing.T) {
11         // Create a listener
12         l, _ := NewDefaultListener("tcp", "localhost:8001", true)
13
14         // Dial the listener
15         lAddr := l.InternalAddress()
16         connOut, err := lAddr.Dial()
17         if err != nil {
18                 t.Fatalf("Could not connect to listener address %v", lAddr)
19         }
20
21         connIn, ok := <-l.Connections()
22         if !ok {
23                 t.Fatalf("Could not get inbound connection from listener")
24         }
25
26         msg := []byte("hi!")
27         go connIn.Write(msg)
28         b := make([]byte, 32)
29         n, err := connOut.Read(b)
30         if err != nil {
31                 t.Fatalf("Error reading off connection: %v", err)
32         }
33
34         b = b[:n]
35         if !bytes.Equal(msg, b) {
36                 t.Fatalf("Got %s, expected %s", b, msg)
37         }
38
39         // Close the server, no longer needed.
40         l.Stop()
41 }