pkg/tarstream/tarstream_test.go
Rama main · réplica de lectura del repositorio original.
package tarstream
import (
"math/rand"
"slices"
"testing"
"testing/iotest"
"testing/quick"
)
func TestReader(t *testing.T) {
err := quick.Check(func(data []byte) bool {
tv := genRandomVec(data)
if err := iotest.TestReader(tv, data); err != nil {
t.Logf("got read err %v", err)
return false
}
return true
}, nil)
if err != nil {
t.Fatal(err)
}
}
func genRandomVec(data []byte) *TarVec {
var vecs []Datavec
for len(data) > 0 {
n := rand.Intn(len(data) + 1)
vecData := data[:n]
data = data[n:]
allZeroes := !slices.ContainsFunc(vecData, func(b byte) bool {
return b != 0
})
if allZeroes {
vecs = append(vecs, PadVec{Size: int64(len(vecData))})
} else {
vecs = append(vecs, MemVec{Data: vecData})
}
}
return NewTarVec(vecs)
}