|
1 | 1 | package main |
2 | 2 |
|
3 | 3 | import ( |
| 4 | + "bytes" |
4 | 5 | "context" |
5 | 6 | "encoding/json" |
6 | | - "io" |
7 | 7 | "os" |
8 | 8 | "path/filepath" |
9 | 9 | "sync" |
@@ -104,15 +104,16 @@ func TestParallelJSON(t *testing.T) { |
104 | 104 | // the echo may not be up yet: wait for one stream through it first |
105 | 105 | eventually(t, "udp", "send", "127.0.0.1:27011") |
106 | 106 |
|
107 | | - out := captureStdout(t, func() { |
108 | | - require.NoError(t, run(context.Background(), "udp", "send", "127.0.0.1:27011", "-P", "3", "-o", "json", |
109 | | - "-k", "100", "-t", "300ms")) |
110 | | - }) |
| 107 | + cmd, out := newRootCmd(), &bytes.Buffer{} |
| 108 | + cmd.SetOut(out) |
| 109 | + cmd.SetArgs([]string{"udp", "send", "127.0.0.1:27011", "-P", "3", "-o", "json", "-k", "100", "-t", |
| 110 | + "300ms", "--log", "all:WARN"}) |
| 111 | + require.NoError(t, cmd.ExecuteContext(context.Background())) |
111 | 112 | var res struct { |
112 | 113 | Streams []map[string]any `json:"streams"` |
113 | 114 | Total map[string]any `json:"total"` |
114 | 115 | } |
115 | | - require.NoError(t, json.Unmarshal([]byte(out), &res), out) |
| 116 | + require.NoError(t, json.Unmarshal(out.Bytes(), &res), out.String()) |
116 | 117 | assert.Len(t, res.Streams, 3) |
117 | 118 | assert.Positive(t, res.Total["received"]) |
118 | 119 | assert.NotEmpty(t, res.Total["rtt_avg"]) |
@@ -141,18 +142,3 @@ func TestK8sAddress(t *testing.T) { |
141 | 142 | err = run(context.Background(), "turn", "send", "turn:127.0.0.1:3478", "k8s://ns/svc", "-t", "100ms") |
142 | 143 | assert.ErrorContains(t, err, "invalid Service address") |
143 | 144 | } |
144 | | - |
145 | | -// captureStdout returns what f prints on the standard output. |
146 | | -func captureStdout(t *testing.T, f func()) string { |
147 | | - t.Helper() |
148 | | - r, w, err := os.Pipe() |
149 | | - require.NoError(t, err) |
150 | | - stdout := os.Stdout |
151 | | - os.Stdout = w |
152 | | - f() |
153 | | - os.Stdout = stdout |
154 | | - require.NoError(t, w.Close()) |
155 | | - b, err := io.ReadAll(r) |
156 | | - require.NoError(t, err) |
157 | | - return string(b) |
158 | | -} |
0 commit comments