From 6051a16edd014b824ef0a0e3ae0370c34e45a990 Mon Sep 17 00:00:00 2001 From: Rob Scott Date: Mon, 27 Jul 2020 18:07:05 -0700 Subject: [PATCH] Improving logging in EndpointSlice e2e tests When these tests failed it was unclear that the reason for the failure could have been more EndpointSlices than expected. It was also unclear what EndpointSlices were actually found when that occurred. This fixes both of those issues. --- test/e2e/network/endpointslice.go | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/test/e2e/network/endpointslice.go b/test/e2e/network/endpointslice.go index 5da9945b19d..d1f25a8a89a 100644 --- a/test/e2e/network/endpointslice.go +++ b/test/e2e/network/endpointslice.go @@ -18,6 +18,7 @@ package network import ( "context" + "encoding/json" "fmt" "time" @@ -311,13 +312,12 @@ func expectEndpointsAndSlices(cs clientset.Interface, ns string, svc *v1.Service if err := wait.PollImmediate(5*time.Second, 2*time.Minute, func() (bool, error) { endpointSlicesFound, hasMatchingSlices := hasMatchingEndpointSlices(cs, ns, svc.Name, len(pods), numSlices) if !hasMatchingSlices { - framework.Logf("Matching EndpointSlices not found") return false, nil } endpointSlices = endpointSlicesFound return true, nil }); err != nil { - framework.Failf("Timed out waiting for matching EndpointSlices to exist: %v", err) + framework.Failf("Timed out waiting for EndpointSlices to match expectations: %v", err) } endpoints := &v1.Endpoints{} @@ -330,7 +330,7 @@ func expectEndpointsAndSlices(cs clientset.Interface, ns string, svc *v1.Service endpoints = endpointsFound return true, nil }); err != nil { - framework.Failf("Timed out waiting for matching Endpoints to exist: %v", err) + framework.Failf("Timed out waiting for Endpoints to match expectations: %v", err) } podsByIP := map[string]*v1.Pod{} @@ -494,7 +494,15 @@ func hasMatchingEndpointSlices(cs clientset.Interface, ns, svcName string, numEn } if len(esList.Items) != numSlices { framework.Logf("Expected %d EndpointSlices for Service %s/%s, got %d", numSlices, ns, svcName, len(esList.Items)) - return []discoveryv1beta1.EndpointSlice{}, false + for i, epSlice := range esList.Items { + epsData, err := json.Marshal(epSlice) + if err != nil { + framework.Logf("Error marshaling JSON for EndpointSlice: %v", err) + } else { + framework.Logf("%d - %v", i, string(epsData)) + } + } + return esList.Items, false } actualNumEndpoints := 0 @@ -503,7 +511,7 @@ func hasMatchingEndpointSlices(cs clientset.Interface, ns, svcName string, numEn } if actualNumEndpoints != numEndpoints { framework.Logf("EndpointSlices for %s/%s Service have %d/%d endpoints", ns, svcName, actualNumEndpoints, numEndpoints) - return []discoveryv1beta1.EndpointSlice{}, false + return esList.Items, false } return esList.Items, true