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

Function TestMultipleWrites

pkg/streamclient/stream_test.go:228–268  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

226}
227
228func TestMultipleWrites(t *testing.T) {
229 transport := newFakeTransport()
230
231 reader := NewReader("1", 1024, transport)
232 writer := NewWriter("1", 1024, transport)
233
234 go func() {
235 for dataPk := range transport.dataChan {
236 reader.RecvData(dataPk)
237 }
238 }()
239
240 go func() {
241 for ackPk := range transport.ackChan {
242 writer.RecvAck(ackPk)
243 }
244 }()
245
246 messages := []string{"First", "Second", "Third"}
247 for _, msg := range messages {
248 _, err := writer.Write([]byte(msg))
249 if err != nil {
250 t.Fatalf("Write failed: %v", err)
251 }
252 }
253
254 expected := "FirstSecondThird"
255 buf := make([]byte, len(expected))
256 totalRead := 0
257 for totalRead < len(expected) {
258 n, err := reader.Read(buf[totalRead:])
259 if err != nil {
260 t.Fatalf("Read failed: %v", err)
261 }
262 totalRead += n
263 }
264
265 if string(buf) != expected {
266 t.Fatalf("Expected %q, got %q", expected, string(buf))
267 }
268}
269
270func TestOutOfOrderPackets(t *testing.T) {
271 transport := newFakeTransport()

Callers

nothing calls this directly

Calls 7

RecvDataMethod · 0.95
RecvAckMethod · 0.95
WriteMethod · 0.95
ReadMethod · 0.95
newFakeTransportFunction · 0.85
NewReaderFunction · 0.85
NewWriterFunction · 0.85

Tested by

no test coverage detected