From 9ca582f3b79001f36347f0316673a7f52dfbb251 Mon Sep 17 00:00:00 2001 From: Tim Hockin Date: Wed, 25 Nov 2020 16:00:55 -0800 Subject: [PATCH] Svc REST: Test that ExternalName doesn't set IPs --- .../core/service/storage/storage_test.go | 58 +++++++------------ 1 file changed, 21 insertions(+), 37 deletions(-) diff --git a/pkg/registry/core/service/storage/storage_test.go b/pkg/registry/core/service/storage/storage_test.go index 3730b1bc4d4..4f86b8ca8ba 100644 --- a/pkg/registry/core/service/storage/storage_test.go +++ b/pkg/registry/core/service/storage/storage_test.go @@ -339,14 +339,12 @@ func familyOf(ip string) api.IPFamily { return api.IPFamily("unknown") } -// Prove that create ignores IPFamily stuff when type is ExternalName. -func TestCreateIgnoresIPFamilyForExternalName(t *testing.T) { +// Prove that create ignores IP and IPFamily stuff when type is ExternalName. +func TestCreateIgnoresIPsForExternalName(t *testing.T) { type testCase struct { - name string - svc *api.Service - expectError bool - expectPolicy *api.IPFamilyPolicyType - expectFamilies []api.IPFamily + name string + svc *api.Service + expectError bool } // These cases were chosen from the full gamut to ensure all "interesting" // cases are covered. @@ -360,41 +358,31 @@ func TestCreateIgnoresIPFamilyForExternalName(t *testing.T) { clusterFamilies: []api.IPFamily{api.IPv4Protocol}, enableDualStack: false, cases: []testCase{{ - name: "Policy:unset_Families:unset", - svc: svctest.MakeService("foo"), - expectPolicy: nil, - expectFamilies: nil, + name: "Policy:unset_Families:unset", + svc: svctest.MakeService("foo"), }, { name: "Policy:SingleStack_Families:v4", svc: svctest.MakeService("foo", svctest.SetIPFamilyPolicy(api.IPFamilyPolicySingleStack), svctest.SetIPFamilies(api.IPv4Protocol)), - expectPolicy: nil, - expectFamilies: nil, }, { name: "Policy:PreferDualStack_Families:v4v6", svc: svctest.MakeService("foo", svctest.SetIPFamilyPolicy(api.IPFamilyPolicyPreferDualStack), svctest.SetIPFamilies(api.IPv4Protocol, api.IPv6Protocol)), - expectPolicy: nil, - expectFamilies: nil, }, { name: "Policy:RequireDualStack_Families:v6v4", svc: svctest.MakeService("foo", svctest.SetIPFamilyPolicy(api.IPFamilyPolicyRequireDualStack), svctest.SetIPFamilies(api.IPv6Protocol, api.IPv4Protocol)), - expectPolicy: nil, - expectFamilies: nil, }}, }, { name: "singlestack:v6_gate:on", clusterFamilies: []api.IPFamily{api.IPv6Protocol}, enableDualStack: true, cases: []testCase{{ - name: "Policy:unset_Families:unset", - svc: svctest.MakeService("foo"), - expectPolicy: nil, - expectFamilies: nil, + name: "Policy:unset_Families:unset", + svc: svctest.MakeService("foo"), }, { name: "Policy:SingleStack_Families:v6", svc: svctest.MakeService("foo", @@ -419,41 +407,31 @@ func TestCreateIgnoresIPFamilyForExternalName(t *testing.T) { clusterFamilies: []api.IPFamily{api.IPv4Protocol, api.IPv6Protocol}, enableDualStack: false, cases: []testCase{{ - name: "Policy:unset_Families:unset", - svc: svctest.MakeService("foo"), - expectPolicy: nil, - expectFamilies: nil, + name: "Policy:unset_Families:unset", + svc: svctest.MakeService("foo"), }, { name: "Policy:SingleStack_Families:v4", svc: svctest.MakeService("foo", svctest.SetIPFamilyPolicy(api.IPFamilyPolicySingleStack), svctest.SetIPFamilies(api.IPv4Protocol)), - expectPolicy: nil, - expectFamilies: nil, }, { name: "Policy:PreferDualStack_Families:v4v6", svc: svctest.MakeService("foo", svctest.SetIPFamilyPolicy(api.IPFamilyPolicyPreferDualStack), svctest.SetIPFamilies(api.IPv4Protocol, api.IPv6Protocol)), - expectPolicy: nil, - expectFamilies: nil, }, { name: "Policy:RequireDualStack_Families:v6v4", svc: svctest.MakeService("foo", svctest.SetIPFamilyPolicy(api.IPFamilyPolicyRequireDualStack), svctest.SetIPFamilies(api.IPv6Protocol, api.IPv4Protocol)), - expectPolicy: nil, - expectFamilies: nil, }}, }, { name: "dualstack:v6v4_gate:on", clusterFamilies: []api.IPFamily{api.IPv6Protocol, api.IPv4Protocol}, enableDualStack: true, cases: []testCase{{ - name: "Policy:unset_Families:unset", - svc: svctest.MakeService("foo"), - expectPolicy: nil, - expectFamilies: nil, + name: "Policy:unset_Families:unset", + svc: svctest.MakeService("foo"), }, { name: "Policy:SingleStack_Families:v6", svc: svctest.MakeService("foo", @@ -503,12 +481,18 @@ func TestCreateIgnoresIPFamilyForExternalName(t *testing.T) { } createdSvc := createdObj.(*api.Service) - if want, got := fmtIPFamilyPolicy(itc.expectPolicy), fmtIPFamilyPolicy(createdSvc.Spec.IPFamilyPolicy); want != got { + if want, got := fmtIPFamilyPolicy(nil), fmtIPFamilyPolicy(createdSvc.Spec.IPFamilyPolicy); want != got { t.Errorf("wrong IPFamilyPolicy: want %s, got %s", want, got) } - if want, got := fmtIPFamilies(itc.expectFamilies), fmtIPFamilies(createdSvc.Spec.IPFamilies); want != got { + if want, got := fmtIPFamilies(nil), fmtIPFamilies(createdSvc.Spec.IPFamilies); want != got { t.Errorf("wrong IPFamilies: want %s, got %s", want, got) } + if len(createdSvc.Spec.ClusterIP) != 0 { + t.Errorf("expected no clusterIP, got %q", createdSvc.Spec.ClusterIP) + } + if len(createdSvc.Spec.ClusterIPs) != 0 { + t.Errorf("expected no clusterIPs, got %q", createdSvc.Spec.ClusterIPs) + } }) } })