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

Function TestSNISupport

pgconn/pgconn_test.go:4224–4343  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

4222func testingKey(s string) string { return strings.ReplaceAll(s, "TESTING KEY", "PRIVATE KEY") }
4223
4224func TestSNISupport(t *testing.T) {
4225 t.Parallel()
4226 tests := []struct {
4227 name string
4228 sni_param string
4229 sni_set bool
4230 }{
4231 {
4232 name: "SNI is passed by default",
4233 sni_param: "",
4234 sni_set: true,
4235 },
4236 {
4237 name: "SNI is passed when asked for",
4238 sni_param: "sslsni=1",
4239 sni_set: true,
4240 },
4241 {
4242 name: "SNI is not passed when disabled",
4243 sni_param: "sslsni=0",
4244 sni_set: false,
4245 },
4246 }
4247 for _, tt := range tests {
4248 t.Run(tt.name, func(t *testing.T) {
4249 t.Parallel()
4250
4251 ctx, cancel := context.WithTimeout(context.Background(), 120*time.Second)
4252 defer cancel()
4253
4254 ln, err := net.Listen("tcp", "127.0.0.1:")
4255 require.NoError(t, err)
4256 defer ln.Close()
4257
4258 serverErrChan := make(chan error, 1)
4259 serverSNINameChan := make(chan string, 1)
4260 defer close(serverErrChan)
4261 defer close(serverSNINameChan)
4262
4263 go func() {
4264 var sniHost string
4265
4266 conn, err := ln.Accept()
4267 if err != nil {
4268 serverErrChan <- err
4269 return
4270 }
4271 defer conn.Close()
4272
4273 err = conn.SetDeadline(time.Now().Add(5 * time.Second))
4274 if err != nil {
4275 serverErrChan <- err
4276 return
4277 }
4278
4279 backend := pgproto3.NewBackend(conn, conn)
4280 startupMessage, err := backend.ReceiveStartupMessage()
4281 if err != nil {

Callers

nothing calls this directly

Calls 10

ReceiveStartupMessageMethod · 0.95
NewBackendFunction · 0.92
ConnectFunction · 0.92
mustEncodeFunction · 0.70
CloseMethod · 0.65
EncodeMethod · 0.65
RunMethod · 0.45
SetDeadlineMethod · 0.45
WriteMethod · 0.45
StringMethod · 0.45

Tested by

no test coverage detected