From afefc6f4ebe85a4cb151a8f0c0a322e4b6a8e58a Mon Sep 17 00:00:00 2001 From: Quan Tian Date: Fri, 5 Jan 2024 18:36:27 +0800 Subject: [PATCH] Make EndpointSlice API e2e test faster EndpointSlices and Endpoints usually become ready pretty fast, but the test always waited 5s before performing every check and it performed the check 4 times in total, so unnecessarily extends the test 20s. The commit changes the poll function to perform a check before waiting, and reduces the interval to 2 seconds to align with other EndpointSlice tests. It reduces the test duration from 30s to 4s. Signed-off-by: Quan Tian --- test/e2e/network/endpointslice.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/test/e2e/network/endpointslice.go b/test/e2e/network/endpointslice.go index 0ee90a064a0..316f60a2c6a 100644 --- a/test/e2e/network/endpointslice.go +++ b/test/e2e/network/endpointslice.go @@ -307,7 +307,7 @@ var _ = common.SIGDescribe("EndpointSlice", func() { }, }) - err := wait.Poll(5*time.Second, 3*time.Minute, func() (bool, error) { + err := wait.PollUntilContextTimeout(ctx, 2*time.Second, 3*time.Minute, true, func(ctx context.Context) (bool, error) { var err error pod1, err = podClient.Get(ctx, pod1.Name, metav1.GetOptions{}) if err != nil { @@ -740,7 +740,7 @@ var _ = common.SIGDescribe("EndpointSlice", func() { // the only caller of this function. func expectEndpointsAndSlices(ctx context.Context, cs clientset.Interface, ns string, svc *v1.Service, pods []*v1.Pod, numSubsets, numSlices int, namedPort bool) { endpointSlices := []discoveryv1.EndpointSlice{} - if err := wait.PollUntilContextTimeout(ctx, 5*time.Second, 2*time.Minute, true, func(ctx context.Context) (bool, error) { + if err := wait.PollUntilContextTimeout(ctx, 2*time.Second, 2*time.Minute, true, func(ctx context.Context) (bool, error) { endpointSlicesFound, hasMatchingSlices := hasMatchingEndpointSlices(ctx, cs, ns, svc.Name, len(pods), numSlices) if !hasMatchingSlices { return false, nil @@ -752,7 +752,7 @@ func expectEndpointsAndSlices(ctx context.Context, cs clientset.Interface, ns st } endpoints := &v1.Endpoints{} - if err := wait.PollWithContext(ctx, 5*time.Second, 2*time.Minute, func(ctx context.Context) (bool, error) { + if err := wait.PollUntilContextTimeout(ctx, 2*time.Second, 2*time.Minute, true, func(ctx context.Context) (bool, error) { endpointsFound, hasMatchingEndpoints := hasMatchingEndpoints(ctx, cs, ns, svc.Name, len(pods), numSubsets) if !hasMatchingEndpoints { framework.Logf("Matching Endpoints not found")