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

Function TestEOF

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

Source from the content-addressed store, hash-verified

71}
72
73func TestEOF(t *testing.T) {
74 transport := newFakeTransport()
75
76 reader := NewReader("1", 1024, transport)
77 writer := NewWriter("1", 1024, transport)
78
79 go func() {
80 for dataPk := range transport.dataChan {
81 reader.RecvData(dataPk)
82 }
83 }()
84
85 go func() {
86 for ackPk := range transport.ackChan {
87 writer.RecvAck(ackPk)
88 }
89 }()
90
91 testData := []byte("Test data")
92 writer.Write(testData)
93 writer.Close()
94
95 buf := make([]byte, 1024)
96 n, err := reader.Read(buf)
97 if err != nil {
98 t.Fatalf("First read failed: %v", err)
99 }
100 if !bytes.Equal(buf[:n], testData) {
101 t.Fatalf("Read data doesn't match")
102 }
103
104 _, err = reader.Read(buf)
105 if err != io.EOF {
106 t.Fatalf("Expected EOF, got %v", err)
107 }
108}
109
110func TestFlowControl(t *testing.T) {
111 smallWindow := int64(10)

Callers

nothing calls this directly

Calls 8

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

Tested by

no test coverage detected