test(endpointslice): deflake TestSyncEndpoints

Signed-off-by: knight42 <anonymousknight96@gmail.com>
This commit is contained in:
knight42 2020-08-25 15:40:29 +08:00
parent 4db3a096ce
commit 02236580a6
No known key found for this signature in database
GPG Key ID: 1040B69865E7D86C
2 changed files with 16 additions and 4 deletions

View File

@ -65,6 +65,7 @@ go_test(
"//staging/src/k8s.io/apimachinery/pkg/runtime/schema:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/types:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/util/rand:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/util/wait:go_default_library",
"//staging/src/k8s.io/client-go/informers:go_default_library",
"//staging/src/k8s.io/client-go/kubernetes/fake:go_default_library",
"//staging/src/k8s.io/client-go/kubernetes/scheme:go_default_library",

View File

@ -25,10 +25,12 @@ import (
v1 "k8s.io/api/core/v1"
discovery "k8s.io/api/discovery/v1beta1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/util/wait"
"k8s.io/client-go/informers"
"k8s.io/client-go/kubernetes/fake"
"k8s.io/client-go/tools/cache"
"k8s.io/client-go/tools/leaderelection/resourcelock"
"k8s.io/kubernetes/pkg/controller"
)
@ -235,13 +237,22 @@ func TestSyncEndpoints(t *testing.T) {
err := esController.syncEndpoints(fmt.Sprintf("%s/%s", namespace, endpointsName))
if err != nil {
t.Errorf("Unexpected error from syncEndpoints: %v", err)
t.Fatalf("Unexpected error from syncEndpoints: %v", err)
}
numInitialActions := len(tc.endpointSlices)
numExtraActions := len(client.Actions()) - numInitialActions
if numExtraActions != tc.expectedNumActions {
t.Fatalf("Expected %d additional client actions, got %d: %#v", tc.expectedNumActions, numExtraActions, client.Actions()[numInitialActions:])
// Wait for the expected event show up in test "Endpoints with 1001 addresses - 1 should not be mirrored"
err = wait.PollImmediate(time.Millisecond*100, wait.ForeverTestTimeout, func() (done bool, err error) {
actions := client.Actions()
numExtraActions := len(actions) - numInitialActions
if numExtraActions != tc.expectedNumActions {
t.Logf("Expected %d additional client actions, got %d: %#v. Will retry", tc.expectedNumActions, numExtraActions, actions[numInitialActions:])
return false, nil
}
return true, nil
})
if err != nil {
t.Fatal("Timed out waiting for expected actions")
}
endpointSlices := fetchEndpointSlices(t, client, namespace)