You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

34 lines
749 B

  1. package p2p
  2. import (
  3. "context"
  4. "errors"
  5. "net"
  6. "testing"
  7. "time"
  8. "github.com/stretchr/testify/require"
  9. "github.com/tendermint/tendermint/libs/log"
  10. )
  11. func TestConnectionFiltering(t *testing.T) {
  12. ctx, cancel := context.WithCancel(context.Background())
  13. defer cancel()
  14. logger := log.NewNopLogger()
  15. filterByIPCount := 0
  16. router := &Router{
  17. logger: logger,
  18. connTracker: newConnTracker(1, time.Second),
  19. options: RouterOptions{
  20. FilterPeerByIP: func(ctx context.Context, ip net.IP, port uint16) error {
  21. filterByIPCount++
  22. return errors.New("mock")
  23. },
  24. },
  25. }
  26. require.Equal(t, 0, filterByIPCount)
  27. router.openConnection(ctx, &MemoryConnection{logger: logger, closeFn: func() {}})
  28. require.Equal(t, 1, filterByIPCount)
  29. }