From 3a83dc12eb861b0beae3e0dc50514c58cdc66bf6 Mon Sep 17 00:00:00 2001 From: Marek Siarkowicz Date: Tue, 5 Mar 2024 21:56:40 +0100 Subject: [PATCH] Fix SetFeatureGateDuringTest handling of Parallel tests Stop using defer as parallel subtest will might result in main test finishing before subtest. Fatal when same flag is set twice. Kubernetes-commit: 9fcf279e2b91e7549190a433373f256fb5aebe85 --- .../handlers/responsewriters/writers_test.go | 11 ++++------- pkg/storage/cacher/cacher_test.go | 2 ++ 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/pkg/endpoints/handlers/responsewriters/writers_test.go b/pkg/endpoints/handlers/responsewriters/writers_test.go index 7a6ca546e..c82dd89cb 100644 --- a/pkg/endpoints/handlers/responsewriters/writers_test.go +++ b/pkg/endpoints/handlers/responsewriters/writers_test.go @@ -53,8 +53,6 @@ func TestSerializeObjectParallel(t *testing.T) { type test struct { name string - compressionEnabled bool - mediaType string out []byte outErrs []error @@ -67,10 +65,9 @@ func TestSerializeObjectParallel(t *testing.T) { } newTest := func() test { return test{ - name: "compress on gzip", - compressionEnabled: true, - out: largePayload, - mediaType: "application/json", + name: "compress on gzip", + out: largePayload, + mediaType: "application/json", req: &http.Request{ Header: http.Header{ "Accept-Encoding": []string{"gzip"}, @@ -85,6 +82,7 @@ func TestSerializeObjectParallel(t *testing.T) { }, } } + defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.APIResponseCompression, true)() for i := 0; i < 100; i++ { ctt := newTest() t.Run(ctt.name, func(t *testing.T) { @@ -94,7 +92,6 @@ func TestSerializeObjectParallel(t *testing.T) { } }() t.Parallel() - defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.APIResponseCompression, ctt.compressionEnabled)() encoder := &fakeEncoder{ buf: ctt.out, diff --git a/pkg/storage/cacher/cacher_test.go b/pkg/storage/cacher/cacher_test.go index 3cb4eff84..1fafb58bb 100644 --- a/pkg/storage/cacher/cacher_test.go +++ b/pkg/storage/cacher/cacher_test.go @@ -173,6 +173,8 @@ func TestList(t *testing.T) { } func TestListWithListFromCache(t *testing.T) { + // TODO(https://github.com/etcd-io/etcd/issues/17507): Remove skip. + t.Skip("This test flakes flakes due to https://github.com/etcd-io/etcd/issues/17507") defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.ConsistentListFromCache, true)() ctx, cacher, server, terminate := testSetupWithEtcdServer(t) t.Cleanup(terminate)