MCPcopy
hub / github.com/jackc/pgx / TestConnectTLS

Function TestConnectTLS

pgconn/pgconn_test.go:101–150  ·  view source on GitHub ↗

TestConnectTLS is separate from other connect tests because it has an additional test to ensure it really is a secure connection.

(t *testing.T)

Source from the content-addressed store, hash-verified

99// TestConnectTLS is separate from other connect tests because it has an additional test to ensure it really is a secure
100// connection.
101func TestConnectTLS(t *testing.T) {
102 t.Parallel()
103
104 setup := func(t *testing.T, connString string) (*pgconn.PgConn, context.Context) {
105 t.Helper()
106
107 ctx, cancel := context.WithTimeout(context.Background(), 120*time.Second)
108 t.Cleanup(cancel)
109
110 conn, err := pgconn.Connect(ctx, connString)
111 require.NoError(t, err)
112 t.Cleanup(func() { closeConn(t, conn) })
113
114 return conn, ctx
115 }
116
117 t.Run("WithChannelBinding", func(t *testing.T) {
118 t.Parallel()
119
120 connString := os.Getenv("PGX_TEST_SCRAM_PLUS_CONN_STRING")
121 if connString == "" {
122 t.Skipf("Skipping due to missing environment variable %v", "PGX_TEST_SCRAM_PLUS_CONN_STRING")
123 }
124
125 conn, ctx := setup(t, connString)
126
127 result := conn.ExecParams(ctx, `select ssl from pg_stat_ssl where pg_backend_pid() = pid;`, nil, nil, nil, nil).Read()
128 require.NoError(t, result.Err)
129 require.Len(t, result.Rows, 1)
130 require.Len(t, result.Rows[0], 1)
131 require.Equalf(t, "t", string(result.Rows[0][0]), "not a TLS connection")
132 })
133
134 t.Run("WithoutChannelBinding", func(t *testing.T) {
135 t.Parallel()
136
137 connString := os.Getenv("PGX_TEST_TLS_CONN_STRING")
138 if connString == "" {
139 t.Skipf("Skipping due to missing environment variable %v", "PGX_TEST_TLS_CONN_STRING")
140 }
141
142 conn, ctx := setup(t, connString)
143
144 result := conn.ExecParams(ctx, `select ssl from pg_stat_ssl where pg_backend_pid() = pid;`, nil, nil, nil, nil).Read()
145 require.NoError(t, result.Err)
146 require.Len(t, result.Rows, 1)
147 require.Len(t, result.Rows[0], 1)
148 require.Equalf(t, "t", string(result.Rows[0][0]), "not a TLS connection")
149 })
150}
151
152func TestConnectChannelBinding(t *testing.T) {
153 t.Parallel()

Callers

nothing calls this directly

Calls 6

ConnectFunction · 0.92
closeConnFunction · 0.70
LenMethod · 0.65
RunMethod · 0.45
ReadMethod · 0.45
ExecParamsMethod · 0.45

Tested by

no test coverage detected