summaryrefslogtreecommitdiff
path: root/internal/tui
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2026-05-20 14:37:41 +0300
committerPaul Buetow <paul@buetow.org>2026-05-20 14:37:41 +0300
commit96355c79a38032ab4bd880b3b3ff4192ae709795 (patch)
tree7a395706e3db680f6e695c8602501741eed6ad45 /internal/tui
parentf063e626a28339735da583142e5af864a60c2111 (diff)
task 27: add KindSleep and requested sleep metric
Diffstat (limited to 'internal/tui')
-rw-r--r--internal/tui/eventstream/export.go3
-rw-r--r--internal/tui/eventstream/export_test.go33
2 files changed, 19 insertions, 17 deletions
diff --git a/internal/tui/eventstream/export.go b/internal/tui/eventstream/export.go
index 73bc1fa..8a28d85 100644
--- a/internal/tui/eventstream/export.go
+++ b/internal/tui/eventstream/export.go
@@ -182,7 +182,7 @@ func exportRowsToCSV(rows []StreamEvent, exportDir, filename string) (string, er
// writeStreamCSV writes the CSV header and all event rows to w, calling fail
// on the first write error to close the underlying file before returning.
func writeStreamCSV(w *csv.Writer, rows []StreamEvent, fail func(error) (string, error)) error {
- header := []string{"seq", "time_ns", "gap_ns", "latency_ns", "comm", "pid", "tid", "syscall", "fd", "ret", "bytes", "file", "error", "family"}
+ header := []string{"seq", "time_ns", "gap_ns", "latency_ns", "comm", "pid", "tid", "syscall", "fd", "ret", "bytes", "file", "error", "family", "requested_sleep_ns"}
if err := w.Write(header); err != nil {
_, err = fail(err)
return err
@@ -204,6 +204,7 @@ func writeStreamCSV(w *csv.Writer, rows []StreamEvent, fail func(error) (string,
ev.FileName,
fmt.Sprintf("%t", ev.IsError),
ev.Family,
+ fmt.Sprintf("%d", ev.RequestedSleepNs),
}
if err := w.Write(record); err != nil {
_, err = fail(err)
diff --git a/internal/tui/eventstream/export_test.go b/internal/tui/eventstream/export_test.go
index 6cea2b1..68fae70 100644
--- a/internal/tui/eventstream/export_test.go
+++ b/internal/tui/eventstream/export_test.go
@@ -201,20 +201,21 @@ func TestExportRowsToCSVPathTraversal(t *testing.T) {
func TestWriteStreamCSVAppendsFamilyColumn(t *testing.T) {
var buf bytes.Buffer
rows := []StreamEvent{{
- Seq: 7,
- TimeNs: 100,
- GapNs: 3,
- DurationNs: 5,
- Comm: "worker",
- PID: 10,
- TID: 11,
- Syscall: "socketpair",
- FD: 4,
- RetVal: 0,
- Bytes: 0,
- FileName: "/tmp/sock",
- IsError: false,
- Family: "Network",
+ Seq: 7,
+ TimeNs: 100,
+ GapNs: 3,
+ DurationNs: 5,
+ Comm: "worker",
+ PID: 10,
+ TID: 11,
+ Syscall: "socketpair",
+ FD: 4,
+ RetVal: 0,
+ Bytes: 0,
+ FileName: "/tmp/sock",
+ IsError: false,
+ Family: "Network",
+ RequestedSleepNs: 0,
}}
fail := func(err error) (string, error) { return "", err }
@@ -226,11 +227,11 @@ func TestWriteStreamCSVAppendsFamilyColumn(t *testing.T) {
if err != nil {
t.Fatalf("read CSV: %v", err)
}
- wantHeader := []string{"seq", "time_ns", "gap_ns", "latency_ns", "comm", "pid", "tid", "syscall", "fd", "ret", "bytes", "file", "error", "family"}
+ wantHeader := []string{"seq", "time_ns", "gap_ns", "latency_ns", "comm", "pid", "tid", "syscall", "fd", "ret", "bytes", "file", "error", "family", "requested_sleep_ns"}
if !reflect.DeepEqual(records[0], wantHeader) {
t.Fatalf("header = %#v, want %#v", records[0], wantHeader)
}
- if records[1][8] != "4" || records[1][12] != "false" || records[1][13] != "Network" {
+ if records[1][8] != "4" || records[1][12] != "false" || records[1][13] != "Network" || records[1][14] != "0" {
t.Fatalf("family should be appended without shifting legacy columns, got %#v", records[1])
}
}