forked from TrueCloudLab/frostfs-node
Ayrat Arifullin
9808dec591
Move testing utils from tests in local_object_storage package to unified testutil package Signed-off-by: Airat Arifullin <aarifullin@yadro.com>
70 lines
1.6 KiB
Go
70 lines
1.6 KiB
Go
package testutil
|
|
|
|
import (
|
|
"encoding/binary"
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/require"
|
|
"golang.org/x/exp/slices"
|
|
)
|
|
|
|
func TestOverwriteObjGenerator(t *testing.T) {
|
|
gen := &OverwriteObjGenerator{
|
|
ObjSize: 10,
|
|
MaxObjects: 4,
|
|
}
|
|
for i := 0; i < 40; i++ {
|
|
obj := gen.Next()
|
|
id, isSet := obj.ID()
|
|
i := binary.LittleEndian.Uint64(id[:])
|
|
|
|
require.True(t, isSet)
|
|
require.Equal(t, gen.ObjSize, uint64(len(obj.Payload())))
|
|
require.True(t, 1 <= i && i <= gen.MaxObjects)
|
|
}
|
|
}
|
|
|
|
func TestRandObjGenerator(t *testing.T) {
|
|
gen := &RandObjGenerator{ObjSize: 10}
|
|
for i := 0; i < 10; i++ {
|
|
obj := gen.Next()
|
|
|
|
require.Equal(t, gen.ObjSize, uint64(len(obj.Payload())))
|
|
}
|
|
}
|
|
|
|
func TestSeqObjGenerator(t *testing.T) {
|
|
gen := &SeqObjGenerator{ObjSize: 10}
|
|
var addrs []string
|
|
for i := 1; i <= 10; i++ {
|
|
obj := gen.Next()
|
|
id, isSet := obj.ID()
|
|
addrs = append(addrs, AddressFromObject(obj).EncodeToString())
|
|
|
|
require.True(t, isSet)
|
|
require.Equal(t, gen.ObjSize, uint64(len(obj.Payload())))
|
|
require.Equal(t, uint64(i), binary.LittleEndian.Uint64(id[:]))
|
|
}
|
|
require.True(t, slices.IsSorted(addrs))
|
|
}
|
|
|
|
func TestRandAddrGenerator(t *testing.T) {
|
|
gen := RandAddrGenerator(5)
|
|
for i := 0; i < 50; i++ {
|
|
addr := gen.Next()
|
|
id := addr.Object()
|
|
k := binary.LittleEndian.Uint64(id[:])
|
|
|
|
require.True(t, 1 <= k && k <= uint64(gen))
|
|
}
|
|
}
|
|
|
|
func TestSeqAddrGenerator(t *testing.T) {
|
|
gen := &SeqAddrGenerator{MaxID: 10}
|
|
for i := 1; i <= 20; i++ {
|
|
addr := gen.Next()
|
|
id := addr.Object()
|
|
|
|
require.Equal(t, uint64((i-1)%int(gen.MaxID)+1), binary.LittleEndian.Uint64(id[:]))
|
|
}
|
|
}
|