- package privval
-
- import (
- "fmt"
- "testing"
- "time"
-
- "github.com/stretchr/testify/assert"
- "github.com/stretchr/testify/require"
-
- "github.com/tendermint/tendermint/crypto/ed25519"
- tmnet "github.com/tendermint/tendermint/libs/net"
- )
-
- // getFreeLocalhostAddrPort returns a free localhost:port address
- func getFreeLocalhostAddrPort(t *testing.T) string {
- t.Helper()
- port, err := tmnet.GetFreePort()
- require.NoError(t, err)
-
- return fmt.Sprintf("127.0.0.1:%d", port)
- }
-
- func getDialerTestCases(t *testing.T) []dialerTestCase {
- tcpAddr := getFreeLocalhostAddrPort(t)
- unixFilePath, err := testUnixAddr()
- require.NoError(t, err)
- unixAddr := fmt.Sprintf("unix://%s", unixFilePath)
-
- return []dialerTestCase{
- {
- addr: tcpAddr,
- dialer: DialTCPFn(tcpAddr, testTimeoutReadWrite, ed25519.GenPrivKey()),
- },
- {
- addr: unixAddr,
- dialer: DialUnixFn(unixFilePath),
- },
- }
- }
-
- func TestIsConnTimeoutForFundamentalTimeouts(t *testing.T) {
- // Generate a networking timeout
- tcpAddr := getFreeLocalhostAddrPort(t)
- dialer := DialTCPFn(tcpAddr, time.Millisecond, ed25519.GenPrivKey())
- _, err := dialer()
- assert.Error(t, err)
- assert.True(t, IsConnTimeout(err))
- }
-
- func TestIsConnTimeoutForWrappedConnTimeouts(t *testing.T) {
- tcpAddr := getFreeLocalhostAddrPort(t)
- dialer := DialTCPFn(tcpAddr, time.Millisecond, ed25519.GenPrivKey())
- _, err := dialer()
- assert.Error(t, err)
- err = fmt.Errorf("%v: %w", err, ErrConnectionTimeout)
- assert.True(t, IsConnTimeout(err))
- }
|