(t *testing.T)
| 7 | ) |
| 8 | |
| 9 | func 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 | |
| 49 | type randomReader struct { |
| 50 | rnd *rand.Rand |
nothing calls this directly
no test coverage detected