From 7d077f9271e829db86f76e13fad8a94efbf281c8 Mon Sep 17 00:00:00 2001 From: Patrick Ohly Date: Wed, 11 Oct 2023 12:10:25 +0300 Subject: [PATCH] e2e: move AllNodesReady check to DeferCleanup Some test cases can make nodes not ready and use DeferCleanup to bring nodes back online. Checking if all nodes are online would fail in such cases as AfterEach runs before DeferCleanup. Scheduling nodes readines check to DeferCleanup should solve this issue as nodes would be brought back to a `Ready` state before the check. --- test/e2e/framework/node/init/init.go | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/test/e2e/framework/node/init/init.go b/test/e2e/framework/node/init/init.go index 653eb6bdebc..a482d9d8da1 100644 --- a/test/e2e/framework/node/init/init.go +++ b/test/e2e/framework/node/init/init.go @@ -30,14 +30,10 @@ import ( func init() { framework.NewFrameworkExtensions = append(framework.NewFrameworkExtensions, func(f *framework.Framework) { - ginkgo.AfterEach(func(ctx context.Context) { - if f.ClientSet == nil { - // Test didn't reach f.BeforeEach, most - // likely because the test got - // skipped. Nothing to check... - return - } - e2enode.AllNodesReady(ctx, f.ClientSet, 7*time.Minute) + ginkgo.BeforeEach(func() { + ginkgo.DeferCleanup(func(ctx context.Context) { + framework.ExpectNoError(e2enode.AllNodesReady(ctx, f.ClientSet, 7*time.Minute)) + }) }) }, )