37 lines
800 B
Go
37 lines
800 B
Go
/*
|
|
Copyright IBM Corp. All Rights Reserved.
|
|
|
|
SPDX-License-Identifier: Apache-2.0
|
|
*/
|
|
|
|
package blkstorage
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/golang/protobuf/proto"
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func TestBuffer(t *testing.T) {
|
|
pb := proto.NewBuffer(nil)
|
|
pb.EncodeVarint(10)
|
|
pos1 := len(pb.Bytes())
|
|
pb.EncodeRawBytes([]byte("JunkText"))
|
|
pos2 := len(pb.Bytes())
|
|
pb.EncodeRawBytes([]byte("YetAnotherJunkText"))
|
|
pos3 := len(pb.Bytes())
|
|
pb.EncodeVarint(1000000)
|
|
pos4 := len(pb.Bytes())
|
|
|
|
b := newBuffer(pb.Bytes())
|
|
b.DecodeVarint()
|
|
require.Equal(t, pos1, b.GetBytesConsumed())
|
|
b.DecodeRawBytes(false)
|
|
require.Equal(t, pos2, b.GetBytesConsumed())
|
|
b.DecodeRawBytes(false)
|
|
require.Equal(t, pos3, b.GetBytesConsumed())
|
|
b.DecodeVarint()
|
|
require.Equal(t, pos4, b.GetBytesConsumed())
|
|
}
|