Ensure that safemem.BlockSeqOf(safemem.Block{}) produces an empty BlockSeq.

PiperOrigin-RevId: 298941855
This commit is contained in:
Jamie Liu
2020-03-04 14:30:27 -08:00
committed by gVisor bot
parent 20a412ba44
commit a690b57624
2 changed files with 24 additions and 0 deletions
+21
View File
@@ -20,6 +20,27 @@ import (
"testing"
)
func TestBlockSeqOfEmptyBlock(t *testing.T) {
bs := BlockSeqOf(Block{})
if !bs.IsEmpty() {
t.Errorf("BlockSeqOf(Block{}).IsEmpty(): got false, wanted true; BlockSeq is %v", bs)
}
}
func TestBlockSeqOfNonemptyBlock(t *testing.T) {
b := BlockFromSafeSlice(make([]byte, 1))
bs := BlockSeqOf(b)
if bs.IsEmpty() {
t.Fatalf("BlockSeqOf(non-empty Block).IsEmpty(): got true, wanted false; BlockSeq is %v", bs)
}
if head := bs.Head(); head != b {
t.Fatalf("BlockSeqOf(non-empty Block).Head(): got %v, wanted %v", head, b)
}
if tail := bs.Tail(); !tail.IsEmpty() {
t.Fatalf("BlockSeqOf(non-empty Block).Tail().IsEmpty(): got false, wanted true: tail is %v", tail)
}
}
type blockSeqTest struct {
desc string
+3
View File
@@ -56,6 +56,9 @@ type BlockSeq struct {
// BlockSeqOf returns a BlockSeq representing the single Block b.
func BlockSeqOf(b Block) BlockSeq {
if b.length == 0 {
return BlockSeq{}
}
bs := BlockSeq{
data: b.start,
length: -1,