aboutsummaryrefslogtreecommitdiff
path: root/network/protocol/sideband64k/decoder_partial_read_test.go
blob: fe2e2fc1f0a24a6e26725a4556536fb07c406af4 (about) (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
package sideband64k_test

import (
	"testing"

	"lindenii.org/go/furgit/network/protocol/sideband64k"
)

func TestDecoderHandlesPartialReads(t *testing.T) {
	t.Parallel()

	r := &byteReader{data: []byte("0007\x02ok0000")}
	dec := sideband64k.NewDecoder(r, sideband64k.ReadOptions{})

	f, err := dec.ReadFrame()
	if err != nil {
		t.Fatalf("ReadFrame #1: %v", err)
	}

	if f.Type != sideband64k.FrameProgress || string(f.Payload) != "ok" {
		t.Fatalf("frame #1 = %#v", f)
	}

	f, err = dec.ReadFrame()
	if err != nil {
		t.Fatalf("ReadFrame #2: %v", err)
	}

	if f.Type != sideband64k.FrameFlush {
		t.Fatalf("frame #2 = %#v", f)
	}
}