35 lines
788 B
Go
35 lines
788 B
Go
package p2p
|
|
|
|
import (
|
|
// "fmt"
|
|
"net"
|
|
"testing"
|
|
"time"
|
|
)
|
|
|
|
func TestPeerErrorHandler(t *testing.T) {
|
|
address := &net.TCPAddr{IP: net.IP([]byte{1, 2, 3, 4}), Port: 30303}
|
|
peerDisconnect := make(chan DisconnectRequest)
|
|
peerErrorChan := NewPeerErrorChannel()
|
|
peh := NewPeerErrorHandler(address, peerDisconnect, peerErrorChan)
|
|
peh.Start()
|
|
defer peh.Stop()
|
|
for i := 0; i < 11; i++ {
|
|
select {
|
|
case <-peerDisconnect:
|
|
t.Errorf("expected no disconnect request")
|
|
default:
|
|
}
|
|
peerErrorChan <- NewPeerError(MiscError, "")
|
|
}
|
|
time.Sleep(1 * time.Millisecond)
|
|
select {
|
|
case request := <-peerDisconnect:
|
|
if request.addr.String() != address.String() {
|
|
t.Errorf("incorrect address %v != %v", request.addr, address)
|
|
}
|
|
default:
|
|
t.Errorf("expected disconnect request")
|
|
}
|
|
}
|