diff options
Diffstat (limited to 'internal/tui/eventstream/export_test.go')
| -rw-r--r-- | internal/tui/eventstream/export_test.go | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/internal/tui/eventstream/export_test.go b/internal/tui/eventstream/export_test.go index f398fce..6cea2b1 100644 --- a/internal/tui/eventstream/export_test.go +++ b/internal/tui/eventstream/export_test.go @@ -1,6 +1,8 @@ package eventstream import ( + "bytes" + "encoding/csv" "os" "path/filepath" "reflect" @@ -196,6 +198,43 @@ func TestExportRowsToCSVPathTraversal(t *testing.T) { _ = traversal // silence unused-variable warning } +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", + }} + fail := func(err error) (string, error) { return "", err } + + if err := writeStreamCSV(csv.NewWriter(&buf), rows, fail); err != nil { + t.Fatalf("writeStreamCSV() error = %v", err) + } + + records, err := csv.NewReader(bytes.NewReader(buf.Bytes())).ReadAll() + 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"} + 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" { + t.Fatalf("family should be appended without shifting legacy columns, got %#v", records[1]) + } +} + // TestShellSplitVariousCases covers the tokenizer with a table-driven approach. func TestShellSplitVariousCases(t *testing.T) { cases := []struct { |
