diff options
| author | Paul Buetow <paul@buetow.org> | 2026-05-20 14:37:41 +0300 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2026-05-20 14:37:41 +0300 |
| commit | 96355c79a38032ab4bd880b3b3ff4192ae709795 (patch) | |
| tree | 7a395706e3db680f6e695c8602501741eed6ad45 /internal/tui | |
| parent | f063e626a28339735da583142e5af864a60c2111 (diff) | |
task 27: add KindSleep and requested sleep metric
Diffstat (limited to 'internal/tui')
| -rw-r--r-- | internal/tui/eventstream/export.go | 3 | ||||
| -rw-r--r-- | internal/tui/eventstream/export_test.go | 33 |
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]) } } |
