diff options
| author | Paul Buetow <paul@buetow.org> | 2026-03-08 22:03:01 +0200 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2026-03-08 22:03:01 +0200 |
| commit | 0d1492291a3e20665d8a3a6b16d2eb4e13938cee (patch) | |
| tree | ec09f7d660403478d23841cf541bdfa7f33aa70f /internal/tui/eventstream/render_test.go | |
| parent | d84902555621cc10b16a9641274b088e495f3714 (diff) | |
tui: restore global filter stack and anchored matches
Diffstat (limited to 'internal/tui/eventstream/render_test.go')
| -rw-r--r-- | internal/tui/eventstream/render_test.go | 19 |
1 files changed, 14 insertions, 5 deletions
diff --git a/internal/tui/eventstream/render_test.go b/internal/tui/eventstream/render_test.go index 6240c69..d5b2af5 100644 --- a/internal/tui/eventstream/render_test.go +++ b/internal/tui/eventstream/render_test.go @@ -10,7 +10,7 @@ import ( func TestRenderStatusAndFilterLines(t *testing.T) { events := []StreamEvent{{Syscall: "read", Comm: "nginx", PID: 1, TID: 2, DurationNs: 1200, GapNs: 300, Bytes: 64, FileName: "/tmp/a", RetVal: 64}} f := Filter{Syscall: &StringFilter{Pattern: "read"}, PID: &NumericFilter{Op: OpEq, Value: 1}} - out := RenderStreamTable(120, false, 100, 1, 100, 10000, f, events, -1, -1) + out := RenderStreamTable(120, false, 100, 1, 100, 10000, f, nil, events, -1, -1) for _, want := range []string{"LIVE", "total:100", "filtered:1", "buffer:100/10000", "Filter:", "syscall~read", "pid=1"} { if !strings.Contains(out, want) { @@ -21,7 +21,7 @@ func TestRenderStatusAndFilterLines(t *testing.T) { func TestRenderPausedAndErrorRow(t *testing.T) { events := []StreamEvent{{Syscall: "write", Comm: "worker", PID: 1, TID: 2, DurationNs: 1000000, GapNs: 5000, Bytes: 32, FileName: "/tmp/b", RetVal: -1, IsError: true}} - out := RenderStreamTable(120, true, 10, 1, 10, 10000, Filter{}, events, -1, -1) + out := RenderStreamTable(120, true, 10, 1, 10, 10000, Filter{}, nil, events, -1, -1) if !strings.Contains(out, "PAUSED") { t.Fatalf("expected PAUSED indicator\n%s", out) @@ -36,7 +36,7 @@ func TestRenderPausedAndErrorRow(t *testing.T) { func TestRenderShowsFDWhenPresent(t *testing.T) { events := []StreamEvent{{Syscall: "read", Comm: "worker", PID: 1, TID: 2, FD: 9, DurationNs: 10, GapNs: 1, Bytes: 8, FileName: "/tmp/b", RetVal: 8}} - out := RenderStreamTable(120, false, 1, 1, 1, 10000, Filter{}, events, -1, -1) + out := RenderStreamTable(120, false, 1, 1, 1, 10000, Filter{}, nil, events, -1, -1) if !strings.Contains(out, "FD") || !strings.Contains(out, " 9 ") { t.Fatalf("expected FD column/value in output\n%s", out) } @@ -54,7 +54,7 @@ func TestRenderHeaderAndTruncate(t *testing.T) { FileName: "/very/long/path/that/should/be/truncated/for/narrow/views/file.log", RetVal: 1, }} - out := RenderStreamTable(80, false, 1, 1, 1, 10000, Filter{}, events, -1, -1) + out := RenderStreamTable(80, false, 1, 1, 1, 10000, Filter{}, nil, events, -1, -1) for _, col := range []string{"Gap", "Latency", "Comm", "PID", "TID", "Syscall", "FD", "Ret", "Bytes", "File"} { if !strings.Contains(out, col) { @@ -112,7 +112,7 @@ func TestComputeColumnLayoutGivesFileMoreSpace(t *testing.T) { } func TestRenderStreamTableFitsRequestedWidth(t *testing.T) { - out := RenderStreamTable(80, false, 1, 1, 1, 10000, Filter{}, []StreamEvent{ + out := RenderStreamTable(80, false, 1, 1, 1, 10000, Filter{}, nil, []StreamEvent{ { Syscall: "read", Comm: "worker", @@ -133,6 +133,15 @@ func TestRenderStreamTableFitsRequestedWidth(t *testing.T) { } } +func TestRenderShowsFilterStackLine(t *testing.T) { + out := RenderStreamTable(100, true, 3, 1, 3, 10000, Filter{Comm: &StringFilter{Pattern: "system"}}, []string{"comm~system", "fd=20"}, []StreamEvent{{Comm: "systemd", Syscall: "write"}}, -1, -1) + for _, want := range []string{"Stack:", "comm~system", "fd=20"} { + if !strings.Contains(out, want) { + t.Fatalf("expected stack output missing %q\n%s", want, out) + } + } +} + func TestRenderFDTraceTableShowsHeaderAndScope(t *testing.T) { out := RenderFDTraceTable(100, 123, 7, 2, []StreamEvent{ {Syscall: "read", PID: 123, TID: 1, FD: 7, FileName: "/tmp/a"}, |
