MCPcopy
hub / github.com/jackc/pgx / TestChunkReaderNextDoesNotReadIfAlreadyBuffered

Function TestChunkReaderNextDoesNotReadIfAlreadyBuffered

pgproto3/chunkreader_test.go:9–47  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

7)
8
9func TestChunkReaderNextDoesNotReadIfAlreadyBuffered(t *testing.T) {
10 server := &bytes.Buffer{}
11 r := newChunkReader(server, 4)
12
13 src := []byte{1, 2, 3, 4}
14 server.Write(src)
15
16 n1, err := r.Next(2)
17 if err != nil {
18 t.Fatal(err)
19 }
20 if !bytes.Equal(n1, src[0:2]) {
21 t.Fatalf("Expected read bytes to be %v, but they were %v", src[0:2], n1)
22 }
23
24 n2, err := r.Next(2)
25 if err != nil {
26 t.Fatal(err)
27 }
28 if !bytes.Equal(n2, src[2:4]) {
29 t.Fatalf("Expected read bytes to be %v, but they were %v", src[2:4], n2)
30 }
31
32 if !bytes.Equal((*r.buf)[:len(src)], src) {
33 t.Fatalf("Expected r.buf to be %v, but it was %v", src, r.buf)
34 }
35
36 _, err = r.Next(0) // Trigger the buffer reset.
37 if err != nil {
38 t.Fatal(err)
39 }
40
41 if r.rp != 0 {
42 t.Fatalf("Expected r.rp to be %v, but it was %v", 0, r.rp)
43 }
44 if r.wp != 0 {
45 t.Fatalf("Expected r.wp to be %v, but it was %v", 0, r.wp)
46 }
47}
48
49type randomReader struct {
50 rnd *rand.Rand

Callers

nothing calls this directly

Calls 3

newChunkReaderFunction · 0.85
NextMethod · 0.65
WriteMethod · 0.45

Tested by

no test coverage detected