diff options
| author | Paul Buetow <paul@buetow.org> | 2026-03-06 16:01:46 +0200 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2026-03-06 16:01:46 +0200 |
| commit | fcee8baac995b25ffb9ab06567f010df105c3db1 (patch) | |
| tree | caeba14673afcdc66698d63ccfee8d1b535a41ed /internal/ior_mode_test.go | |
| parent | aca5e2205b4dd18a13706c725daa0f326e10000b (diff) | |
refactor: thread runtime flags through ior and tui (task 385)
Diffstat (limited to 'internal/ior_mode_test.go')
| -rw-r--r-- | internal/ior_mode_test.go | 77 |
1 files changed, 54 insertions, 23 deletions
diff --git a/internal/ior_mode_test.go b/internal/ior_mode_test.go index 9ea8b61..617e567 100644 --- a/internal/ior_mode_test.go +++ b/internal/ior_mode_test.go @@ -78,19 +78,19 @@ func TestDispatchRunUsesTraceModeWhenRequested(t *testing.T) { traceCalled := false tuiCalled := false - runTraceFn = func() error { + runTraceFn = func(flags.Flags) error { traceCalled = true return nil } - runTUIFn = func(tui.TraceStarter) error { + runTUIFn = func(flags.Flags, tui.TraceStarter) error { tuiCalled = true return nil } - runTUITestFlamesFn = func(tui.TraceStarter) error { + runTUITestFlamesFn = func(flags.Flags, tui.TraceStarter) error { t.Fatalf("runTUITestFlamesFn should not be called in trace mode") return nil } - runTUITestLiveFlamesFn = func(tui.TraceStarter) error { + runTUITestLiveFlamesFn = func(flags.Flags, tui.TraceStarter) error { t.Fatalf("runTUITestLiveFlamesFn should not be called in trace mode") return nil } @@ -121,19 +121,19 @@ func TestDispatchRunUsesTUIWhenOnlyPprofEnabled(t *testing.T) { traceCalled := false tuiCalled := false - runTraceFn = func() error { + runTraceFn = func(flags.Flags) error { traceCalled = true return nil } - runTUIFn = func(tui.TraceStarter) error { + runTUIFn = func(flags.Flags, tui.TraceStarter) error { tuiCalled = true return nil } - runTUITestFlamesFn = func(tui.TraceStarter) error { + runTUITestFlamesFn = func(flags.Flags, tui.TraceStarter) error { t.Fatalf("runTUITestFlamesFn should not be called for regular TUI mode") return nil } - runTUITestLiveFlamesFn = func(tui.TraceStarter) error { + runTUITestLiveFlamesFn = func(flags.Flags, tui.TraceStarter) error { t.Fatalf("runTUITestLiveFlamesFn should not be called for regular TUI mode") return nil } @@ -163,7 +163,7 @@ func TestDispatchRunUsesTUIStarterWhenNotPlain(t *testing.T) { }() traceDone := make(chan struct{}, 1) - runTraceWithContextFn = func(_ context.Context, started chan<- struct{}, configure func(*eventLoop)) error { + runTraceWithContextFn = func(_ context.Context, _ flags.Flags, started chan<- struct{}, configure func(*eventLoop)) error { if configure != nil { configure(&eventLoop{}) } @@ -173,7 +173,7 @@ func TestDispatchRunUsesTUIStarterWhenNotPlain(t *testing.T) { } tuiCalled := false - runTUIFn = func(starter tui.TraceStarter) error { + runTUIFn = func(_ flags.Flags, starter tui.TraceStarter) error { tuiCalled = true if starter == nil { t.Fatalf("expected non-nil starter") @@ -183,11 +183,11 @@ func TestDispatchRunUsesTUIStarterWhenNotPlain(t *testing.T) { } return nil } - runTUITestFlamesFn = func(tui.TraceStarter) error { + runTUITestFlamesFn = func(flags.Flags, tui.TraceStarter) error { t.Fatalf("runTUITestFlamesFn should not be called for normal starter path") return nil } - runTUITestLiveFlamesFn = func(tui.TraceStarter) error { + runTUITestLiveFlamesFn = func(flags.Flags, tui.TraceStarter) error { t.Fatalf("runTUITestLiveFlamesFn should not be called for normal starter path") return nil } @@ -222,22 +222,22 @@ func TestDispatchRunUsesTestFlamesModeWhenRequested(t *testing.T) { traceCalled := false regularTUICalled := false testFlamesCalled := false - runTraceFn = func() error { + runTraceFn = func(flags.Flags) error { traceCalled = true return nil } - runTUIFn = func(tui.TraceStarter) error { + runTUIFn = func(flags.Flags, tui.TraceStarter) error { regularTUICalled = true return nil } - runTUITestFlamesFn = func(starter tui.TraceStarter) error { + runTUITestFlamesFn = func(_ flags.Flags, starter tui.TraceStarter) error { testFlamesCalled = true if starter == nil { t.Fatalf("expected non-nil starter for test flames mode") } return starter(context.Background()) } - runTUITestLiveFlamesFn = func(tui.TraceStarter) error { + runTUITestLiveFlamesFn = func(flags.Flags, tui.TraceStarter) error { t.Fatalf("runTUITestLiveFlamesFn should not be called for --testflames") return nil } @@ -272,19 +272,19 @@ func TestDispatchRunUsesTestLiveFlamesModeWhenRequested(t *testing.T) { traceCalled := false regularTUICalled := false testLiveFlamesCalled := false - runTraceFn = func() error { + runTraceFn = func(flags.Flags) error { traceCalled = true return nil } - runTUIFn = func(tui.TraceStarter) error { + runTUIFn = func(flags.Flags, tui.TraceStarter) error { regularTUICalled = true return nil } - runTUITestFlamesFn = func(tui.TraceStarter) error { + runTUITestFlamesFn = func(flags.Flags, tui.TraceStarter) error { t.Fatalf("runTUITestFlamesFn should not be called for --testliveflames") return nil } - runTUITestLiveFlamesFn = func(starter tui.TraceStarter) error { + runTUITestLiveFlamesFn = func(_ flags.Flags, starter tui.TraceStarter) error { testLiveFlamesCalled = true if starter == nil { t.Fatalf("expected non-nil starter for test live flames mode") @@ -409,7 +409,7 @@ func TestRunTraceWithContextRequiresRoot(t *testing.T) { defer func() { getEUID = origGetEUID }() getEUID = func() int { return 1000 } - err := runTraceWithContext(context.Background(), nil, nil) + err := runTraceWithContext(context.Background(), flags.NewFlags(), nil, nil) if !errors.Is(err, errRootPrivilegesRequired) { t.Fatalf("expected root-required error, got %v", err) } @@ -417,7 +417,10 @@ func TestRunTraceWithContextRequiresRoot(t *testing.T) { func TestTuiTraceStarterFromRunTracePropagatesError(t *testing.T) { starter := tuiTraceStarterFromRunTrace( - func(context.Context, chan<- struct{}, func(*eventLoop)) error { return errors.New("startup failed") }, + flags.NewFlags(), + func(context.Context, flags.Flags, chan<- struct{}, func(*eventLoop)) error { + return errors.New("startup failed") + }, ) err := starter(context.Background()) @@ -426,6 +429,33 @@ func TestTuiTraceStarterFromRunTracePropagatesError(t *testing.T) { } } +func TestTuiTraceStarterFromRunTraceUsesContextFilters(t *testing.T) { + base := flags.NewFlags() + base.PidFilter = 11 + base.TidFilter = 12 + + var gotCfg flags.Flags + starter := tuiTraceStarterFromRunTrace( + base, + func(_ context.Context, cfg flags.Flags, started chan<- struct{}, _ func(*eventLoop)) error { + gotCfg = cfg + close(started) + return nil + }, + ) + + ctx := tui.ContextWithTraceFilters(context.Background(), 2222, 3333) + if err := starter(ctx); err != nil { + t.Fatalf("starter returned error: %v", err) + } + if gotCfg.PidFilter != 2222 { + t.Fatalf("expected pid filter from context, got %d", gotCfg.PidFilter) + } + if gotCfg.TidFilter != 3333 { + t.Fatalf("expected tid filter from context, got %d", gotCfg.TidFilter) + } +} + func TestProfilingFilesForMode(t *testing.T) { cpu, mem, execTrace, duration := profilingFilesForMode(false) if cpu != "ior.cpuprofile" || mem != "ior.memprofile" { @@ -446,7 +476,8 @@ func TestProfilingFilesForMode(t *testing.T) { func TestTuiTraceStarterFromRunTraceRespectsCancel(t *testing.T) { starter := tuiTraceStarterFromRunTrace( - func(ctx context.Context, _ chan<- struct{}, _ func(*eventLoop)) error { + flags.NewFlags(), + func(ctx context.Context, _ flags.Flags, _ chan<- struct{}, _ func(*eventLoop)) error { <-ctx.Done() return ctx.Err() }, |
