github.com/fabiokung/docker@v0.11.2-0.20170222101415-4534dcd49497/pkg/ioutils/buffer_test.go (about) 1 package ioutils 2 3 import ( 4 "bytes" 5 "testing" 6 ) 7 8 func TestFixedBufferWrite(t *testing.T) { 9 buf := &fixedBuffer{buf: make([]byte, 0, 64)} 10 n, err := buf.Write([]byte("hello")) 11 if err != nil { 12 t.Fatal(err) 13 } 14 15 if n != 5 { 16 t.Fatalf("expected 5 bytes written, got %d", n) 17 } 18 19 if string(buf.buf[:5]) != "hello" { 20 t.Fatalf("expected \"hello\", got %q", string(buf.buf[:5])) 21 } 22 23 n, err = buf.Write(bytes.Repeat([]byte{1}, 64)) 24 if n != 59 { 25 t.Fatalf("expected 59 bytes written before buffer is full, got %d", n) 26 } 27 if err != errBufferFull { 28 t.Fatalf("expected errBufferFull, got %v - %v", err, buf.buf[:64]) 29 } 30 } 31 32 func TestFixedBufferRead(t *testing.T) { 33 buf := &fixedBuffer{buf: make([]byte, 0, 64)} 34 if _, err := buf.Write([]byte("hello world")); err != nil { 35 t.Fatal(err) 36 } 37 38 b := make([]byte, 5) 39 n, err := buf.Read(b) 40 if err != nil { 41 t.Fatal(err) 42 } 43 44 if n != 5 { 45 t.Fatalf("expected 5 bytes read, got %d - %s", n, buf.String()) 46 } 47 48 if string(b) != "hello" { 49 t.Fatalf("expected \"hello\", got %q", string(b)) 50 } 51 52 n, err = buf.Read(b) 53 if err != nil { 54 t.Fatal(err) 55 } 56 57 if n != 5 { 58 t.Fatalf("expected 5 bytes read, got %d", n) 59 } 60 61 if string(b) != " worl" { 62 t.Fatalf("expected \" worl\", got %s", string(b)) 63 } 64 65 b = b[:1] 66 n, err = buf.Read(b) 67 if err != nil { 68 t.Fatal(err) 69 } 70 71 if n != 1 { 72 t.Fatalf("expected 1 byte read, got %d - %s", n, buf.String()) 73 } 74 75 if string(b) != "d" { 76 t.Fatalf("expected \"d\", got %s", string(b)) 77 } 78 }