summaryrefslogtreecommitdiff
path: root/internal/eventloop_test.go
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2025-04-15 17:29:07 +0300
committerPaul Buetow <paul@buetow.org>2025-04-15 17:29:07 +0300
commit24753df2d21112ea1ddc6498b521f7f42dd7c708 (patch)
tree1154f41153a96a55f4465489cc812afe5c96d2f8 /internal/eventloop_test.go
parent12759c56082abcc6b0eb70b5a5981e9ca61faa08 (diff)
more on testing
Diffstat (limited to 'internal/eventloop_test.go')
-rw-r--r--internal/eventloop_test.go74
1 files changed, 74 insertions, 0 deletions
diff --git a/internal/eventloop_test.go b/internal/eventloop_test.go
new file mode 100644
index 0000000..045e8f0
--- /dev/null
+++ b/internal/eventloop_test.go
@@ -0,0 +1,74 @@
+package internal
+
+import (
+ "context"
+ "ior/internal/event"
+ "ior/internal/types"
+ "syscall"
+ "testing"
+)
+
+// TODO: Finish this test
+func TestEventloop(t *testing.T) {
+ T = t
+
+ ctx, cancel := context.WithCancel(context.Background())
+ defer cancel()
+ inCh := make(chan []byte)
+ outCh := make(chan *event.Pair, 2)
+
+ go func() {
+ defer close(inCh)
+ sendOpenFileTracepoints(t, inCh)
+ }()
+
+ go func() {
+ for ev := range outCh {
+ t.Log("Received", ev)
+ }
+ }()
+
+ ev := newEventLoop()
+ ev.printCb = func(ev *event.Pair) {
+ t.Log("printCb", ev)
+ outCh <- ev
+ }
+ ev.run(ctx, inCh)
+}
+
+func sendOpenFileTracepoints(t *testing.T, ch chan<- []byte) {
+ enterOpenEvent := types.OpenEvent{
+ EventType: types.ENTER_OPEN_EVENT,
+ TraceId: types.SYS_ENTER_OPENAT,
+ Time: 123456789,
+ Pid: 10,
+ Tid: 10,
+ Flags: syscall.O_RDWR,
+ Filename: [types.MAX_FILENAME_LENGTH]byte{},
+ Comm: [types.MAX_PROGNAME_LENGTH]byte{},
+ }
+ copy(enterOpenEvent.Filename[:], "testfile.txt")
+ copy(enterOpenEvent.Comm[:], "testcomm")
+
+ bytes, err := enterOpenEvent.Bytes()
+ if err != nil {
+ t.Error(err)
+ }
+ t.Log("Sending", enterOpenEvent, bytes)
+ ch <- bytes
+
+ exitOpenEvent := types.RetEvent{
+ EventType: types.EXIT_OPEN_EVENT,
+ TraceId: types.SYS_EXIT_OPENAT,
+ Time: 123456789,
+ Ret: 42,
+ Pid: 10,
+ Tid: 10,
+ }
+ bytes, err = exitOpenEvent.Bytes()
+ if err != nil {
+ t.Error(err)
+ }
+ t.Log("Sending", exitOpenEvent, bytes)
+ ch <- bytes
+}