Skip to content

Commit 1472ea7

Browse files
Jai Raj ChoudharyJai Raj Choudhary
authored andcommitted
fix: simplify context lifecycle with defer cancel()
- Use defer cancel() for consistent context cleanup - Removes manual cancel() calls in error paths - Ensures context is always properly cleaned up - Addresses SonarQube reliability concerns
1 parent 356e959 commit 1472ea7

File tree

1 file changed

+1
-3
lines changed

1 file changed

+1
-3
lines changed

cmd/run.go

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -403,11 +403,11 @@ func (o *runOption) runSuite(loader testing.Loader, dataContext map[string]inter
403403
o.limiter.Accept()
404404

405405
ctxWithTimeout, cancel := context.WithTimeout(ctx, o.requestTimeout)
406+
defer cancel() // Ensure context is always cancelled when leaving this scope
406407
ctxWithTimeout = context.WithValue(ctxWithTimeout, runner.ContextKey("").ParentDir(), loader.GetContext())
407408

408409
output, err = suiteRunner.RunTestCase(&testCase, dataContext, ctxWithTimeout)
409410
if err = util.ErrorWrap(err, "failed to run '%s', %v", testCase.Name, err); err != nil {
410-
cancel() // Cancel context before handling error
411411
if o.requestIgnoreError {
412412
errs = append(errs, err)
413413
} else {
@@ -419,12 +419,10 @@ func (o *runOption) runSuite(loader testing.Loader, dataContext map[string]inter
419419
reverseRunner.WithTestReporter(runner.NewDiscardTestReporter())
420420
if _, err = reverseRunner.RunTestCase(
421421
&testCase, dataContext, ctxWithTimeout); err != nil {
422-
cancel() // Cancel context before returning error
423422
err = fmt.Errorf("got error in reverse test: %w", err)
424423
return
425424
}
426425
suiteRunner.WithTestReporter(o.reporter)
427-
cancel() // Cancel context after successful completion
428426
}
429427
dataContext[testCase.Name] = output
430428
}

0 commit comments

Comments
 (0)