35 lines
		
	
	
		
			804 B
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			35 lines
		
	
	
		
			804 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, 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")
 | 
						|
	}
 | 
						|
}
 |