From fc33d0176a5afb81927430d075165152f953c54e Mon Sep 17 00:00:00 2001 From: Steve Kuznetsov Date: Wed, 23 Mar 2022 12:22:35 -0800 Subject: [PATCH] pkg/storage/etcd3: update test to time out, not panic Without these select statements, this test runs until the package-global timeout and causes a panic. This change makes the test fail faster and more legibly. Signed-off-by: Steve Kuznetsov --- .../apiserver/pkg/storage/etcd3/watcher_test.go | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/staging/src/k8s.io/apiserver/pkg/storage/etcd3/watcher_test.go b/staging/src/k8s.io/apiserver/pkg/storage/etcd3/watcher_test.go index 6f0fe95103c..14c84235c1f 100644 --- a/staging/src/k8s.io/apiserver/pkg/storage/etcd3/watcher_test.go +++ b/staging/src/k8s.io/apiserver/pkg/storage/etcd3/watcher_test.go @@ -300,9 +300,20 @@ func TestWatchDeleteEventObjectHaveLatestRV(t *testing.T) { t.Fatalf("Delete failed: %v", err) } - e := <-w.ResultChan() + var e watch.Event + var wres clientv3.WatchResponse + watchCtx, _ := context.WithTimeout(ctx, wait.ForeverTestTimeout) + select { + case e = <-w.ResultChan(): + case <-watchCtx.Done(): + t.Fatalf("timed out waiting for watch event") + } + select { + case wres = <-etcdW: + case <-watchCtx.Done(): + t.Fatalf("timed out waiting for raw watch event") + } watchedDeleteObj := e.Object.(*example.Pod) - wres := <-etcdW watchedDeleteRev, err := store.versioner.ParseResourceVersion(watchedDeleteObj.ResourceVersion) if err != nil {