Skip to content

Commit c5d4e53

Browse files
authored
Merge pull request kubernetes#130731 from Jefftree/cle-int-refactor
Fix context usage in CLE integration test
2 parents f3a23cf + b7b1e78 commit c5d4e53

File tree

1 file changed

+25
-25
lines changed

1 file changed

+25
-25
lines changed

test/integration/apiserver/coordinated_leader_election_test.go

Lines changed: 25 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -63,12 +63,13 @@ func TestSingleLeaseCandidate(t *testing.T) {
6363
}
6464
defer server.TearDownFn()
6565
config := server.ClientConfig
66-
ctx, cancel := context.WithCancel(context.Background())
67-
defer cancel()
6866

6967
for _, tc := range tests {
7068
t.Run(tc.name, func(t *testing.T) {
71-
cletest := setupCLE(config, ctx, cancel, t)
69+
ctx, cancel := context.WithCancel(context.Background())
70+
defer cancel()
71+
72+
cletest := setupCLE(config, ctx, t)
7273
defer cletest.cleanup()
7374
go cletest.createAndRunFakeController("foo1", "default", "foo", "1.20.0", "1.20.0", tc.preferredStrategy)
7475
cletest.pollForLease(ctx, "foo", "default", tc.expectedHolderIdentity)
@@ -101,12 +102,13 @@ func TestSingleLeaseCandidateUsingThirdPartyStrategy(t *testing.T) {
101102
}
102103
defer server.TearDownFn()
103104
config := server.ClientConfig
104-
ctx, cancel := context.WithCancel(context.Background())
105-
defer cancel()
106105

107106
for _, tc := range tests {
108107
t.Run(tc.name, func(t *testing.T) {
109-
cletest := setupCLE(config, ctx, cancel, t)
108+
ctx, cancel := context.WithCancel(context.Background())
109+
defer cancel()
110+
111+
cletest := setupCLE(config, ctx, t)
110112
defer cletest.cleanup()
111113
go cletest.createAndRunFakeController("foo1", "default", "foo", "1.20.0", "1.20.0", tc.preferredStrategy)
112114
cletest.pollForLease(ctx, "foo", "default", tc.expectedHolderIdentity)
@@ -139,12 +141,12 @@ func TestMultipleLeaseCandidate(t *testing.T) {
139141
defer server.TearDownFn()
140142
config := server.ClientConfig
141143

142-
ctx, cancel := context.WithCancel(context.Background())
143-
defer cancel()
144144
for _, tc := range tests {
145145
t.Run(tc.name, func(t *testing.T) {
146+
ctx, cancel := context.WithCancel(context.Background())
147+
defer cancel()
146148

147-
cletest := setupCLE(config, ctx, cancel, t)
149+
cletest := setupCLE(config, ctx, t)
148150
defer cletest.cleanup()
149151
go cletest.createAndRunFakeController("baz1", "default", "baz", "1.20.0", "1.20.0", tc.preferredStrategy)
150152
go cletest.createAndRunFakeController("baz2", "default", "baz", "1.20.0", "1.19.0", tc.preferredStrategy)
@@ -182,12 +184,13 @@ func TestMultipleLeaseCandidateUsingThirdPartyStrategy(t *testing.T) {
182184
}
183185
defer server.TearDownFn()
184186
config := server.ClientConfig
185-
ctx, cancel := context.WithCancel(context.Background())
186-
defer cancel()
187187

188188
for _, tc := range tests {
189189
t.Run(tc.name, func(t *testing.T) {
190-
cletest := setupCLE(config, ctx, cancel, t)
190+
ctx, cancel := context.WithCancel(context.Background())
191+
defer cancel()
192+
193+
cletest := setupCLE(config, ctx, t)
191194
defer cletest.cleanup()
192195
go cletest.createAndRunFakeController("baz1", "default", "baz", "1.20.0", "1.20.0", tc.preferredStrategy)
193196
go cletest.createAndRunFakeController("baz2", "default", "baz", "1.20.0", "1.19.0", tc.preferredStrategy)
@@ -211,7 +214,8 @@ func TestLeaseSwapIfBetterAvailable(t *testing.T) {
211214
config := server.ClientConfig
212215

213216
ctx, cancel := context.WithCancel(context.Background())
214-
cletest := setupCLE(config, ctx, cancel, t)
217+
defer cancel()
218+
cletest := setupCLE(config, ctx, t)
215219
defer cletest.cleanup()
216220

217221
go cletest.createAndRunFakeController("bar1", "default", "bar", "1.20.0", "1.20.0", v1.OldestEmulationVersion)
@@ -234,7 +238,7 @@ func TestUpgradeSkew(t *testing.T) {
234238

235239
ctx, cancel := context.WithCancel(context.Background())
236240
defer cancel()
237-
cletest := setupCLE(config, ctx, cancel, t)
241+
cletest := setupCLE(config, ctx, t)
238242
defer cletest.cleanup()
239243

240244
go cletest.createAndRunFakeLegacyController("foo1-130", "default", "foobar")
@@ -307,11 +311,12 @@ type cleTest struct {
307311
clientset *kubernetes.Clientset
308312
t *testing.T
309313
mu sync.Mutex
314+
ctx context.Context
310315
ctxList map[string]ctxCancelPair
311316
}
312317

313318
func (t *cleTest) createAndRunFakeLegacyController(name string, namespace string, targetLease string) {
314-
ctx, cancel := context.WithCancel(context.Background())
319+
ctx, cancel := context.WithCancel(t.ctx)
315320
t.mu.Lock()
316321
defer t.mu.Unlock()
317322
t.ctxList[name+"/"+namespace] = ctxCancelPair{ctx, cancel}
@@ -345,7 +350,7 @@ func (t *cleTest) createAndRunFakeController(name string, namespace string, targ
345350
t.t.Error(err)
346351
}
347352

348-
ctx, cancel := context.WithCancel(context.Background())
353+
ctx, cancel := context.WithCancel(t.ctx)
349354
t.mu.Lock()
350355
t.ctxList[name+"/"+namespace] = ctxCancelPair{ctx, cancel}
351356
t.mu.Unlock()
@@ -415,7 +420,7 @@ func (t *cleTest) pollForLease(ctx context.Context, name, namespace string, hold
415420
return lease.Spec.HolderIdentity != nil && *lease.Spec.HolderIdentity == *holder, nil
416421
})
417422
if err != nil {
418-
t.t.Fatalf("timeout awiting for Lease %s %s err: %v", name, namespace, err)
423+
t.t.Fatalf("timeout waiting for Lease %s %s err: %v", name, namespace, err)
419424
}
420425
}
421426

@@ -427,28 +432,23 @@ func (t *cleTest) cancelController(name, namespace string) {
427432
}
428433

429434
func (t *cleTest) cleanup() {
430-
t.mu.Lock()
431-
defer t.mu.Unlock()
432-
for _, c := range t.ctxList {
433-
c.cancel()
434-
}
435435
err := t.clientset.CoordinationV1().Leases("kube-system").Delete(context.TODO(), "leader-election-controller", metav1.DeleteOptions{})
436436
if err != nil && !apierrors.IsNotFound(err) {
437437
t.t.Error(err)
438438
}
439439
}
440440

441-
func setupCLE(config *rest.Config, ctx context.Context, cancel func(), t *testing.T) *cleTest {
441+
func setupCLE(config *rest.Config, ctx context.Context, t *testing.T) *cleTest {
442442
clientset, err := kubernetes.NewForConfig(config)
443443
if err != nil {
444444
t.Fatal(err)
445445
}
446446

447-
a := ctxCancelPair{ctx, cancel}
448447
return &cleTest{
449448
config: config,
450449
clientset: clientset,
451-
ctxList: map[string]ctxCancelPair{"main": a},
450+
ctx: ctx,
451+
ctxList: map[string]ctxCancelPair{},
452452
t: t,
453453
}
454454
}

0 commit comments

Comments
 (0)