diff options
| author | Paul Buetow <paul@buetow.org> | 2026-05-27 08:29:07 +0300 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2026-05-27 08:29:07 +0300 |
| commit | f660ad10bccb529e7176b293ef4be05aeb612074 (patch) | |
| tree | 1d2387263c59828dde1c2c56cd5c72b3f9787214 /internal/tui/flamegraph/renderer_test.go | |
| parent | 3f7ddc5eb12db3b0677cc51653b1c26e1d1b84fd (diff) | |
flamegraph: table-drive metric cycles and semantic colors (9p)
Diffstat (limited to 'internal/tui/flamegraph/renderer_test.go')
| -rw-r--r-- | internal/tui/flamegraph/renderer_test.go | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/internal/tui/flamegraph/renderer_test.go b/internal/tui/flamegraph/renderer_test.go index 9b9ed88..8626c39 100644 --- a/internal/tui/flamegraph/renderer_test.go +++ b/internal/tui/flamegraph/renderer_test.go @@ -151,6 +151,40 @@ func TestTerminalFrameColorSemanticPalette(t *testing.T) { } } +func TestSemanticFrameColorRuleTableAndOrdering(t *testing.T) { + tests := []struct { + name string + label string + want color.RGBA + ok bool + }{ + {name: "empty", label: "", ok: false}, + {name: "read before path", label: "read/path", want: color.RGBA{R: 78, G: 132, B: 201, A: 255}, ok: true}, + {name: "sys fallback rust", label: "sys_custom", want: color.RGBA{R: 191, G: 99, B: 74, A: 255}, ok: true}, + {name: "path before pid", label: "pid/1234", want: color.RGBA{R: 88, G: 156, B: 84, A: 255}, ok: true}, + {name: "unmatched", label: "dimension", ok: false}, + } + + for _, tc := range tests { + t.Run(tc.name, func(t *testing.T) { + got, ok := semanticFrameColor(tc.label) + if ok != tc.ok { + t.Fatalf("expected ok=%v for %q, got %v", tc.ok, tc.label, ok) + } + if !tc.ok { + return + } + gotRGBA, castOK := got.(color.RGBA) + if !castOK { + t.Fatalf("expected semantic color type color.RGBA, got %T", got) + } + if gotRGBA != tc.want { + t.Fatalf("unexpected semantic color for %q: got=%v want=%v", tc.label, gotRGBA, tc.want) + } + }) + } +} + func TestRenderTerminalViewShowsNarrowMessage(t *testing.T) { out := RenderTerminalView(RenderContext{ Width: 50, |
