Improve coverage of pkg/ioutils/buffer

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
This commit is contained in:
Sebastiaan van Stijn 2017-02-28 14:11:15 +01:00
Родитель 98a1d9a712
Коммит 392ece2239
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 76698F39D527CE8C
1 изменённых файлов: 75 добавлений и 0 удалений

Просмотреть файл

@ -5,6 +5,81 @@ import (
"testing"
)
func TestFixedBufferCap(t *testing.T) {
buf := &fixedBuffer{buf: make([]byte, 0, 5)}
n := buf.Cap()
if n != 5 {
t.Fatalf("expected buffer capacity to be 5 bytes, got %d", n)
}
}
func TestFixedBufferLen(t *testing.T) {
buf := &fixedBuffer{buf: make([]byte, 0, 10)}
buf.Write([]byte("hello"))
l := buf.Len()
if l != 5 {
t.Fatalf("expected buffer length to be 5 bytes, got %d", l)
}
buf.Write([]byte("world"))
l = buf.Len()
if l != 10 {
t.Fatalf("expected buffer length to be 10 bytes, got %d", l)
}
// read 5 bytes
b := make([]byte, 5)
buf.Read(b)
l = buf.Len()
if l != 5 {
t.Fatalf("expected buffer length to be 5 bytes, got %d", l)
}
n, err := buf.Write([]byte("i-wont-fit"))
if n != 0 {
t.Fatalf("expected no bytes to be written to buffer, got %d", n)
}
if err != errBufferFull {
t.Fatalf("expected errBufferFull, got %v", err)
}
l = buf.Len()
if l != 5 {
t.Fatalf("expected buffer length to still be 5 bytes, got %d", l)
}
buf.Reset()
l = buf.Len()
if l != 0 {
t.Fatalf("expected buffer length to still be 0 bytes, got %d", l)
}
}
func TestFixedBufferString(t *testing.T) {
buf := &fixedBuffer{buf: make([]byte, 0, 10)}
buf.Write([]byte("hello"))
buf.Write([]byte("world"))
out := buf.String()
if out != "helloworld" {
t.Fatalf("expected output to be \"helloworld\", got %q", out)
}
// read 5 bytes
b := make([]byte, 5)
buf.Read(b)
// test that fixedBuffer.String() only returns the part that hasn't been read
out = buf.String()
if out != "world" {
t.Fatalf("expected output to be \"world\", got %q", out)
}
}
func TestFixedBufferWrite(t *testing.T) {
buf := &fixedBuffer{buf: make([]byte, 0, 64)}
n, err := buf.Write([]byte("hello"))