From 9e7b820cfacb50299720b9d391de907d6f3fbdec Mon Sep 17 00:00:00 2001 From: Paul Buetow Date: Mon, 23 Feb 2026 09:55:29 +0200 Subject: Fix integration trace expectations and fd/open event handling --- internal/eventloop_test.go | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) (limited to 'internal/eventloop_test.go') diff --git a/internal/eventloop_test.go b/internal/eventloop_test.go index 319e6c7..09d84ea 100644 --- a/internal/eventloop_test.go +++ b/internal/eventloop_test.go @@ -29,6 +29,7 @@ func TestEventloop(t *testing.T) { "OpenEventTest1": makeOpenEventTestData1(t), "OpenEventTest2": makeOpenEventTestData2(t), "OpenEventTest3": makeOpenEventTestData3(t), + "OpenEventFailureTest": makeOpenEventFailureTestData(t), // FdEvent tests "ReadEventTest": makeReadEventTestData(t), "WriteEventTest": makeWriteEventTestData(t), @@ -211,6 +212,36 @@ func makeOpenEventTestData3(t *testing.T) (td testData) { return td } +func makeOpenEventFailureTestData(t *testing.T) (td testData) { + enterEv, enterEvBytes := makeEnterOpenEvent(t, defaulTime, defaultPid, defaultTid) + td.rawTracepoints = append(td.rawTracepoints, enterEvBytes) + + exitEv, exitEvBytes := makeExitOpenEvent(t, defaulTime+100, defaultPid, defaultTid) + exitEv.Ret = -2 + exitEvBytes, _ = exitEv.Bytes() + td.rawTracepoints = append(td.rawTracepoints, exitEvBytes) + + td.validates = append(td.validates, func(t *testing.T, _ *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 ep.File == nil { + t.Fatalf("Expected file to be set for failed open") + } + if got, want := ep.FileName(), types.StringValue(enterEv.Filename[:]); got != want { + t.Errorf("Expected file name '%v' but got '%v'", want, got) + } + if got, want := ep.Comm, types.StringValue(enterEv.Comm[:]); got != want { + t.Errorf("Expected comm '%v' but got '%v'", want, got) + } + }) + + return td +} + func makeEnterOpenEvent(t *testing.T, time uint64, pid, tid uint32) (types.OpenEvent, []byte) { ev := types.OpenEvent{ EventType: types.ENTER_OPEN_EVENT, -- cgit v1.2.3