utils: Add test for Packer.UnpackByte

This commit is contained in:
Alex Willmer 2020-03-29 17:02:12 +01:00
parent 1fe5092e9b
commit cd59668be5
1 changed files with 33 additions and 1 deletions

View File

@ -8,7 +8,11 @@ import (
"testing"
)
func TestPackerByte(t *testing.T) {
const (
ByteSentinal = 0
)
func TestPackerPackByte(t *testing.T) {
p := Packer{MaxSize: 1}
p.PackByte(0x01)
@ -25,6 +29,34 @@ func TestPackerByte(t *testing.T) {
if !bytes.Equal(p.Bytes, expected) {
t.Fatalf("Packer.PackByte wrote:\n%v\nExpected:\n%v", p.Bytes, expected)
}
p.PackByte(0x02)
if !p.Errored() {
t.Fatal("Packer.PackByte did not fail when attempt was beyond p.MaxSize")
}
}
func TestPackerUnpackByte(t *testing.T) {
var (
p = Packer{Bytes: []byte{0x01}, Offset: 0}
actual = p.UnpackByte()
expected byte = 1
expectedLen = ByteLen
)
if p.Errored() {
t.Fatalf("Packer.UnpackByte unexpectedly raised %s", p.Err)
} else if actual != expected {
t.Fatalf("Packer.UnpackByte returned %d, but expected %d", actual, expected)
} else if p.Offset != expectedLen {
t.Fatalf("Packer.UnpackByte left Offset %d, expected %d", p.Offset, expectedLen)
}
actual = p.UnpackByte()
if !p.Errored() {
t.Fatalf("Packer.UnpackByte should have set error, due to attempted out of bounds read")
} else if actual != ByteSentinal {
t.Fatalf("Packer.UnpackByte returned %d, expected sentinal value %d", actual, ByteSentinal)
}
}
func TestPackerShort(t *testing.T) {