diff options
| author | Paul Buetow <paul@buetow.org> | 2026-03-06 17:32:24 +0200 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2026-03-06 17:32:24 +0200 |
| commit | 1561987330cb898f5ff64383a9c78e7e6559f118 (patch) | |
| tree | 69a823e8f98dce572566c97e6879c11c9d591bda /internal/flags/flags_test.go | |
| parent | 96225fb6159212a8851043a08d781aba721b4e78 (diff) | |
| parent | 110a193e04b81abb8d8e159abd73f9f6ed1acd7e (diff) | |
Merge branch 'feat/bubbletea-v2-migration'
Diffstat (limited to 'internal/flags/flags_test.go')
| -rw-r--r-- | internal/flags/flags_test.go | 84 |
1 files changed, 33 insertions, 51 deletions
diff --git a/internal/flags/flags_test.go b/internal/flags/flags_test.go index 54c65b8..2469068 100644 --- a/internal/flags/flags_test.go +++ b/internal/flags/flags_test.go @@ -9,114 +9,96 @@ import ( "time" ) -func parseForTest(t *testing.T, args ...string) (Flags, error) { +func parseForTest(t *testing.T, args ...string) (Config, error) { t.Helper() oldCommandLine := flag.CommandLine oldArgs := os.Args - oldSingleton := singleton + oldCurrent := Get() oldParseErr := parseErr - oldPID := pidFilter.Load() - oldTID := tidFilter.Load() - oldTUIExport := tuiExportEnable.Load() fs := flag.NewFlagSet("ior-test", flag.ContinueOnError) fs.SetOutput(io.Discard) flag.CommandLine = fs os.Args = append([]string{"ior"}, args...) - singleton = Flags{TUIExportEnable: true} + setCurrent(NewFlags()) parseErr = nil - pidFilter.Store(-1) - tidFilter.Store(-1) - tuiExportEnable.Store(true) err := parse() - cfg := singleton + cfg := Get() t.Cleanup(func() { flag.CommandLine = oldCommandLine os.Args = oldArgs - singleton = oldSingleton + setCurrent(oldCurrent) parseErr = oldParseErr - pidFilter.Store(oldPID) - tidFilter.Store(oldTID) - tuiExportEnable.Store(oldTUIExport) }) return cfg, err } -func TestParseLiveFlagsAndInterval(t *testing.T) { - cfg, err := parseForTest(t, "-live", "-live-interval", "200ms", "-pid", "1234") +func TestParseLiveIntervalAndPID(t *testing.T) { + cfg, err := parseForTest(t, "-live-interval", "200ms", "-pid", "1234") if err != nil { t.Fatalf("parse returned error: %v", err) } - if !cfg.LiveFlamegraph { - t.Fatalf("expected -live to enable live mode") - } if cfg.LiveInterval != 200*time.Millisecond { t.Fatalf("live interval = %v, want %v", cfg.LiveInterval, 200*time.Millisecond) } if cfg.PidFilter != 1234 { t.Fatalf("pid filter = %d, want 1234", cfg.PidFilter) } - if got := int(pidFilter.Load()); got != 1234 { - t.Fatalf("global pid filter = %d, want 1234", got) - } - if cfg.OpenCommand != "" { - t.Fatalf("expected empty open command by default") + if got := Get().GetPidFilter(); got != 1234 { + t.Fatalf("Get().GetPidFilter() = %d, want 1234", got) } } -func TestParseLiveDefaults(t *testing.T) { - cfg, err := parseForTest(t) - if err != nil { - t.Fatalf("parse returned error: %v", err) +func TestNewFlagsDefaultsAndGetters(t *testing.T) { + cfg := NewFlags() + if cfg.GetPidFilter() != -1 { + t.Fatalf("GetPidFilter() = %d, want -1", cfg.GetPidFilter()) } - - if cfg.LiveFlamegraph { - t.Fatalf("expected live mode disabled by default") + if cfg.GetTidFilter() != -1 { + t.Fatalf("GetTidFilter() = %d, want -1", cfg.GetTidFilter()) } - if cfg.LiveInterval != 200*time.Millisecond { - t.Fatalf("default live interval = %v, want %v", cfg.LiveInterval, 200*time.Millisecond) + if !cfg.GetTUIExportEnable() { + t.Fatalf("GetTUIExportEnable() = false, want true") } - if cfg.OpenCommand != "" { - t.Fatalf("expected empty open command by default") + if cfg.CountField != "count" { + t.Fatalf("CountField = %q, want count", cfg.CountField) } } -func TestParseOpenFlags(t *testing.T) { - cfg, err := parseForTest(t, "-live", "-open", "chromium --new-window") +func TestParseLiveDefaults(t *testing.T) { + cfg, err := parseForTest(t) if err != nil { t.Fatalf("parse returned error: %v", err) } - if !cfg.LiveFlamegraph { - t.Fatalf("expected live mode enabled") - } - if cfg.OpenCommand != "chromium --new-window" { - t.Fatalf("open command = %q, want %q", cfg.OpenCommand, "chromium --new-window") + + if cfg.LiveInterval != 200*time.Millisecond { + t.Fatalf("default live interval = %v, want %v", cfg.LiveInterval, 200*time.Millisecond) } } -func TestParseFlamegraphJSONFlag(t *testing.T) { - cfg, err := parseForTest(t, "-flamegraphJson") +func TestParseTestFlamesFlag(t *testing.T) { + cfg, err := parseForTest(t, "--testflames") if err != nil { t.Fatalf("parse returned error: %v", err) } - if !cfg.FlamegraphJSON { - t.Fatalf("expected -flamegraphJson to enable JSON export") + if !cfg.TestFlames { + t.Fatalf("expected --testflames to enable static flamegraph test mode") } } -func TestParseIorWatchIntervalFlag(t *testing.T) { - cfg, err := parseForTest(t, "-iorWatchInterval", "2s") +func TestParseTestLiveFlamesFlag(t *testing.T) { + cfg, err := parseForTest(t, "--testliveflames") if err != nil { t.Fatalf("parse returned error: %v", err) } - if cfg.IorWatchInterval != 2*time.Second { - t.Fatalf("ior watch interval = %v, want %v", cfg.IorWatchInterval, 2*time.Second) + if !cfg.TestLiveFlames { + t.Fatalf("expected --testliveflames to enable synthetic live flamegraph test mode") } } @@ -126,7 +108,7 @@ func TestParseDefaultCollapsedFieldsOrder(t *testing.T) { t.Fatalf("parse returned error: %v", err) } - want := []string{"comm", "path", "tracepoint"} + want := []string{"comm", "tracepoint", "path"} if len(cfg.CollapsedFields) != len(want) { t.Fatalf("default collapsed fields len = %d, want %d", len(cfg.CollapsedFields), len(want)) } |
