summaryrefslogtreecommitdiff
path: root/internal/eventloop_test.go
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2026-02-21 20:42:08 +0200
committerPaul Buetow <paul@buetow.org>2026-02-21 20:42:08 +0200
commit4e287fd01d5057d0345183b6845dcc58683a46e4 (patch)
tree43364bd3b794ee558b36c3fe8bd823472be18ab0 /internal/eventloop_test.go
parent1a121009a7d3927c688fe7dac82cac45b043965d (diff)
fix: close_range path resolution - lookup fd before deleting from map
Move e.files[fd] lookup before the close_range fd cleanup loop in the FdEvent handler so the file path is resolved while the fd still exists in the map. Previously, close_range events always fell through to file.NewFdWithPid() which couldn't resolve the path since the fd was already closed. Also add unit test assertion verifying ep.File resolves to the correct filename for close_range events. Task: 349 Amp-Thread-ID: https://ampcode.com/threads/T-019c8180-1da4-7048-9200-ae93bdd90cab Co-authored-by: Amp <amp@ampcode.com>
Diffstat (limited to 'internal/eventloop_test.go')
-rw-r--r--internal/eventloop_test.go6
1 files changed, 6 insertions, 0 deletions
diff --git a/internal/eventloop_test.go b/internal/eventloop_test.go
index 7daa32b..60047fe 100644
--- a/internal/eventloop_test.go
+++ b/internal/eventloop_test.go
@@ -487,6 +487,12 @@ func makeCloseRangeEventTestData(t *testing.T) (td testData) {
if !exitCloseRange.Equals(ep.ExitEv) {
t.Errorf("Expected '%v' but got '%v'", exitCloseRange, ep.ExitEv)
}
+ // close_range's fd is the first fd in the range (fd2); its path must resolve
+ if ep.File == nil {
+ t.Errorf("Expected file to be set for close_range event")
+ } else if ep.File.Name() != filename2 {
+ t.Errorf("Expected file name '%v' but got '%v'", filename2, ep.File.Name())
+ }
verifyFileDescriptor(t, el, fd1, filename1)
verifyFdNotTracked(t, el, fd2)