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, NewBlacklist()) 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") } }