(t *testing.T)
| 164 | func (nonStructListener) Addr() net.Addr { return &net.TCPAddr{} } |
| 165 | |
| 166 | func Test_GetTLSConfig(t *testing.T) { |
| 167 | t.Parallel() |
| 168 | |
| 169 | t.Run("tls listener", func(t *testing.T) { |
| 170 | t.Parallel() |
| 171 | |
| 172 | base := newLocalListener(t) |
| 173 | cfg := &tls.Config{MinVersion: tls.VersionTLS12} |
| 174 | tlsListener := tls.NewListener(base, cfg) |
| 175 | t.Cleanup(func() { |
| 176 | require.NoError(t, tlsListener.Close()) |
| 177 | }) |
| 178 | |
| 179 | require.Same(t, cfg, getTLSConfig(tlsListener), "*tls.Listener should expose its TLS config") |
| 180 | }) |
| 181 | |
| 182 | t.Run("wrapped tls listener", func(t *testing.T) { |
| 183 | t.Parallel() |
| 184 | |
| 185 | base := newLocalListener(t) |
| 186 | cfg := &tls.Config{MinVersion: tls.VersionTLS13} |
| 187 | tlsListener := tls.NewListener(base, cfg) |
| 188 | wrapped := &wrappedListener{Listener: tlsListener} |
| 189 | t.Cleanup(func() { |
| 190 | require.NoError(t, wrapped.Close()) |
| 191 | }) |
| 192 | |
| 193 | require.Nil(t, getTLSConfig(wrapped), "wrapping without Config()-like methods should return nil") |
| 194 | }) |
| 195 | |
| 196 | t.Run("listener with tls config method", func(t *testing.T) { |
| 197 | t.Parallel() |
| 198 | |
| 199 | base := newLocalListener(t) |
| 200 | cfg := &tls.Config{MinVersion: tls.VersionTLS13} |
| 201 | listener := &tlsConfigMethodListener{Listener: base, cfg: cfg} |
| 202 | t.Cleanup(func() { |
| 203 | require.NoError(t, listener.Close()) |
| 204 | }) |
| 205 | |
| 206 | require.Same(t, cfg, getTLSConfig(listener), "TLSConfig() should be preferred for TLS discovery") |
| 207 | }) |
| 208 | |
| 209 | t.Run("listener with config method", func(t *testing.T) { |
| 210 | t.Parallel() |
| 211 | |
| 212 | base := newLocalListener(t) |
| 213 | cfg := &tls.Config{MinVersion: tls.VersionTLS12} |
| 214 | listener := &configMethodListener{Listener: base, cfg: cfg} |
| 215 | t.Cleanup(func() { |
| 216 | require.NoError(t, listener.Close()) |
| 217 | }) |
| 218 | |
| 219 | require.Same(t, cfg, getTLSConfig(listener), "Config() should be preferred for TLS discovery") |
| 220 | }) |
| 221 | |
| 222 | t.Run("non tls listener", func(t *testing.T) { |
| 223 | t.Parallel() |
nothing calls this directly
no test coverage detected