test: Add t.Cleanup()
to fix TestEventHandler
#60203
Open
+4
−0
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Which issue(s) does the PR fix:
Fixes #57144
Problem
The
TestEventHandler
test is flaky due to a race condition that causes a"directory not empty"
error during cleanup.When the test completes, the Go testing framework's
os.RemoveAll
command on the temporary directory races against theApp
's shutdown process. The test fails if the directory removal attempt occurs before theApp
has fully closed its file handles.Solution
Inside the
startApp
function, I addapp.Close()
witht.Cleanup()
.The Go testing framework guarantees that cleanup functions are executed after a test completes but before temporary directories are removed. This change ensures that the app fully closes and releases all file handles before the directory is deleted, which eliminates the race condition.
Verification
The test now correctly and consistently passes on my local machine after running it 100 times using a loop to simulate the flaky behavior. In addition, after running 100 times, the
TestEventHandler
test took an average of 1.18 seconds to finish.