...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 package ioutil
16
17 import (
18 "bytes"
19 "io"
20 "testing"
21 )
22
23 type readerNilCloser struct{ io.Reader }
24
25 func (rc *readerNilCloser) Close() error { return nil }
26
27
28 func TestExactReadCloserExpectEOF(t *testing.T) {
29 buf := bytes.NewBuffer(make([]byte, 10))
30 rc := NewExactReadCloser(&readerNilCloser{buf}, 1)
31 if _, err := rc.Read(make([]byte, 10)); err != ErrExpectEOF {
32 t.Fatalf("expected %v, got %v", ErrExpectEOF, err)
33 }
34 }
35
36
37 func TestExactReadCloserShort(t *testing.T) {
38 buf := bytes.NewBuffer(make([]byte, 5))
39 rc := NewExactReadCloser(&readerNilCloser{buf}, 10)
40 if _, err := rc.Read(make([]byte, 10)); err != nil {
41 t.Fatalf("Read expected nil err, got %v", err)
42 }
43 if err := rc.Close(); err != ErrShortRead {
44 t.Fatalf("Close expected %v, got %v", ErrShortRead, err)
45 }
46 }
47
View as plain text