From e7aa2827463bc560dc88ef8fa999f1a3d25ce854 Mon Sep 17 00:00:00 2001 From: Luca Comellini Date: Tue, 4 Jun 2024 14:43:59 -0700 Subject: [PATCH] Enable more parallel tests --- internal/mode/static/config_updater_test.go | 3 +++ .../static/state/graph/backend_refs_test.go | 19 +++++++++++++++++ .../state/graph/backend_tls_policy_test.go | 2 ++ .../static/state/graph/configmaps_test.go | 2 ++ .../mode/static/state/graph/gateway_test.go | 4 ++++ .../mode/static/state/graph/graph_test.go | 3 +++ .../state/graph/reference_grant_test.go | 6 ------ .../static/state/graph/route_common_test.go | 21 +++++++++++++++++++ tests/suite/system_suite_test.go | 1 + 9 files changed, 55 insertions(+), 6 deletions(-) diff --git a/internal/mode/static/config_updater_test.go b/internal/mode/static/config_updater_test.go index 5a40f9a924..c0830124d0 100644 --- a/internal/mode/static/config_updater_test.go +++ b/internal/mode/static/config_updater_test.go @@ -16,6 +16,7 @@ import ( ) func TestUpdateControlPlane(t *testing.T) { + t.Parallel() debugLogCfg := &ngfAPI.NginxGateway{ Spec: ngfAPI.NginxGatewaySpec{ Logging: &ngfAPI.Logging{ @@ -72,6 +73,7 @@ func TestUpdateControlPlane(t *testing.T) { for _, test := range tests { t.Run(test.name, func(t *testing.T) { + t.Parallel() g := NewWithT(t) fakeLogSetter := &staticfakes.FakeLogLevelSetter{ @@ -118,6 +120,7 @@ func TestValidateLogLevel(t *testing.T) { for _, level := range validLevels { t.Run(fmt.Sprintf("valid level %q", level), func(t *testing.T) { + t.Parallel() g := NewWithT(t) g.Expect(validateLogLevel(level)).To(Succeed()) diff --git a/internal/mode/static/state/graph/backend_refs_test.go b/internal/mode/static/state/graph/backend_refs_test.go index 9f32b552e6..b4e5b2cf3c 100644 --- a/internal/mode/static/state/graph/backend_refs_test.go +++ b/internal/mode/static/state/graph/backend_refs_test.go @@ -37,6 +37,7 @@ func getModifiedRef(mod func(ref gatewayv1.BackendRef) gatewayv1.BackendRef) gat } func TestValidateRouteBackendRef(t *testing.T) { + t.Parallel() tests := []struct { expectedCondition conditions.Condition name string @@ -85,6 +86,7 @@ func TestValidateRouteBackendRef(t *testing.T) { for _, test := range tests { t.Run(test.name, func(t *testing.T) { + t.Parallel() g := NewWithT(t) alwaysTrueRefGrantResolver := func(_ toResource) bool { return true } @@ -97,6 +99,7 @@ func TestValidateRouteBackendRef(t *testing.T) { } func TestValidateBackendRef(t *testing.T) { + t.Parallel() alwaysFalseRefGrantResolver := func(_ toResource) bool { return false } alwaysTrueRefGrantResolver := func(_ toResource) bool { return true } @@ -204,6 +207,7 @@ func TestValidateBackendRef(t *testing.T) { for _, test := range tests { t.Run(test.name, func(t *testing.T) { + t.Parallel() g := NewWithT(t) valid, cond := validateBackendRef(test.ref, "test", test.refGrantResolver, field.NewPath("test")) @@ -215,6 +219,7 @@ func TestValidateBackendRef(t *testing.T) { } func TestValidateWeight(t *testing.T) { + t.Parallel() validWeights := []int32{0, 1, 1000000} invalidWeights := []int32{-1, 1000001} @@ -231,6 +236,7 @@ func TestValidateWeight(t *testing.T) { } func TestGetIPFamilyAndPortFromRef(t *testing.T) { + t.Parallel() svc1 := &v1.Service{ ObjectMeta: metav1.ObjectMeta{ Name: "service1", @@ -301,6 +307,7 @@ func TestGetIPFamilyAndPortFromRef(t *testing.T) { for _, test := range tests { t.Run(test.name, func(t *testing.T) { + t.Parallel() g := NewWithT(t) svcIPFamily, servicePort, err := getIPFamilyAndPortFromRef(test.ref, test.svcNsName, services, refPath) @@ -313,6 +320,7 @@ func TestGetIPFamilyAndPortFromRef(t *testing.T) { } func TestVerifyIPFamily(t *testing.T) { + t.Parallel() test := []struct { name string expErr error @@ -377,6 +385,7 @@ func TestVerifyIPFamily(t *testing.T) { for _, test := range test { t.Run(test.name, func(t *testing.T) { + t.Parallel() g := NewWithT(t) err := verifyIPFamily(test.npCfg, test.svcIPFamily) if test.expErr != nil { @@ -748,6 +757,7 @@ func TestAddBackendRefsToRulesTest(t *testing.T) { } func TestCreateBackend(t *testing.T) { + t.Parallel() createService := func(name string) *v1.Service { return &v1.Service{ ObjectMeta: metav1.ObjectMeta{ @@ -1007,6 +1017,7 @@ func TestCreateBackend(t *testing.T) { for _, test := range tests { t.Run(test.name, func(t *testing.T) { + t.Parallel() g := NewWithT(t) alwaysTrueRefGrantResolver := func(_ toResource) bool { return true } @@ -1035,6 +1046,7 @@ func TestCreateBackend(t *testing.T) { } func TestGetServicePort(t *testing.T) { + t.Parallel() svc := &v1.Service{ Spec: v1.ServiceSpec{ Ports: []v1.ServicePort{ @@ -1065,6 +1077,7 @@ func TestGetServicePort(t *testing.T) { } func TestValidateBackendTLSPolicyMatchingAllBackends(t *testing.T) { + t.Parallel() getBtp := func(name, caCertName string) *BackendTLSPolicy { return &BackendTLSPolicy{ Source: &v1alpha3.BackendTLSPolicy{ @@ -1156,6 +1169,7 @@ func TestValidateBackendTLSPolicyMatchingAllBackends(t *testing.T) { for _, test := range tests { t.Run(test.name, func(t *testing.T) { + t.Parallel() g := NewWithT(t) cond := validateBackendTLSPolicyMatchingAllBackends(test.backendRefs) @@ -1166,6 +1180,7 @@ func TestValidateBackendTLSPolicyMatchingAllBackends(t *testing.T) { } func TestFindBackendTLSPolicyForService(t *testing.T) { + t.Parallel() oldCreationTimestamp := metav1.Now() newCreationTimestamp := metav1.Now() getBtp := func(name string, timestamp metav1.Time) *BackendTLSPolicy { @@ -1231,6 +1246,7 @@ func TestFindBackendTLSPolicyForService(t *testing.T) { for _, test := range tests { t.Run(test.name, func(t *testing.T) { + t.Parallel() g := NewWithT(t) btp, err := findBackendTLSPolicyForService(test.backendTLSPolicies, ref.Namespace, string(ref.Name), "test") @@ -1242,6 +1258,7 @@ func TestFindBackendTLSPolicyForService(t *testing.T) { } func TestGetRefGrantFromResourceForRoute(t *testing.T) { + t.Parallel() tests := []struct { name string routeType RouteType @@ -1264,6 +1281,7 @@ func TestGetRefGrantFromResourceForRoute(t *testing.T) { for _, test := range tests { t.Run(test.name, func(t *testing.T) { + t.Parallel() g := NewWithT(t) g.Expect(getRefGrantFromResourceForRoute(test.routeType, test.ns)).To(Equal(test.expFromResource)) }) @@ -1271,6 +1289,7 @@ func TestGetRefGrantFromResourceForRoute(t *testing.T) { } func TestGetRefGrantFromResourceForRoute_Panics(t *testing.T) { + t.Parallel() g := NewWithT(t) get := func() { diff --git a/internal/mode/static/state/graph/backend_tls_policy_test.go b/internal/mode/static/state/graph/backend_tls_policy_test.go index 3d89fa399e..791b8f8ffc 100644 --- a/internal/mode/static/state/graph/backend_tls_policy_test.go +++ b/internal/mode/static/state/graph/backend_tls_policy_test.go @@ -16,6 +16,7 @@ import ( ) func TestProcessBackendTLSPoliciesEmpty(t *testing.T) { + t.Parallel() backendTLSPolicies := map[types.NamespacedName]*v1alpha3.BackendTLSPolicy{ {Namespace: "test", Name: "tls-policy"}: { ObjectMeta: metav1.ObjectMeta{ @@ -71,6 +72,7 @@ func TestProcessBackendTLSPoliciesEmpty(t *testing.T) { for _, test := range tests { t.Run(test.name, func(t *testing.T) { + t.Parallel() g := NewWithT(t) processed := processBackendTLSPolicies(test.backendTLSPolicies, nil, "test", test.gateway) diff --git a/internal/mode/static/state/graph/configmaps_test.go b/internal/mode/static/state/graph/configmaps_test.go index 4e9430c510..852d7c8917 100644 --- a/internal/mode/static/state/graph/configmaps_test.go +++ b/internal/mode/static/state/graph/configmaps_test.go @@ -88,6 +88,7 @@ UdxohGqleWFMQ3UNLOvc9Fk+q72ryg== ) func TestValidateCA(t *testing.T) { + t.Parallel() base64Data := make([]byte, base64.StdEncoding.EncodedLen(len(caBlock))) base64.StdEncoding.Encode(base64Data, []byte(caBlock)) @@ -120,6 +121,7 @@ func TestValidateCA(t *testing.T) { for _, test := range tests { t.Run(test.name, func(t *testing.T) { + t.Parallel() g := NewWithT(t) err := validateCA(test.data) diff --git a/internal/mode/static/state/graph/gateway_test.go b/internal/mode/static/state/graph/gateway_test.go index 1fa713e5b2..36021e6dc3 100644 --- a/internal/mode/static/state/graph/gateway_test.go +++ b/internal/mode/static/state/graph/gateway_test.go @@ -18,6 +18,7 @@ import ( ) func TestProcessedGatewaysGetAllNsNames(t *testing.T) { + t.Parallel() winner := &v1.Gateway{ ObjectMeta: metav1.ObjectMeta{ Namespace: "test", @@ -58,6 +59,7 @@ func TestProcessedGatewaysGetAllNsNames(t *testing.T) { for _, test := range tests { t.Run(test.name, func(t *testing.T) { + t.Parallel() g := NewWithT(t) result := test.gws.GetAllNsNames() g.Expect(result).To(Equal(test.expected)) @@ -66,6 +68,7 @@ func TestProcessedGatewaysGetAllNsNames(t *testing.T) { } func TestProcessGateways(t *testing.T) { + t.Parallel() const gcName = "test-gc" winner := &v1.Gateway{ @@ -133,6 +136,7 @@ func TestProcessGateways(t *testing.T) { for _, test := range tests { t.Run(test.name, func(t *testing.T) { + t.Parallel() g := NewWithT(t) result := processGateways(test.gws, gcName) g.Expect(helpers.Diff(test.expected, result)).To(BeEmpty()) diff --git a/internal/mode/static/state/graph/graph_test.go b/internal/mode/static/state/graph/graph_test.go index 3312aea694..6250e20b58 100644 --- a/internal/mode/static/state/graph/graph_test.go +++ b/internal/mode/static/state/graph/graph_test.go @@ -1182,6 +1182,7 @@ func TestIsReferenced(t *testing.T) { } func TestIsNGFPolicyRelevant(t *testing.T) { + t.Parallel() policyGVK := schema.GroupVersionKind{Kind: "MyKind"} existingPolicyNsName := types.NamespacedName{Namespace: "test", Name: "pol"} @@ -1324,6 +1325,7 @@ func TestIsNGFPolicyRelevant(t *testing.T) { for _, test := range tests { t.Run(test.name, func(t *testing.T) { + t.Parallel() g := NewWithT(t) relevant := test.graph.IsNGFPolicyRelevant(test.policy, policyGVK, test.nsname) @@ -1333,6 +1335,7 @@ func TestIsNGFPolicyRelevant(t *testing.T) { } func TestIsNGFPolicyRelevantPanics(t *testing.T) { + t.Parallel() g := NewWithT(t) graph := &Graph{} nsname := types.NamespacedName{Namespace: "test", Name: "pol"} diff --git a/internal/mode/static/state/graph/reference_grant_test.go b/internal/mode/static/state/graph/reference_grant_test.go index 41d2615ec9..618cba181d 100644 --- a/internal/mode/static/state/graph/reference_grant_test.go +++ b/internal/mode/static/state/graph/reference_grant_test.go @@ -13,7 +13,6 @@ import ( func TestReferenceGrantResolver(t *testing.T) { t.Parallel() - gwNs := "gw-ns" secretNsName := types.NamespacedName{Namespace: "test", Name: "certificate"} @@ -164,7 +163,6 @@ func TestReferenceGrantResolver(t *testing.T) { for _, test := range tests { t.Run(test.msg, func(t *testing.T) { t.Parallel() - g := NewWithT(t) g.Expect(resolver.refAllowed(test.to, test.from)).To(Equal(test.allowed)) @@ -174,7 +172,6 @@ func TestReferenceGrantResolver(t *testing.T) { func TestToSecret(t *testing.T) { t.Parallel() - ref := toSecret(types.NamespacedName{Namespace: "ns", Name: "secret"}) exp := toResource{ @@ -189,7 +186,6 @@ func TestToSecret(t *testing.T) { func TestToService(t *testing.T) { t.Parallel() - ref := toService(types.NamespacedName{Namespace: "ns", Name: "service"}) exp := toResource{ @@ -204,7 +200,6 @@ func TestToService(t *testing.T) { func TestFromGateway(t *testing.T) { t.Parallel() - ref := fromGateway("ns") exp := fromResource{ @@ -219,7 +214,6 @@ func TestFromGateway(t *testing.T) { func TestFromHTTPRoute(t *testing.T) { t.Parallel() - ref := fromHTTPRoute("ns") exp := fromResource{ diff --git a/internal/mode/static/state/graph/route_common_test.go b/internal/mode/static/state/graph/route_common_test.go index 0eef2ffe7f..f96e820bb7 100644 --- a/internal/mode/static/state/graph/route_common_test.go +++ b/internal/mode/static/state/graph/route_common_test.go @@ -22,6 +22,7 @@ import ( ) func TestBuildSectionNameRefs(t *testing.T) { + t.Parallel() const routeNamespace = "test" gwNsName1 := types.NamespacedName{Namespace: routeNamespace, Name: "gateway-1"} @@ -123,6 +124,7 @@ func TestBuildSectionNameRefs(t *testing.T) { for _, test := range tests { t.Run(test.name, func(t *testing.T) { + t.Parallel() g := NewWithT(t) result, err := buildSectionNameRefs(test.parentRefs, routeNamespace, gwNsNames) @@ -137,6 +139,7 @@ func TestBuildSectionNameRefs(t *testing.T) { } func TestFindGatewayForParentRef(t *testing.T) { + t.Parallel() gwNsName1 := types.NamespacedName{Namespace: "test-1", Name: "gateway-1"} gwNsName2 := types.NamespacedName{Namespace: "test-2", Name: "gateway-2"} @@ -212,6 +215,7 @@ func TestFindGatewayForParentRef(t *testing.T) { for _, test := range tests { t.Run(test.name, func(t *testing.T) { + t.Parallel() g := NewWithT(t) gw, found := findGatewayForParentRef(test.ref, routeNamespace, gwNsNames) @@ -1235,6 +1239,7 @@ func TestBindRouteToListeners(t *testing.T) { } func TestFindAcceptedHostnames(t *testing.T) { + t.Parallel() var listenerHostnameFoo gatewayv1.Hostname = "foo.example.com" var listenerHostnameCafe gatewayv1.Hostname = "cafe.example.com" var listenerHostnameWildcard gatewayv1.Hostname = "*.example.com" @@ -1310,6 +1315,7 @@ func TestFindAcceptedHostnames(t *testing.T) { for _, test := range tests { t.Run(test.msg, func(t *testing.T) { + t.Parallel() g := NewWithT(t) result := findAcceptedHostnames(test.listenerHostname, test.routeHostnames) g.Expect(result).To(Equal(test.expected)) @@ -1318,6 +1324,7 @@ func TestFindAcceptedHostnames(t *testing.T) { } func TestGetHostname(t *testing.T) { + t.Parallel() var emptyHostname gatewayv1.Hostname var hostname gatewayv1.Hostname = "example.com" @@ -1345,6 +1352,7 @@ func TestGetHostname(t *testing.T) { for _, test := range tests { t.Run(test.msg, func(t *testing.T) { + t.Parallel() g := NewWithT(t) result := getHostname(test.h) g.Expect(result).To(Equal(test.expected)) @@ -1353,6 +1361,7 @@ func TestGetHostname(t *testing.T) { } func TestValidateHostnames(t *testing.T) { + t.Parallel() const validHostname = "example.com" tests := []struct { @@ -1383,6 +1392,7 @@ func TestValidateHostnames(t *testing.T) { for _, test := range tests { t.Run(test.name, func(t *testing.T) { + t.Parallel() g := NewWithT(t) err := validateHostnames(test.hostnames, path) @@ -1397,6 +1407,7 @@ func TestValidateHostnames(t *testing.T) { } func TestValidateFilterRequestHeaderModifier(t *testing.T) { + t.Parallel() createAllValidValidator := func() *validationfakes.FakeHTTPFieldsValidator { v := &validationfakes.FakeHTTPFieldsValidator{} return v @@ -1531,6 +1542,7 @@ func TestValidateFilterRequestHeaderModifier(t *testing.T) { for _, test := range tests { t.Run(test.name, func(t *testing.T) { + t.Parallel() g := NewWithT(t) allErrs := validateFilterHeaderModifier( test.validator, test.filter.RequestHeaderModifier, filterPath, @@ -1541,6 +1553,7 @@ func TestValidateFilterRequestHeaderModifier(t *testing.T) { } func TestValidateFilterResponseHeaderModifier(t *testing.T) { + t.Parallel() createAllValidValidator := func() *validationfakes.FakeHTTPFieldsValidator { v := &validationfakes.FakeHTTPFieldsValidator{} return v @@ -1709,6 +1722,7 @@ func TestValidateFilterResponseHeaderModifier(t *testing.T) { for _, test := range tests { t.Run(test.name, func(t *testing.T) { + t.Parallel() g := NewWithT(t) allErrs := validateFilterResponseHeaderModifier( test.validator, test.filter.ResponseHeaderModifier, filterPath, @@ -1719,6 +1733,7 @@ func TestValidateFilterResponseHeaderModifier(t *testing.T) { } func TestRouteKeyForKind(t *testing.T) { + t.Parallel() nsname := types.NamespacedName{Namespace: testNs, Name: "route"} g := NewWithT(t) @@ -1737,6 +1752,7 @@ func TestRouteKeyForKind(t *testing.T) { } func TestAllowedRouteType(t *testing.T) { + t.Parallel() test := []struct { listener *Listener name string @@ -1788,6 +1804,7 @@ func TestAllowedRouteType(t *testing.T) { for _, test := range test { t.Run(test.name, func(t *testing.T) { + t.Parallel() g := NewWithT(t) g.Expect(isRouteTypeAllowedByListener(test.listener, convertRouteType(test.routeType))).To(Equal(test.expResult)) }) @@ -1795,6 +1812,7 @@ func TestAllowedRouteType(t *testing.T) { } func TestBindL4RouteToListeners(t *testing.T) { + t.Parallel() // we create a new listener each time because the function under test can modify it createListener := func(name string) *Listener { return &Listener{ @@ -2399,6 +2417,7 @@ func TestBindL4RouteToListeners(t *testing.T) { } for _, test := range tests { t.Run(test.name, func(t *testing.T) { + t.Parallel() g := NewWithT(t) bindL4RouteToListeners( @@ -2416,6 +2435,7 @@ func TestBindL4RouteToListeners(t *testing.T) { } func TestBuildL4RoutesForGateways_NoGateways(t *testing.T) { + t.Parallel() g := NewWithT(t) nsName := types.NamespacedName{Namespace: testNs, Name: "hi"} @@ -2448,6 +2468,7 @@ func TestBuildL4RoutesForGateways_NoGateways(t *testing.T) { } func TestTryToAttachL4RouteToListeners_NoAttachableListeners(t *testing.T) { + t.Parallel() g := NewWithT(t) route := &L4Route{ diff --git a/tests/suite/system_suite_test.go b/tests/suite/system_suite_test.go index d99d4b7f63..5bd0747a7a 100644 --- a/tests/suite/system_suite_test.go +++ b/tests/suite/system_suite_test.go @@ -36,6 +36,7 @@ import ( ) func TestNGF(t *testing.T) { + t.Parallel() flag.Parse() if *gatewayAPIVersion == "" { panic("Gateway API version must be set")