peer_error_handler_test.go 804 B

12345678910111213141516171819202122232425262728293031323334
  1. package p2p
  2. import (
  3. // "fmt"
  4. "net"
  5. "testing"
  6. "time"
  7. )
  8. func TestPeerErrorHandler(t *testing.T) {
  9. address := &net.TCPAddr{IP: net.IP([]byte{1, 2, 3, 4}), Port: 30303}
  10. peerDisconnect := make(chan DisconnectRequest)
  11. peerErrorChan := NewPeerErrorChannel()
  12. peh := NewPeerErrorHandler(address, peerDisconnect, peerErrorChan, NewBlacklist())
  13. peh.Start()
  14. defer peh.Stop()
  15. for i := 0; i < 11; i++ {
  16. select {
  17. case <-peerDisconnect:
  18. t.Errorf("expected no disconnect request")
  19. default:
  20. }
  21. peerErrorChan <- NewPeerError(MiscError, "")
  22. }
  23. time.Sleep(1 * time.Millisecond)
  24. select {
  25. case request := <-peerDisconnect:
  26. if request.addr.String() != address.String() {
  27. t.Errorf("incorrect address %v != %v", request.addr, address)
  28. }
  29. default:
  30. t.Errorf("expected disconnect request")
  31. }
  32. }