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

Function TestBrokerBasicReadWrite

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

Source from the content-addressed store, hash-verified

65}
66
67func TestBrokerBasicReadWrite(t *testing.T) {
68 broker1, broker2 := setupBrokerPair()
69
70 reader, meta := broker1.CreateStreamReader("reader1", "writer1", 1024)
71 writer, err := broker2.CreateStreamWriter(meta)
72 if err != nil {
73 t.Fatalf("CreateStreamWriter failed: %v", err)
74 }
75
76 testData := []byte("Hello, World!")
77 n, err := writer.Write(testData)
78 if err != nil {
79 t.Fatalf("Write failed: %v", err)
80 }
81 if n != len(testData) {
82 t.Fatalf("Write returned %d, expected %d", n, len(testData))
83 }
84
85 buf := make([]byte, 1024)
86 n, err = reader.Read(buf)
87 if err != nil {
88 t.Fatalf("Read failed: %v", err)
89 }
90 if n != len(testData) {
91 t.Fatalf("Read returned %d, expected %d", n, len(testData))
92 }
93 if !bytes.Equal(buf[:n], testData) {
94 t.Fatalf("Read data %q doesn't match written data %q", buf[:n], testData)
95 }
96
97 writer.Close()
98 _, err = reader.Read(buf)
99 if err != io.EOF {
100 t.Fatalf("Expected EOF, got %v", err)
101 }
102}
103
104func TestBrokerEOF(t *testing.T) {
105 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