diff options
| author | Paul Buetow <paul@buetow.org> | 2026-05-20 07:23:45 +0300 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2026-05-20 07:23:45 +0300 |
| commit | df1225efe494cc81513cf98e93891376e45f9615 (patch) | |
| tree | 8fe131ba9ae5737022f26fcd60e662c1660329c6 /internal/eventloop_memory_test.go | |
| parent | 11a8642b7035ff558fb84d7761e93525c84e4908 (diff) | |
task 07: add KindMem and separate address-space byte accounting
Diffstat (limited to 'internal/eventloop_memory_test.go')
| -rw-r--r-- | internal/eventloop_memory_test.go | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/internal/eventloop_memory_test.go b/internal/eventloop_memory_test.go new file mode 100644 index 0000000..4ac9580 --- /dev/null +++ b/internal/eventloop_memory_test.go @@ -0,0 +1,46 @@ +package internal + +import ( + "testing" + + "ior/internal/event" + "ior/internal/globalfilter" + "ior/internal/types" +) + +func TestHandleMemExitAppliesPairFilter(t *testing.T) { + el := mustNewEventLoop(t, eventLoopConfig{ + filter: globalfilter.Filter{ + Syscall: &globalfilter.StringFilter{Pattern: "openat"}, + }, + }) + + enter := &types.MemEvent{ + EventType: types.ENTER_MEM_EVENT, + TraceId: types.SYS_ENTER_MUNMAP, + Time: 100, + Pid: 91, + Tid: 92, + Length: 4096, + } + exit := &types.RetEvent{ + EventType: types.EXIT_RET_EVENT, + TraceId: types.SYS_EXIT_MUNMAP, + Time: 200, + Pid: 91, + Tid: 92, + Ret: 0, + } + ep := &event.Pair{EnterEv: enter, ExitEv: exit} + + if ok := el.handleMemExit(ep, enter); ok { + t.Fatal("handleMemExit should reject pair due to filter mismatch") + } +} + +func TestInitRawHandlersRegistersMemoryEvents(t *testing.T) { + el := mustNewEventLoop(t, eventLoopConfig{}) + if _, ok := el.rawHandlers[types.ENTER_MEM_EVENT]; !ok { + t.Fatal("ENTER_MEM_EVENT handler is not registered") + } +} |
