summaryrefslogtreecommitdiff
path: root/internal/bench_pipeline_test.go
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2026-05-12 22:12:32 +0300
committerPaul Buetow <paul@buetow.org>2026-05-12 22:12:32 +0300
commit8a4cb57703845c1d8ffbc9318a4125818a72a545 (patch)
tree5bd9dbc8f77b99de7dced2e867c36ccbf653e533 /internal/bench_pipeline_test.go
parenta256cbf9f54ab89aeae0aa9408c1c2b25622fa9d (diff)
invert dependency: internal no longer imports internal/tui
Introduce internal/runtime as a neutral contract package that both the core engine (internal) and the TUI layer (internal/tui) depend on. - internal/runtime: defines TraceStarter, StreamSource, EventSink, LiveTrieSource, SnapshotSource, ProbeManager, RuntimePublisher, RuntimeState, TraceRuntimeBindings, and all context key/helper functions (RuntimeBindingsFromContext, RuntimePublisherFromContext, ContextWithRuntimeBindings, ContextWithTraceFilters, TraceFiltersFromContext). These were previously defined in internal/tui, forcing the core package to import the TUI layer. - internal/streamrow: add RingBuffer (moved from internal/tui/eventstream) so the core tracing engine can use the ring buffer without importing the TUI layer. - internal/tui/eventstream/ringbuffer.go: change to a thin re-export of streamrow.RingBuffer via a type alias, preserving the existing API for all callers within the TUI layer. - internal/tui/tui.go: replace locally-defined interface declarations (TraceStarter, SnapshotSource, ProbeManager, RuntimePublisher, RuntimeState, TraceRuntimeBindings) with type aliases from internal/runtime. Delegate all context helper functions to runtime. - internal/ior.go, internal/ior_bpfsetup.go: remove imports of internal/tui and internal/tui/eventstream; use internal/runtime and internal/streamrow instead. Add SetTUIRunners injection point so the concrete TUI runner functions are wired in by cmd/ior/main.go. - cmd/ior/main.go: call internal.SetTUIRunners with the concrete TUI runner functions before internal.Run, completing the wiring without creating a cycle. - Test files (internal/ior_mode_test.go, internal/bench_pipeline_test.go): updated to use runtime.* and streamrow.* types in place of tui.* and eventstream.* types. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Diffstat (limited to 'internal/bench_pipeline_test.go')
-rw-r--r--internal/bench_pipeline_test.go8
1 files changed, 4 insertions, 4 deletions
diff --git a/internal/bench_pipeline_test.go b/internal/bench_pipeline_test.go
index b520c9c..7967e3a 100644
--- a/internal/bench_pipeline_test.go
+++ b/internal/bench_pipeline_test.go
@@ -11,7 +11,7 @@ import (
"ior/internal/flamegraph"
"ior/internal/parquet"
"ior/internal/statsengine"
- "ior/internal/tui/eventstream"
+ "ior/internal/streamrow"
)
const (
@@ -198,8 +198,8 @@ func benchmarkPipelineTUIParquet(b *testing.B, mix benchutil.EventMix, events, n
preseedBenchComms(el, numThreads)
engine := statsengine.NewEngine(64)
- streamBuf := eventstream.NewRingBuffer()
- streamSeq := eventstream.NewSequencer(0)
+ streamBuf := streamrow.NewRingBuffer()
+ streamSeq := streamrow.NewSequencer(0)
liveTrie := flamegraph.NewLiveTrie([]string{"comm", "tracepoint", "path"}, "count")
recorder := parquet.NewRecorder(parquet.RecorderConfig{})
@@ -212,7 +212,7 @@ func benchmarkPipelineTUIParquet(b *testing.B, mix benchutil.EventMix, events, n
var recordErr error
el.printCb = func(ep *event.Pair) {
- row := eventstream.NewStreamEvent(streamSeq.Next(), ep)
+ row := streamrow.New(streamSeq.Next(), ep)
engine.Ingest(ep)
streamBuf.Push(row)
if recordErr == nil {