mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-03 09:22:44 +00:00
Merge pull request #7187 from akram/fix_port_forward_listner_parsing_ipv4_ipv6_2
Fixes port_forward unit tests which fails on machine which ::1 does not resolve to localhost
This commit is contained in:
commit
eb11d78b58
@ -209,14 +209,16 @@ func (s *fakeUpgradeStream) Headers() http.Header {
|
|||||||
return http.Header{}
|
return http.Header{}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type TestCase struct {
|
||||||
|
Hostname string
|
||||||
|
Protocol string
|
||||||
|
ShouldRaiseError bool
|
||||||
|
ExpectedListenerAddress string
|
||||||
|
}
|
||||||
|
|
||||||
func TestGetListener(t *testing.T) {
|
func TestGetListener(t *testing.T) {
|
||||||
var pf PortForwarder
|
var pf PortForwarder
|
||||||
testCases := []struct {
|
testCases := []TestCase{
|
||||||
Hostname string
|
|
||||||
Protocol string
|
|
||||||
ShouldRaiseError bool
|
|
||||||
ExpectedListenerAddress string
|
|
||||||
}{
|
|
||||||
{
|
{
|
||||||
Hostname: "localhost",
|
Hostname: "localhost",
|
||||||
Protocol: "tcp4",
|
Protocol: "tcp4",
|
||||||
@ -235,12 +237,6 @@ func TestGetListener(t *testing.T) {
|
|||||||
ShouldRaiseError: false,
|
ShouldRaiseError: false,
|
||||||
ExpectedListenerAddress: "::1",
|
ExpectedListenerAddress: "::1",
|
||||||
},
|
},
|
||||||
{
|
|
||||||
Hostname: "localhost",
|
|
||||||
Protocol: "tcp6",
|
|
||||||
ShouldRaiseError: false,
|
|
||||||
ExpectedListenerAddress: "::1",
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
Hostname: "[::1]",
|
Hostname: "[::1]",
|
||||||
Protocol: "tcp4",
|
Protocol: "tcp4",
|
||||||
@ -253,6 +249,20 @@ func TestGetListener(t *testing.T) {
|
|||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// On some linux systems, ::1 does not resolve to localhost but to localhost6 or
|
||||||
|
// ip6-localhost. To make the test case portable, we need to do a reverse lookup on ::1 and
|
||||||
|
// trying to bind a port with the name.
|
||||||
|
names, err := net.LookupAddr("::1")
|
||||||
|
if err == nil && len(names) > 0 {
|
||||||
|
ipv6TestCase := TestCase{
|
||||||
|
Hostname: names[0],
|
||||||
|
Protocol: "tcp6",
|
||||||
|
ShouldRaiseError: false,
|
||||||
|
ExpectedListenerAddress: "::1",
|
||||||
|
}
|
||||||
|
testCases = append(testCases, ipv6TestCase)
|
||||||
|
}
|
||||||
|
|
||||||
for i, testCase := range testCases {
|
for i, testCase := range testCases {
|
||||||
expectedListenerPort := "12345"
|
expectedListenerPort := "12345"
|
||||||
listener, err := pf.getListener(testCase.Protocol, testCase.Hostname, &ForwardedPort{12345, 12345})
|
listener, err := pf.getListener(testCase.Protocol, testCase.Hostname, &ForwardedPort{12345, 12345})
|
||||||
|
Loading…
Reference in New Issue
Block a user