mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-23 03:41:45 +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"
|
||||
)
|
||||
|
||||
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")
|
||||
if err != nil {
|
||||
t.Fatalf("unexpected error: %v", err)
|
||||
@ -43,8 +51,17 @@ func TestLoopbackHostPort(t *testing.T) {
|
||||
if port != "443" {
|
||||
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 {
|
||||
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 {
|
||||
t.Fatalf("expected IPv6 host to be loopback, got %q", host)
|
||||
}
|
||||
|
||||
if port != "443" {
|
||||
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