mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-26 21:17:23 +00:00
Merge pull request #76966 from figo/master
Split TestLoopbackHostPort into 2 tests
This commit is contained in:
commit
1b4b1d1c73
@ -21,7 +21,15 @@ import (
|
|||||||
"testing"
|
"testing"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestLoopbackHostPort(t *testing.T) {
|
func TestLoopbackHostPortIPv4(t *testing.T) {
|
||||||
|
_, ipv6only, err := isIPv6LoopbackSupported()
|
||||||
|
if err != nil {
|
||||||
|
t.Fatalf("fail to enumerate network interface, %s", err)
|
||||||
|
}
|
||||||
|
if ipv6only {
|
||||||
|
t.Fatalf("no ipv4 loopback interface")
|
||||||
|
}
|
||||||
|
|
||||||
host, port, err := LoopbackHostPort("1.2.3.4:443")
|
host, port, err := LoopbackHostPort("1.2.3.4:443")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("unexpected error: %v", err)
|
t.Fatalf("unexpected error: %v", err)
|
||||||
@ -43,8 +51,17 @@ func TestLoopbackHostPort(t *testing.T) {
|
|||||||
if port != "443" {
|
if port != "443" {
|
||||||
t.Fatalf("expected 443 as port, got %q", port)
|
t.Fatalf("expected 443 as port, got %q", port)
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
func TestLoopbackHostPortIPv6(t *testing.T) {
|
||||||
|
ipv6, _, err := isIPv6LoopbackSupported()
|
||||||
|
if err != nil {
|
||||||
|
t.Fatalf("fail to enumerate network interface, %s", err)
|
||||||
|
}
|
||||||
|
if !ipv6 {
|
||||||
|
t.Fatalf("no ipv6 loopback interface")
|
||||||
|
}
|
||||||
|
|
||||||
host, port, err = LoopbackHostPort("[ff06:0:0:0:0:0:0:c3]:443")
|
host, port, err := LoopbackHostPort("[ff06:0:0:0:0:0:0:c3]:443")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("unexpected error: %v", err)
|
t.Fatalf("unexpected error: %v", err)
|
||||||
}
|
}
|
||||||
@ -62,8 +79,28 @@ func TestLoopbackHostPort(t *testing.T) {
|
|||||||
if ip := net.ParseIP(host); ip == nil || !ip.IsLoopback() || ip.To4() != nil {
|
if ip := net.ParseIP(host); ip == nil || !ip.IsLoopback() || ip.To4() != nil {
|
||||||
t.Fatalf("expected IPv6 host to be loopback, got %q", host)
|
t.Fatalf("expected IPv6 host to be loopback, got %q", host)
|
||||||
}
|
}
|
||||||
|
|
||||||
if port != "443" {
|
if port != "443" {
|
||||||
t.Fatalf("expected 443 as port, got %q", port)
|
t.Fatalf("expected 443 as port, got %q", port)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func isIPv6LoopbackSupported() (ipv6 bool, ipv6only bool, err error) {
|
||||||
|
addrs, err := net.InterfaceAddrs()
|
||||||
|
if err != nil {
|
||||||
|
return false, false, err
|
||||||
|
}
|
||||||
|
ipv4 := false
|
||||||
|
for _, address := range addrs {
|
||||||
|
ipnet, ok := address.(*net.IPNet)
|
||||||
|
if !ok || !ipnet.IP.IsLoopback() {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
if ipnet.IP.To4() == nil {
|
||||||
|
ipv6 = true
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
ipv4 = true
|
||||||
|
}
|
||||||
|
ipv6only = ipv6 && !ipv4
|
||||||
|
return ipv6, ipv6only, nil
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user