MCPcopy
hub / github.com/wavetermdev/waveterm / TestBrokerMultipleWrites

Function TestBrokerMultipleWrites

pkg/streamclient/streambroker_test.go:225–258  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

223}
224
225func TestBrokerMultipleWrites(t *testing.T) {
226 broker1, broker2 := setupBrokerPair()
227
228 reader, meta := broker1.CreateStreamReader("reader1", "writer1", 1024)
229 writer, err := broker2.CreateStreamWriter(meta)
230 if err != nil {
231 t.Fatalf("CreateStreamWriter failed: %v", err)
232 }
233
234 messages := []string{"First", "Second", "Third"}
235 for _, msg := range messages {
236 _, err := writer.Write([]byte(msg))
237 if err != nil {
238 t.Fatalf("Write failed: %v", err)
239 }
240 }
241
242 expected := "FirstSecondThird"
243 buf := make([]byte, len(expected))
244 totalRead := 0
245 for totalRead < len(expected) {
246 n, err := reader.Read(buf[totalRead:])
247 if err != nil {
248 t.Fatalf("Read failed: %v", err)
249 }
250 totalRead += n
251 }
252
253 if string(buf) != expected {
254 t.Fatalf("Expected %q, got %q", expected, string(buf))
255 }
256
257 writer.Close()
258}
259
260func TestBrokerCleanup(t *testing.T) {
261 broker1, broker2 := setupBrokerPair()

Callers

nothing calls this directly

Calls 6

setupBrokerPairFunction · 0.85
CreateStreamReaderMethod · 0.80
CreateStreamWriterMethod · 0.80
WriteMethod · 0.65
CloseMethod · 0.65
ReadMethod · 0.45

Tested by

no test coverage detected