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
810 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/internal/libs/sync"
  10. "github.com/tendermint/tendermint/libs/log"
  11. )
  12. func TestConnectionFiltering(t *testing.T) {
  13. ctx, cancel := context.WithCancel(context.Background())
  14. defer cancel()
  15. logger := log.TestingLogger()
  16. filterByIPCount := 0
  17. router := &Router{
  18. logger: logger,
  19. connTracker: newConnTracker(1, time.Second),
  20. options: RouterOptions{
  21. FilterPeerByIP: func(ctx context.Context, ip net.IP, port uint16) error {
  22. filterByIPCount++
  23. return errors.New("mock")
  24. },
  25. },
  26. }
  27. require.Equal(t, 0, filterByIPCount)
  28. router.openConnection(ctx, &MemoryConnection{logger: logger, closer: sync.NewCloser()})
  29. require.Equal(t, 1, filterByIPCount)
  30. }