diff options
| author | Paul Buetow <paul@buetow.org> | 2026-02-25 21:49:18 +0200 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2026-02-25 21:49:18 +0200 |
| commit | 82481653218903aa0aba51af98788afa2a3e30de (patch) | |
| tree | 7d450f4b5bde7490507131eb1449c6577b038912 /internal/probemanager | |
| parent | c35a54243b2333c4f873af4c23efc8dc9e15f043 (diff) | |
Test probe manager picks up newly added tracepoints
Diffstat (limited to 'internal/probemanager')
| -rw-r--r-- | internal/probemanager/manager_test.go | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/internal/probemanager/manager_test.go b/internal/probemanager/manager_test.go index 44dc259..f610ea3 100644 --- a/internal/probemanager/manager_test.go +++ b/internal/probemanager/manager_test.go @@ -151,3 +151,35 @@ func TestManagerAttachAllReturnsProgramError(t *testing.T) { t.Fatalf("expected state to capture attach error, got %+v", states) } } + +func TestManagerAttachAllPicksUpNewTracepointsOnLaterCall(t *testing.T) { + attacher := &fakeAttacher{ + programs: map[string]*fakeProgram{ + "handle_sys_enter_read": {}, + "handle_sys_exit_read": {}, + "handle_sys_enter_write": {}, + "handle_sys_exit_write": {}, + }, + errs: map[string]error{}, + } + mgr := NewManager(attacher) + + if err := mgr.AttachAll(nil, []string{"sys_enter_read", "sys_exit_read"}); err != nil { + t.Fatalf("AttachAll(read) returned error: %v", err) + } + states := mgr.States() + if len(states) != 1 || states[0].Syscall != "read" { + t.Fatalf("expected only read after first call, got %+v", states) + } + + if err := mgr.AttachAll(nil, []string{"sys_enter_read", "sys_exit_read", "sys_enter_write", "sys_exit_write"}); err != nil { + t.Fatalf("AttachAll(read+write) returned error: %v", err) + } + states = mgr.States() + if len(states) != 2 { + t.Fatalf("expected new syscall to appear after second call, got %+v", states) + } + if states[0].Syscall != "read" || states[1].Syscall != "write" { + t.Fatalf("unexpected syscall ordering/content: %+v", states) + } +} |
