tendermint/p2p/listener_test.go

48 lines
932 B
Go
Raw Normal View History

2016-06-25 18:59:52 -07:00
package p2p
import (
"bytes"
"testing"
2017-05-02 00:53:32 -07:00
2018-07-01 19:36:49 -07:00
"github.com/tendermint/tendermint/libs/log"
2016-06-25 18:59:52 -07:00
)
func TestListener(t *testing.T) {
// Create a listener
2018-07-02 09:18:17 -07:00
l := NewDefaultListener("tcp://:8001", "", false, log.TestingLogger())
2016-06-25 18:59:52 -07:00
// Dial the listener
lAddr := l.ExternalAddress()
connOut, err := lAddr.Dial()
if err != nil {
t.Fatalf("Could not connect to listener address %v", lAddr)
} else {
t.Logf("Created a connection to listener address %v", lAddr)
}
connIn, ok := <-l.Connections()
if !ok {
t.Fatalf("Could not get inbound connection from listener")
}
msg := []byte("hi!")
2017-09-21 09:38:48 -07:00
go func() {
_, err := connIn.Write(msg)
if err != nil {
t.Error(err)
}
}()
2016-06-25 18:59:52 -07:00
b := make([]byte, 32)
n, err := connOut.Read(b)
if err != nil {
t.Fatalf("Error reading off connection: %v", err)
}
b = b[:n]
if !bytes.Equal(msg, b) {
t.Fatalf("Got %s, expected %s", b, msg)
}
// Close the server, no longer needed.
l.Stop()
}