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

Function TestBasicReadWrite

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

Source from the content-addressed store, hash-verified

31}
32
33func TestBasicReadWrite(t *testing.T) {
34 transport := newFakeTransport()
35
36 reader := NewReader("1", 1024, transport)
37 writer := NewWriter("1", 1024, transport)
38
39 go func() {
40 for dataPk := range transport.dataChan {
41 reader.RecvData(dataPk)
42 }
43 }()
44
45 go func() {
46 for ackPk := range transport.ackChan {
47 writer.RecvAck(ackPk)
48 }
49 }()
50
51 testData := []byte("Hello, World!")
52 n, err := writer.Write(testData)
53 if err != nil {
54 t.Fatalf("Write failed: %v", err)
55 }
56 if n != len(testData) {
57 t.Fatalf("Write returned %d, expected %d", n, len(testData))
58 }
59
60 buf := make([]byte, 1024)
61 n, err = reader.Read(buf)
62 if err != nil {
63 t.Fatalf("Read failed: %v", err)
64 }
65 if n != len(testData) {
66 t.Fatalf("Read returned %d, expected %d", n, len(testData))
67 }
68 if !bytes.Equal(buf[:n], testData) {
69 t.Fatalf("Read data %q doesn't match written data %q", buf[:n], testData)
70 }
71}
72
73func TestEOF(t *testing.T) {
74 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