diff options
| author | Paul Buetow <paul@buetow.org> | 2026-03-10 07:40:23 +0200 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2026-03-10 07:40:23 +0200 |
| commit | 590b3acdae8f4adb34d96889fad483fafa880e93 (patch) | |
| tree | 73a6a5e657ecc2db7bbf1eff74adac25c262caac /internal | |
| parent | 767abc2d2aaa21336df97db83dd4d9d050cd3df0 (diff) | |
globalfilter: share compare-op symbol helper (task 374)
Diffstat (limited to 'internal')
| -rw-r--r-- | internal/globalfilter/filter.go | 5 | ||||
| -rw-r--r-- | internal/globalfilter/filter_test.go | 20 | ||||
| -rw-r--r-- | internal/tui/tui.go | 21 |
3 files changed, 24 insertions, 22 deletions
diff --git a/internal/globalfilter/filter.go b/internal/globalfilter/filter.go index aaac35b..d19e2aa 100644 --- a/internal/globalfilter/filter.go +++ b/internal/globalfilter/filter.go @@ -202,7 +202,7 @@ func appendNumericSummary(parts []string, name string, nf *NumericFilter, durati if duration { value = time.Duration(nf.Value).String() } - return append(parts, fmt.Sprintf("%s%s%s", name, compareOpSymbol(nf.Op), value)) + return append(parts, fmt.Sprintf("%s%s%s", name, CompareOpSymbol(nf.Op), value)) } func matchString(sf *StringFilter, value string) bool { @@ -256,7 +256,8 @@ func matchNumeric(nf *NumericFilter, value int64) bool { } } -func compareOpSymbol(op CompareOp) string { +// CompareOpSymbol returns the summary/render symbol for a numeric comparison operator. +func CompareOpSymbol(op CompareOp) string { switch op { case OpEq: return "=" diff --git a/internal/globalfilter/filter_test.go b/internal/globalfilter/filter_test.go index d081f7d..7d36c88 100644 --- a/internal/globalfilter/filter_test.go +++ b/internal/globalfilter/filter_test.go @@ -168,6 +168,26 @@ func TestFilterSummaryAndDurationParsing(t *testing.T) { } } +func TestCompareOpSymbol(t *testing.T) { + for _, tc := range []struct { + name string + op CompareOp + want string + }{ + {name: "eq", op: OpEq, want: "="}, + {name: "neq", op: OpNeq, want: "!="}, + {name: "gt", op: OpGt, want: ">"}, + {name: "gte", op: OpGte, want: ">="}, + {name: "lt", op: OpLt, want: "<"}, + {name: "lte", op: OpLte, want: "<="}, + {name: "unknown", op: CompareOp(99), want: "?"}, + } { + if got := CompareOpSymbol(tc.op); got != tc.want { + t.Fatalf("%s: CompareOpSymbol(%v) = %q, want %q", tc.name, tc.op, got, tc.want) + } + } +} + func TestFilterEqual(t *testing.T) { base := Filter{ Syscall: &StringFilter{Pattern: "read"}, diff --git a/internal/tui/tui.go b/internal/tui/tui.go index 22dbf37..4265cbb 100644 --- a/internal/tui/tui.go +++ b/internal/tui/tui.go @@ -989,7 +989,7 @@ func appendNumericFilterChange(parts []string, name string, prev, next *globalfi if duration { value = time.Duration(next.Value).String() } - return append(parts, fmt.Sprintf("%s%s%s", name, compareOpSymbol(next.Op), value)) + return append(parts, fmt.Sprintf("%s%s%s", name, globalfilter.CompareOpSymbol(next.Op), value)) } func sameStringFilter(a, b *globalfilter.StringFilter) bool { @@ -1009,25 +1009,6 @@ func sameNumericFilter(a, b *globalfilter.NumericFilter) bool { return a.Op == b.Op && a.Value == b.Value } -func compareOpSymbol(op globalfilter.CompareOp) string { - switch op { - case globalfilter.OpEq: - return "=" - case globalfilter.OpNeq: - return "!=" - case globalfilter.OpGt: - return ">" - case globalfilter.OpGte: - return ">=" - case globalfilter.OpLt: - return "<" - case globalfilter.OpLte: - return "<=" - default: - return "=" - } -} - func (m *Model) stopTrace() { if m.traceStop != nil { m.traceStop() |
