From 25c879eec5fc36ebb7442eae2df47539b2146d7d 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 Kubernetes-commit: fc33d0176a5afb81927430d075165152f953c54e --- pkg/storage/etcd3/watcher_test.go | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/pkg/storage/etcd3/watcher_test.go b/pkg/storage/etcd3/watcher_test.go index af6d0ba02..39f4cb754 100644 --- a/pkg/storage/etcd3/watcher_test.go +++ b/pkg/storage/etcd3/watcher_test.go @@ -299,9 +299,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 {