forked from TrueCloudLab/frostfs-node
7ccd1625af
Remove `Object` and `RawObject` types from `pkg/core/object` package. Use `Object` type from NeoFS SDK Go library everywhere. Avoid using the deprecated elements. Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
53 lines
1.3 KiB
Go
53 lines
1.3 KiB
Go
package shard_test
|
|
|
|
import (
|
|
"math/rand"
|
|
"testing"
|
|
|
|
"github.com/nspcc-dev/neofs-node/pkg/core/object"
|
|
"github.com/nspcc-dev/neofs-node/pkg/local_object_storage/shard"
|
|
"github.com/nspcc-dev/neofs-node/pkg/local_object_storage/writecache"
|
|
cidtest "github.com/nspcc-dev/neofs-sdk-go/container/id/test"
|
|
objectSDK "github.com/nspcc-dev/neofs-sdk-go/object"
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func TestWriteCacheObjectLoss(t *testing.T) {
|
|
const (
|
|
smallSize = 1024
|
|
objCount = 100
|
|
)
|
|
|
|
objects := make([]*objectSDK.Object, objCount)
|
|
for i := range objects {
|
|
size := smallSize
|
|
// if i%2 == 0 {
|
|
size = smallSize / 2
|
|
// }
|
|
data := make([]byte, size)
|
|
rand.Read(data)
|
|
|
|
objects[i] = generateObjectWithPayload(cidtest.ID(), data)
|
|
}
|
|
|
|
dir := t.TempDir()
|
|
wcOpts := []writecache.Option{
|
|
writecache.WithSmallObjectSize(smallSize),
|
|
writecache.WithMaxObjectSize(smallSize * 2)}
|
|
|
|
sh := newCustomShard(t, dir, true, wcOpts, nil)
|
|
|
|
for i := range objects {
|
|
_, err := sh.Put(new(shard.PutPrm).WithObject(objects[i]))
|
|
require.NoError(t, err)
|
|
}
|
|
require.NoError(t, sh.Close())
|
|
|
|
sh = newCustomShard(t, dir, true, wcOpts, nil)
|
|
defer releaseShard(sh, t)
|
|
|
|
for i := range objects {
|
|
_, err := sh.Get(new(shard.GetPrm).WithAddress(object.AddressOf(objects[i])))
|
|
require.NoError(t, err, i)
|
|
}
|
|
}
|