Start receiver first, wait till it is running, then send.
(t *testing.T)
| 219 | |
| 220 | // Start receiver first, wait till it is running, then send. |
| 221 | func TestExampleReceiveSend(t *testing.T) { |
| 222 | if testing.Short() { |
| 223 | t.Skip("Skip demo tests in short mode") |
| 224 | } |
| 225 | testBroker.start(t) |
| 226 | |
| 227 | // Start receiver, wait for "listening" message on stdout |
| 228 | recvCmd := exampleCommand(t, "receive", exampleArgs(fmt.Sprintf("-count=%d", expected))...) |
| 229 | pipe, err := recvCmd.StdoutPipe() |
| 230 | if err != nil { |
| 231 | t.Fatal(err) |
| 232 | } |
| 233 | recvCmd.Start() |
| 234 | out := bufio.NewReader(pipe) |
| 235 | line, err := out.ReadString('\n') |
| 236 | if err := checkEqual("Listening on 3 connections\n", line); err != nil { |
| 237 | t.Fatal(err) |
| 238 | } |
| 239 | |
| 240 | if err := runExampleWant(t, |
| 241 | fmt.Sprintf("Received all %d acknowledgements\n", expected), |
| 242 | "send", |
| 243 | exampleArgs("-count", fmt.Sprintf("%d", *count))...); err != nil { |
| 244 | t.Fatal(err) |
| 245 | } |
| 246 | |
| 247 | buf := bytes.Buffer{} |
| 248 | io.Copy(&buf, out) |
| 249 | if err := checkEqual(fmt.Sprintf("Received %d messages\n", expected), buf.String()); err != nil { |
| 250 | t.Fatal(err) |
| 251 | } |
| 252 | } |
| 253 | |
| 254 | var testBroker *broker |
| 255 |
nothing calls this directly
no test coverage detected