diff options
| author | Paul Buetow <paul@buetow.org> | 2026-02-21 20:42:08 +0200 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2026-02-21 20:42:08 +0200 |
| commit | 4e287fd01d5057d0345183b6845dcc58683a46e4 (patch) | |
| tree | 43364bd3b794ee558b36c3fe8bd823472be18ab0 /internal/eventloop_test.go | |
| parent | 1a121009a7d3927c688fe7dac82cac45b043965d (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.go | 6 |
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) |
