diff options
| author | Paul Buetow <paul@buetow.org> | 2026-03-01 23:33:46 +0200 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2026-03-01 23:33:46 +0200 |
| commit | 3690b89082215ff5c1fc84110074cf08b1b8909c (patch) | |
| tree | e89f32688b64a467cb804e9df615a32cc6c2522c /internal/tui | |
| parent | 3a438f0381a21c0055db3cce3164ff0ef5970cc0 (diff) | |
Route non-fatal event-loop warnings to TUI
Diffstat (limited to 'internal/tui')
| -rw-r--r-- | internal/tui/eventstream/streamevent.go | 16 | ||||
| -rw-r--r-- | internal/tui/eventstream/streamevent_test.go | 26 |
2 files changed, 42 insertions, 0 deletions
diff --git a/internal/tui/eventstream/streamevent.go b/internal/tui/eventstream/streamevent.go index a5c3d14..dbe04dd 100644 --- a/internal/tui/eventstream/streamevent.go +++ b/internal/tui/eventstream/streamevent.go @@ -3,6 +3,7 @@ package eventstream import ( "ior/internal/event" "ior/internal/types" + "time" ) type StreamEvent struct { @@ -49,3 +50,18 @@ func NewStreamEvent(seq uint64, pair *event.Pair) StreamEvent { return e } + +// NewWarningEvent creates a synthetic stream row for non-fatal runtime warnings. +func NewWarningEvent(message string) StreamEvent { + now := uint64(time.Now().UnixNano()) + return StreamEvent{ + Seq: now, + TimeNs: now, + Syscall: "warning", + Comm: "ior", + FileName: message, + FD: UnknownFD, + RetVal: -1, + IsError: true, + } +} diff --git a/internal/tui/eventstream/streamevent_test.go b/internal/tui/eventstream/streamevent_test.go index 6be7407..6131fed 100644 --- a/internal/tui/eventstream/streamevent_test.go +++ b/internal/tui/eventstream/streamevent_test.go @@ -94,3 +94,29 @@ func TestNewStreamEventWithoutRetEvent(t *testing.T) { t.Fatalf("FD = %d, want %d", got.FD, UnknownFD) } } + +func TestNewWarningEventPopulatesFields(t *testing.T) { + got := NewWarningEvent("Dropped malformed event") + + if got.Syscall != "warning" { + t.Fatalf("Syscall = %q, want warning", got.Syscall) + } + if got.Comm != "ior" { + t.Fatalf("Comm = %q, want ior", got.Comm) + } + if got.FileName != "Dropped malformed event" { + t.Fatalf("FileName = %q, want warning text", got.FileName) + } + if got.FD != UnknownFD { + t.Fatalf("FD = %d, want %d", got.FD, UnknownFD) + } + if got.RetVal != -1 { + t.Fatalf("RetVal = %d, want -1", got.RetVal) + } + if !got.IsError { + t.Fatalf("IsError = false, want true") + } + if got.Seq == 0 || got.TimeNs == 0 { + t.Fatalf("Seq/TimeNs = %d/%d, want non-zero", got.Seq, got.TimeNs) + } +} |
