Skip to content

Commit 08cf682

Browse files
committed
use t.Context() in test
`defer ctx.Done()` does not actually cancel the context.
1 parent 26a69fc commit 08cf682

File tree

4 files changed

+17
-30
lines changed

4 files changed

+17
-30
lines changed

pkg/controller/controller_test.go

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -261,9 +261,7 @@ func TestController(t *testing.T) {
261261
stopCh := make(chan struct{})
262262
informerFactory.Start(stopCh)
263263

264-
ctx := context.TODO()
265-
defer ctx.Done()
266-
go controller.Run(1, ctx)
264+
go controller.Run(1, t.Context())
267265

268266
for _, obj := range initialObjects {
269267
switch obj.(type) {

pkg/modifycontroller/controller_test.go

Lines changed: 14 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -4,25 +4,22 @@ import (
44
"context"
55
"errors"
66
"fmt"
7-
"github.com/kubernetes-csi/external-resizer/pkg/util"
8-
"google.golang.org/grpc/codes"
9-
"google.golang.org/grpc/status"
10-
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
11-
"k8s.io/client-go/tools/cache"
127
"testing"
138
"time"
149

15-
"github.com/kubernetes-csi/external-resizer/pkg/features"
16-
17-
"k8s.io/client-go/util/workqueue"
18-
1910
"github.com/kubernetes-csi/external-resizer/pkg/csi"
11+
"github.com/kubernetes-csi/external-resizer/pkg/features"
2012
"github.com/kubernetes-csi/external-resizer/pkg/modifier"
21-
13+
"github.com/kubernetes-csi/external-resizer/pkg/util"
14+
"google.golang.org/grpc/codes"
15+
"google.golang.org/grpc/status"
2216
v1 "k8s.io/api/core/v1"
2317
storagev1beta1 "k8s.io/api/storage/v1beta1"
18+
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
2419
"k8s.io/apimachinery/pkg/runtime"
2520
utilfeature "k8s.io/apiserver/pkg/util/feature"
21+
"k8s.io/client-go/tools/cache"
22+
"k8s.io/client-go/util/workqueue"
2623
featuregatetesting "k8s.io/component-base/featuregate/testing"
2724
)
2825

@@ -71,8 +68,7 @@ func TestController(t *testing.T) {
7168
client := csi.NewMockClient(testDriverName, true, true, true, true, true, false)
7269

7370
initialObjects := []runtime.Object{test.pvc, test.pv, testVacObject, targetVacObject}
74-
ctrlInstance, ctx := setupFakeK8sEnvironment(t, client, initialObjects)
75-
defer ctx.Done()
71+
ctrlInstance := setupFakeK8sEnvironment(t, client, initialObjects)
7672

7773
_, _, err, _ := ctrlInstance.modify(test.pvc, test.pv)
7874
if err != nil {
@@ -126,8 +122,7 @@ func TestModifyPVC(t *testing.T) {
126122
}
127123

128124
initialObjects := []runtime.Object{test.pvc, test.pv, testVacObject, targetVacObject}
129-
ctrlInstance, ctx := setupFakeK8sEnvironment(t, client, initialObjects)
130-
defer ctx.Done()
125+
ctrlInstance := setupFakeK8sEnvironment(t, client, initialObjects)
131126

132127
_, _, err, _ := ctrlInstance.modify(test.pvc, test.pv)
133128

@@ -225,8 +220,7 @@ func TestSyncPVC(t *testing.T) {
225220
client := csi.NewMockClient(testDriverName, true, true, true, true, true, false)
226221

227222
initialObjects := []runtime.Object{test.pvc, test.pv, testVacObject, targetVacObject}
228-
ctrlInstance, ctx := setupFakeK8sEnvironment(t, client, initialObjects)
229-
defer ctx.Done()
223+
ctrlInstance := setupFakeK8sEnvironment(t, client, initialObjects)
230224

231225
err := ctrlInstance.syncPVC(pvcNamespace + "/" + pvcName)
232226
if err != nil {
@@ -289,8 +283,7 @@ func TestInfeasibleRetry(t *testing.T) {
289283
}
290284

291285
initialObjects := []runtime.Object{test.pvc, basePV, testVacObject, targetVacObject}
292-
ctrlInstance, ctx := setupFakeK8sEnvironment(t, client, initialObjects)
293-
defer ctx.Done()
286+
ctrlInstance := setupFakeK8sEnvironment(t, client, initialObjects)
294287

295288
// Attempt modification first time
296289
err := ctrlInstance.syncPVC(pvcNamespace + "/" + pvcName)
@@ -329,7 +322,7 @@ func TestInfeasibleRetry(t *testing.T) {
329322
}
330323

331324
// setupFakeK8sEnvironment creates fake K8s environment and starts Informers and ModifyController
332-
func setupFakeK8sEnvironment(t *testing.T, client *csi.MockClient, initialObjects []runtime.Object) (*modifyController, context.Context) {
325+
func setupFakeK8sEnvironment(t *testing.T, client *csi.MockClient, initialObjects []runtime.Object) *modifyController {
333326
t.Helper()
334327

335328
featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.VolumeAttributesClass, true)
@@ -356,8 +349,7 @@ func setupFakeK8sEnvironment(t *testing.T, client *csi.MockClient, initialObject
356349
stopCh := make(chan struct{})
357350
informerFactory.Start(stopCh)
358351

359-
ctx := context.TODO()
360-
go controller.Run(1, ctx)
352+
go controller.Run(1, t.Context())
361353

362354
/* Add initial objects to informer caches */
363355
for _, obj := range initialObjects {
@@ -375,5 +367,5 @@ func setupFakeK8sEnvironment(t *testing.T, client *csi.MockClient, initialObject
375367

376368
ctrlInstance, _ := controller.(*modifyController)
377369

378-
return ctrlInstance, ctx
370+
return ctrlInstance
379371
}

pkg/modifycontroller/modify_status_test.go

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -322,9 +322,7 @@ func TestRemovePVCFromModifyVolumeUncertainCache(t *testing.T) {
322322
stopCh := make(chan struct{})
323323
informerFactory.Start(stopCh)
324324

325-
ctx := context.TODO()
326-
defer ctx.Done()
327-
success := ctrlInstance.init(ctx)
325+
success := ctrlInstance.init(t.Context())
328326
if !success {
329327
t.Fatal("failed to init controller")
330328
}

pkg/modifycontroller/modify_volume_test.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -109,8 +109,7 @@ func TestModify(t *testing.T) {
109109
if test.vacExists {
110110
initialObjects = append(initialObjects, targetVacObject)
111111
}
112-
ctrlInstance, ctx := setupFakeK8sEnvironment(t, client, initialObjects)
113-
defer ctx.Done()
112+
ctrlInstance := setupFakeK8sEnvironment(t, client, initialObjects)
114113

115114
// Action
116115
pvc, pv, err, modifyCalled := ctrlInstance.modify(test.pvc, test.pv)

0 commit comments

Comments
 (0)