summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2026-03-10 07:40:23 +0200
committerPaul Buetow <paul@buetow.org>2026-03-10 07:40:23 +0200
commit590b3acdae8f4adb34d96889fad483fafa880e93 (patch)
tree73a6a5e657ecc2db7bbf1eff74adac25c262caac
parent767abc2d2aaa21336df97db83dd4d9d050cd3df0 (diff)
globalfilter: share compare-op symbol helper (task 374)
-rw-r--r--internal/globalfilter/filter.go5
-rw-r--r--internal/globalfilter/filter_test.go20
-rw-r--r--internal/tui/tui.go21
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()