diff options
| -rw-r--r-- | format/sideband64k/chunk_writer_write_and_read_from_test.go | 12 | ||||
| -rw-r--r-- | format/sideband64k/decoder.go | 3 | ||||
| -rw-r--r-- | format/sideband64k/decoder_data_control_and_keepalive_test.go | 7 | ||||
| -rw-r--r-- | format/sideband64k/decoder_partial_read_test.go | 2 | ||||
| -rw-r--r-- | format/sideband64k/decoder_peek_test.go | 2 | ||||
| -rw-r--r-- | format/sideband64k/decoder_resync_after_over_max_data_test.go | 14 | ||||
| -rw-r--r-- | format/sideband64k/decoder_resync_after_over_wire_max_test.go | 1 | ||||
| -rw-r--r-- | format/sideband64k/encoder.go | 1 | ||||
| -rw-r--r-- | format/sideband64k/encoder_buffered_flush_behavior_test.go | 21 | ||||
| -rw-r--r-- | format/sideband64k/encoder_partial_write_test.go | 11 | ||||
| -rw-r--r-- | format/sideband64k/encoder_writes_frames_test.go | 27 | ||||
| -rw-r--r-- | format/sideband64k/helpers_test.go | 2 |
12 files changed, 82 insertions, 21 deletions
diff --git a/format/sideband64k/chunk_writer_write_and_read_from_test.go b/format/sideband64k/chunk_writer_write_and_read_from_test.go index 7d475015..8a736107 100644 --- a/format/sideband64k/chunk_writer_write_and_read_from_test.go +++ b/format/sideband64k/chunk_writer_write_and_read_from_test.go @@ -24,12 +24,16 @@ func TestChunkWriterWriteAndReadFrom(t *testing.T) { if err != nil { t.Fatalf("Write: %v", err) } + if n != 7 { t.Fatalf("Write n=%d, want 7", n) } - if err := enc.FlushIO(); err != nil { + + err = enc.FlushIO() + if err != nil { t.Fatalf("FlushIO: %v", err) } + if got, want := out.String(), "0008\x02abc0008\x02def0006\x02g"; got != want { t.Fatalf("got %q, want %q", got, want) } @@ -40,12 +44,16 @@ func TestChunkWriterWriteAndReadFrom(t *testing.T) { if err != nil { t.Fatalf("ReadFrom: %v", err) } + if rn != 4 { t.Fatalf("ReadFrom n=%d, want 4", rn) } - if err := enc.FlushIO(); err != nil { + + err = enc.FlushIO() + if err != nil { t.Fatalf("FlushIO: %v", err) } + if got, want := out.String(), "0008\x02wxy0006\x02z"; got != want { t.Fatalf("got %q, want %q", got, want) } diff --git a/format/sideband64k/decoder.go b/format/sideband64k/decoder.go index 8c2b48d5..b54e7d39 100644 --- a/format/sideband64k/decoder.go +++ b/format/sideband64k/decoder.go @@ -35,6 +35,7 @@ func NewDecoder(r io.Reader, opts ReadOptions) *Decoder { opts: opts, } d.dec.SetMaxData(pktline.LargePacketDataMax) + return d } @@ -44,6 +45,7 @@ func NewDecoder(r io.Reader, opts ReadOptions) *Decoder { func (d *Decoder) SetMaxData(n int) { if n <= 0 { d.maxData = DataMax + return } @@ -54,6 +56,7 @@ func (d *Decoder) SetMaxData(n int) { func (d *Decoder) ReadFrame() (Frame, error) { if d.peeked { d.peeked = false + return cloneFrame(d.peek), d.peekErr } diff --git a/format/sideband64k/decoder_data_control_and_keepalive_test.go b/format/sideband64k/decoder_data_control_and_keepalive_test.go index cabd405b..b79a45f7 100644 --- a/format/sideband64k/decoder_data_control_and_keepalive_test.go +++ b/format/sideband64k/decoder_data_control_and_keepalive_test.go @@ -17,6 +17,7 @@ func TestDecoderDataControlAndKeepalive(t *testing.T) { if err != nil { t.Fatalf("ReadFrame #1: %v", err) } + if f.Type != sideband64k.FrameData || string(f.Payload) != "a" { t.Fatalf("frame #1 = %#v", f) } @@ -25,6 +26,7 @@ func TestDecoderDataControlAndKeepalive(t *testing.T) { if err != nil { t.Fatalf("ReadFrame #2: %v", err) } + if f.Type != sideband64k.FrameData || len(f.Payload) != 0 { t.Fatalf("frame #2 = %#v, want empty data", f) } @@ -33,6 +35,7 @@ func TestDecoderDataControlAndKeepalive(t *testing.T) { if err != nil { t.Fatalf("ReadFrame #3: %v", err) } + if f.Type != sideband64k.FrameProgress || string(f.Payload) != "p\n" { t.Fatalf("frame #3 = %#v", f) } @@ -41,6 +44,7 @@ func TestDecoderDataControlAndKeepalive(t *testing.T) { if err != nil { t.Fatalf("ReadFrame #4: %v", err) } + if f.Type != sideband64k.FrameError || string(f.Payload) != "e\n" { t.Fatalf("frame #4 = %#v", f) } @@ -49,6 +53,7 @@ func TestDecoderDataControlAndKeepalive(t *testing.T) { if err != nil { t.Fatalf("ReadFrame #5: %v", err) } + if f.Type != sideband64k.FrameDelim { t.Fatalf("frame #5 type = %v, want FrameDelim", f.Type) } @@ -57,6 +62,7 @@ func TestDecoderDataControlAndKeepalive(t *testing.T) { if err != nil { t.Fatalf("ReadFrame #6: %v", err) } + if f.Type != sideband64k.FrameResponseEnd { t.Fatalf("frame #6 type = %v, want FrameResponseEnd", f.Type) } @@ -65,6 +71,7 @@ func TestDecoderDataControlAndKeepalive(t *testing.T) { if err != nil { t.Fatalf("ReadFrame #7: %v", err) } + if f.Type != sideband64k.FrameFlush { t.Fatalf("frame #7 type = %v, want FrameFlush", f.Type) } diff --git a/format/sideband64k/decoder_partial_read_test.go b/format/sideband64k/decoder_partial_read_test.go index 0efd4db5..d5b2f672 100644 --- a/format/sideband64k/decoder_partial_read_test.go +++ b/format/sideband64k/decoder_partial_read_test.go @@ -16,6 +16,7 @@ func TestDecoderHandlesPartialReads(t *testing.T) { if err != nil { t.Fatalf("ReadFrame #1: %v", err) } + if f.Type != sideband64k.FrameProgress || string(f.Payload) != "ok" { t.Fatalf("frame #1 = %#v", f) } @@ -24,6 +25,7 @@ func TestDecoderHandlesPartialReads(t *testing.T) { if err != nil { t.Fatalf("ReadFrame #2: %v", err) } + if f.Type != sideband64k.FrameFlush { t.Fatalf("frame #2 = %#v", f) } diff --git a/format/sideband64k/decoder_peek_test.go b/format/sideband64k/decoder_peek_test.go index 900e714c..1628ca41 100644 --- a/format/sideband64k/decoder_peek_test.go +++ b/format/sideband64k/decoder_peek_test.go @@ -16,6 +16,7 @@ func TestDecoderPeek(t *testing.T) { if err != nil { t.Fatalf("PeekFrame: %v", err) } + if f.Type != sideband64k.FrameData || string(f.Payload) != "x" { t.Fatalf("peek frame = %#v", f) } @@ -26,6 +27,7 @@ func TestDecoderPeek(t *testing.T) { if err != nil { t.Fatalf("ReadFrame: %v", err) } + if f.Type != sideband64k.FrameData || string(f.Payload) != "x" { t.Fatalf("read frame = %#v", f) } diff --git a/format/sideband64k/decoder_resync_after_over_max_data_test.go b/format/sideband64k/decoder_resync_after_over_max_data_test.go index 7280c0ac..923195c1 100644 --- a/format/sideband64k/decoder_resync_after_over_max_data_test.go +++ b/format/sideband64k/decoder_resync_after_over_max_data_test.go @@ -17,20 +17,25 @@ func TestDecoderResyncAfterOverMaxData(t *testing.T) { bw := bufio.NewWriter(&b) enc := sideband64k.NewEncoder(bw) - if err := enc.WriteData([]byte("abcd")); err != nil { + err := enc.WriteData([]byte("abcd")) + if err != nil { t.Fatalf("WriteData #1: %v", err) } - if err := enc.WriteData([]byte("z")); err != nil { + + err = enc.WriteData([]byte("z")) + if err != nil { t.Fatalf("WriteData #2: %v", err) } - if err := enc.FlushIO(); err != nil { + + err = enc.FlushIO() + if err != nil { t.Fatalf("FlushIO: %v", err) } dec := sideband64k.NewDecoder(bytes.NewReader(b.Bytes()), sideband64k.ReadOptions{}) dec.SetMaxData(1) - _, err := dec.ReadFrame() + _, err = dec.ReadFrame() if !errors.Is(err, sideband64k.ErrTooLarge) { t.Fatalf("got err %v, want ErrTooLarge", err) } @@ -39,6 +44,7 @@ func TestDecoderResyncAfterOverMaxData(t *testing.T) { if err != nil { t.Fatalf("ReadFrame #2: %v", err) } + if f.Type != sideband64k.FrameData || string(f.Payload) != "z" { t.Fatalf("got frame %#v, want data z", f) } diff --git a/format/sideband64k/decoder_resync_after_over_wire_max_test.go b/format/sideband64k/decoder_resync_after_over_wire_max_test.go index 26e67d7f..09a8c459 100644 --- a/format/sideband64k/decoder_resync_after_over_wire_max_test.go +++ b/format/sideband64k/decoder_resync_after_over_wire_max_test.go @@ -31,6 +31,7 @@ func TestDecoderResyncAfterOverWireMax(t *testing.T) { if err != nil { t.Fatalf("ReadFrame #2: %v", err) } + if f.Type != sideband64k.FrameData || string(f.Payload) != "z" { t.Fatalf("got frame %#v, want data z", f) } diff --git a/format/sideband64k/encoder.go b/format/sideband64k/encoder.go index 56854abf..4205d461 100644 --- a/format/sideband64k/encoder.go +++ b/format/sideband64k/encoder.go @@ -28,6 +28,7 @@ func NewEncoder(w pktline.WriteFlusher) *Encoder { func (e *Encoder) SetMaxData(n int) { if n <= 0 { e.maxData = DataMax + return } diff --git a/format/sideband64k/encoder_buffered_flush_behavior_test.go b/format/sideband64k/encoder_buffered_flush_behavior_test.go index f804f231..5c8b358f 100644 --- a/format/sideband64k/encoder_buffered_flush_behavior_test.go +++ b/format/sideband64k/encoder_buffered_flush_behavior_test.go @@ -16,18 +16,25 @@ func TestEncoderBufferedFlushBehavior(t *testing.T) { bw := bufio.NewWriter(&out) enc := sideband64k.NewEncoder(bw) - if err := enc.WriteData([]byte("hello")); err != nil { + err := enc.WriteData([]byte("hello")) + if err != nil { t.Fatalf("WriteData: %v", err) } - if err := enc.WriteFlush(); err != nil { + + err = enc.WriteFlush() + if err != nil { t.Fatalf("WriteFlush: %v", err) } + if out.Len() != 0 { t.Fatalf("WriteFlush should not flush I/O, got %q", out.String()) } - if err := enc.FlushIO(); err != nil { + + err = enc.FlushIO() + if err != nil { t.Fatalf("FlushIO: %v", err) } + if got, want := out.String(), "000a\x01hello0000"; got != want { t.Fatalf("got %q, want %q", got, want) } @@ -36,12 +43,16 @@ func TestEncoderBufferedFlushBehavior(t *testing.T) { bw = bufio.NewWriter(&out) enc = sideband64k.NewEncoder(bw) - if err := enc.WriteData([]byte("yo")); err != nil { + err = enc.WriteData([]byte("yo")) + if err != nil { t.Fatalf("WriteData: %v", err) } - if err := enc.WriteFlushAndFlushIO(); err != nil { + + err = enc.WriteFlushAndFlushIO() + if err != nil { t.Fatalf("WriteFlushAndFlushIO: %v", err) } + if got, want := out.String(), "0007\x01yo0000"; got != want { t.Fatalf("got %q, want %q", got, want) } diff --git a/format/sideband64k/encoder_partial_write_test.go b/format/sideband64k/encoder_partial_write_test.go index c82b1902..3d4f8066 100644 --- a/format/sideband64k/encoder_partial_write_test.go +++ b/format/sideband64k/encoder_partial_write_test.go @@ -1,6 +1,7 @@ package sideband64k_test import ( + "errors" "io" "testing" @@ -13,16 +14,20 @@ func TestEncoderHandlesPartialWrites(t *testing.T) { dst := &limitWriter{maxPerWrite: 2} enc := sideband64k.NewEncoder(dst) - if err := enc.WriteProgress([]byte("abc")); err != nil { + err := enc.WriteProgress([]byte("abc")) + if err != nil { t.Fatalf("WriteProgress: %v", err) } - if err := enc.WriteFlushAndFlushIO(); err != nil { + + err = enc.WriteFlushAndFlushIO() + if err != nil { t.Fatalf("WriteFlushAndFlushIO: %v", err) } if got, want := dst.buf.String(), "0008\x02abc0000"; got != want { t.Fatalf("got %q, want %q", got, want) } + if dst.flushes != 1 { t.Fatalf("flushes=%d, want 1", dst.flushes) } @@ -35,7 +40,7 @@ func TestEncoderReturnsShortWrite(t *testing.T) { enc := sideband64k.NewEncoder(dst) err := enc.WriteData([]byte("x")) - if err != io.ErrShortWrite { + if !errors.Is(err, io.ErrShortWrite) { t.Fatalf("got err %v, want io.ErrShortWrite", err) } } diff --git a/format/sideband64k/encoder_writes_frames_test.go b/format/sideband64k/encoder_writes_frames_test.go index f08c4e43..8cfd4a89 100644 --- a/format/sideband64k/encoder_writes_frames_test.go +++ b/format/sideband64k/encoder_writes_frames_test.go @@ -16,25 +16,38 @@ func TestEncoderWritesFrames(t *testing.T) { bw := bufio.NewWriter(&b) enc := sideband64k.NewEncoder(bw) - if err := enc.WriteData([]byte("hi")); err != nil { + err := enc.WriteData([]byte("hi")) + if err != nil { t.Fatalf("WriteData: %v", err) } - if err := enc.WriteProgress([]byte("ok")); err != nil { + + err = enc.WriteProgress([]byte("ok")) + if err != nil { t.Fatalf("WriteProgress: %v", err) } - if err := enc.WriteError([]byte("no")); err != nil { + + err = enc.WriteError([]byte("no")) + if err != nil { t.Fatalf("WriteError: %v", err) } - if err := enc.WriteFlush(); err != nil { + + err = enc.WriteFlush() + if err != nil { t.Fatalf("WriteFlush: %v", err) } - if err := enc.WriteDelim(); err != nil { + + err = enc.WriteDelim() + if err != nil { t.Fatalf("WriteDelim: %v", err) } - if err := enc.WriteResponseEnd(); err != nil { + + err = enc.WriteResponseEnd() + if err != nil { t.Fatalf("WriteResponseEnd: %v", err) } - if err := enc.FlushIO(); err != nil { + + err = enc.FlushIO() + if err != nil { t.Fatalf("FlushIO: %v", err) } diff --git a/format/sideband64k/helpers_test.go b/format/sideband64k/helpers_test.go index c10e9e71..f9b2608f 100644 --- a/format/sideband64k/helpers_test.go +++ b/format/sideband64k/helpers_test.go @@ -26,6 +26,7 @@ func (w *limitWriter) Write(p []byte) (int, error) { func (w *limitWriter) Flush() error { w.flushes++ + return nil } @@ -40,5 +41,6 @@ func (r *byteReader) Read(p []byte) (int, error) { p[0] = r.data[0] r.data = r.data[1:] + return 1, nil } |
