...
1 package testutil_test
2
3 import (
4 "net"
5 "testing"
6 "time"
7
8 "github.com/cybertec-postgresql/pgwatch/v6/internal/testutil"
9 "github.com/stretchr/testify/assert"
10 "github.com/stretchr/testify/require"
11 )
12
13
14
15
16
17
18 func TestBlackholeListener(t *testing.T) {
19 addr, closeFn := testutil.BlackholeListener(t)
20 require.NotEmpty(t, addr)
21
22 conn, err := net.DialTimeout("tcp", addr, time.Second)
23 require.NoError(t, err)
24 defer func() { _ = conn.Close() }()
25
26
27
28 require.NoError(t, conn.SetReadDeadline(time.Now().Add(100*time.Millisecond)))
29 _, err = conn.Read(make([]byte, 1))
30 var netErr net.Error
31 require.ErrorAs(t, err, &netErr)
32 assert.True(t, netErr.Timeout())
33
34
35
36 closeFn()
37 closeFn()
38 }
39