diff options
| author | Paul Buetow <paul@buetow.org> | 2026-02-21 14:31:29 +0200 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2026-02-21 14:31:29 +0200 |
| commit | e949b616ce4511801ff70a4644c29ef920727419 (patch) | |
| tree | 6a968337feb5a11a2e0995e0080037b3bdbec409 /internal/eventloop_test.go | |
| parent | b5792f8e23d1599dcce49bc83e5d128abee484f3 (diff) | |
Add byte count tracking to event pairs
Amp-Thread-ID: https://ampcode.com/threads/T-019c8012-eaeb-768d-a264-5a704f3939ef
Co-authored-by: Amp <amp@ampcode.com>
Diffstat (limited to 'internal/eventloop_test.go')
| -rw-r--r-- | internal/eventloop_test.go | 94 |
1 files changed, 72 insertions, 22 deletions
diff --git a/internal/eventloop_test.go b/internal/eventloop_test.go index 3b9cb9a..7daa32b 100644 --- a/internal/eventloop_test.go +++ b/internal/eventloop_test.go @@ -30,13 +30,13 @@ func TestEventloop(t *testing.T) { "OpenEventTest2": makeOpenEventTestData2(t), "OpenEventTest3": makeOpenEventTestData3(t), // FdEvent tests - "ReadEventTest": makeReadEventTestData(t), - "WriteEventTest": makeWriteEventTestData(t), - "CloseEventTest": makeCloseEventTestData(t), - "CloseRangeEventTest": makeCloseRangeEventTestData(t), + "ReadEventTest": makeReadEventTestData(t), + "WriteEventTest": makeWriteEventTestData(t), + "CloseEventTest": makeCloseEventTestData(t), + "CloseRangeEventTest": makeCloseRangeEventTestData(t), "CloseRangeFailureTest": makeCloseRangeFailureTestData(t), - "FsyncEventTest": makeFsyncEventTestData(t), - "FtruncateEventTest": makeFtruncateEventTestData(t), + "FsyncEventTest": makeFsyncEventTestData(t), + "FtruncateEventTest": makeFtruncateEventTestData(t), // PathEvent tests "MkdirEventTest": makeMkdirEventTestData(t), "UnlinkEventTest": makeUnlinkEventTestData(t), @@ -48,22 +48,22 @@ func TestEventloop(t *testing.T) { "LinkEventTest": makeLinkEventTestData(t), "SymlinkEventTest": makeSymlinkEventTestData(t), // NullEvent tests - "SyncEventTest": makeSyncEventTestData(t), - "IoUringSetupEventTest": makeIoUringSetupEventTestData(t), - "IoUringSetupFailureTest": makeIoUringSetupFailureTestData(t), - "IoUringEnterEventTest": makeIoUringEnterEventTestData(t), + "SyncEventTest": makeSyncEventTestData(t), + "IoUringSetupEventTest": makeIoUringSetupEventTestData(t), + "IoUringSetupFailureTest": makeIoUringSetupFailureTestData(t), + "IoUringEnterEventTest": makeIoUringEnterEventTestData(t), "IoUringRegisterEventTest": makeIoUringRegisterEventTestData(t), // Dup3Event tests "Dup3EventTest": makeDup3EventTestData(t), "Dup3WithCloexecTest": makeDup3WithCloexecTestData(t), "Dup2Test": makeDup2TestData(t), // FcntlEvent tests - "FcntlSetFlagsTest": makeFcntlSetFlagsTestData(t), - "FcntlDupfdTest": makeFcntlDupfdTestData(t), - "FcntlDupfdCloexecTest": makeFcntlDupfdCloexecTestData(t), - "FcntlErrorTest": makeFcntlErrorTestData(t), - "FcntlInvalidFdTest": makeFcntlInvalidFdTestData(t), - "NameToHandleAtTest": makeNameToHandleAtTestData(t), + "FcntlSetFlagsTest": makeFcntlSetFlagsTestData(t), + "FcntlDupfdTest": makeFcntlDupfdTestData(t), + "FcntlDupfdCloexecTest": makeFcntlDupfdCloexecTestData(t), + "FcntlErrorTest": makeFcntlErrorTestData(t), + "FcntlInvalidFdTest": makeFcntlInvalidFdTestData(t), + "NameToHandleAtTest": makeNameToHandleAtTestData(t), "NameToHandleAtFailureTest": makeNameToHandleAtFailureTestData(t), // FD Lifecycle tests "FdLifecycleTest": makeFdLifecycleTestData(t), @@ -304,15 +304,40 @@ func makeReadEventTestData(t *testing.T) (td testData) { enterEv, enterEvBytes := makeEnterFdEvent(t, defaulTime, defaultPid, defaultTid, fd, types.SYS_ENTER_READ) td.rawTracepoints = append(td.rawTracepoints, enterEvBytes) - exitEv, exitEvBytes := makeExitFdEvent(t, defaulTime+100, defaultPid, defaultTid, fd, types.SYS_EXIT_READ) + retBytes := int64(128) + _, exitEvBytes := makeExitFdEvent(t, defaulTime+100, defaultPid, defaultTid, fd, types.SYS_EXIT_READ) + retEvent := types.RetEvent{ + EventType: types.EXIT_RET_EVENT, + TraceId: types.SYS_EXIT_READ, + Time: defaulTime + 100, + Ret: retBytes, + Pid: defaultPid, + Tid: defaultTid, + RetType: types.READ_CLASSIFIED, + } + retEventBytes, err := retEvent.Bytes() + if err != nil { + t.Fatal(err) + } + exitEvBytes = retEventBytes td.rawTracepoints = append(td.rawTracepoints, exitEvBytes) td.validates = append(td.validates, func(t *testing.T, el *eventLoop, ep *event.Pair) { if !enterEv.Equals(ep.EnterEv) { t.Errorf("Expected '%v' but got '%v'", enterEv, ep.EnterEv) } - if !exitEv.Equals(ep.ExitEv) { - t.Errorf("Expected '%v' but got '%v'", exitEv, ep.ExitEv) + if !retEvent.Equals(ep.ExitEv) { + t.Errorf("Expected '%v' but got '%v'", retEvent, ep.ExitEv) + } + retEv, ok := ep.ExitEv.(*types.RetEvent) + if !ok { + t.Fatalf("Expected exit event to be *types.RetEvent") + } + if retEv.Ret != retBytes { + t.Errorf("Expected ret bytes %d but got %d", retBytes, retEv.Ret) + } + if ep.Bytes != uint64(retBytes) { + t.Errorf("Expected bytes %d but got %d", retBytes, ep.Bytes) } }) @@ -324,15 +349,40 @@ func makeWriteEventTestData(t *testing.T) (td testData) { enterEv, enterEvBytes := makeEnterFdEvent(t, defaulTime, defaultPid, defaultTid, fd, types.SYS_ENTER_WRITE) td.rawTracepoints = append(td.rawTracepoints, enterEvBytes) - exitEv, exitEvBytes := makeExitFdEvent(t, defaulTime+100, defaultPid, defaultTid, fd, types.SYS_EXIT_WRITE) + retBytes := int64(256) + _, exitEvBytes := makeExitFdEvent(t, defaulTime+100, defaultPid, defaultTid, fd, types.SYS_EXIT_WRITE) + retEvent := types.RetEvent{ + EventType: types.EXIT_RET_EVENT, + TraceId: types.SYS_EXIT_WRITE, + Time: defaulTime + 100, + Ret: retBytes, + Pid: defaultPid, + Tid: defaultTid, + RetType: types.WRITE_CLASSIFIED, + } + retEventBytes, err := retEvent.Bytes() + if err != nil { + t.Fatal(err) + } + exitEvBytes = retEventBytes td.rawTracepoints = append(td.rawTracepoints, exitEvBytes) td.validates = append(td.validates, func(t *testing.T, el *eventLoop, ep *event.Pair) { if !enterEv.Equals(ep.EnterEv) { t.Errorf("Expected '%v' but got '%v'", enterEv, ep.EnterEv) } - if !exitEv.Equals(ep.ExitEv) { - t.Errorf("Expected '%v' but got '%v'", exitEv, ep.ExitEv) + if !retEvent.Equals(ep.ExitEv) { + t.Errorf("Expected '%v' but got '%v'", retEvent, ep.ExitEv) + } + retEv, ok := ep.ExitEv.(*types.RetEvent) + if !ok { + t.Fatalf("Expected exit event to be *types.RetEvent") + } + if retEv.Ret != retBytes { + t.Errorf("Expected ret bytes %d but got %d", retBytes, retEv.Ret) + } + if ep.Bytes != uint64(retBytes) { + t.Errorf("Expected bytes %d but got %d", retBytes, ep.Bytes) } }) |
