[#1377] oid, cid: Upgrade SDK package

Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
This commit is contained in:
Leonard Lyubich 2022-05-12 19:37:46 +03:00 committed by LeL
parent f65898a354
commit f15e6e888f
118 changed files with 1455 additions and 886 deletions

View file

@ -3,7 +3,6 @@ package engine
import (
"crypto/sha256"
"fmt"
"math/rand"
"os"
"path/filepath"
"testing"
@ -17,7 +16,7 @@ import (
cidtest "github.com/nspcc-dev/neofs-sdk-go/container/id/test"
"github.com/nspcc-dev/neofs-sdk-go/object"
objecttest "github.com/nspcc-dev/neofs-sdk-go/object/address/test"
oidSDK "github.com/nspcc-dev/neofs-sdk-go/object/id"
oidtest "github.com/nspcc-dev/neofs-sdk-go/object/id/test"
"github.com/nspcc-dev/neofs-sdk-go/owner"
ownertest "github.com/nspcc-dev/neofs-sdk-go/owner/test"
"github.com/nspcc-dev/neofs-sdk-go/version"
@ -137,17 +136,7 @@ func testEngineFromShardOpts(t *testing.T, num int, extraOpts func(int) []shard.
return engine
}
func testOID() *oidSDK.ID {
cs := [sha256.Size]byte{}
_, _ = rand.Read(cs[:])
id := oidSDK.NewID()
id.SetSHA256(cs)
return id
}
func generateObjectWithCID(t testing.TB, cid *cid.ID) *object.Object {
func generateObjectWithCID(t testing.TB, cnr cid.ID) *object.Object {
var ver version.Version
ver.SetMajor(2)
ver.SetMinor(1)
@ -159,9 +148,9 @@ func generateObjectWithCID(t testing.TB, cid *cid.ID) *object.Object {
csumTZ.SetTillichZemor(tz.Sum(csum.Value()))
obj := object.New()
obj.SetID(testOID())
obj.SetID(oidtest.ID())
obj.SetOwnerID(ownertest.ID())
obj.SetContainerID(cid)
obj.SetContainerID(cnr)
obj.SetVersion(&ver)
obj.SetPayloadChecksum(csum)
obj.SetPayloadHomomorphicHash(csumTZ)

View file

@ -95,8 +95,11 @@ func (e *StorageEngine) get(prm *GetPrm) (*GetRes, error) {
util.MergeSplitInfo(siErr.SplitInfo(), outSI)
_, withLink := outSI.Link()
_, withLast := outSI.LastPart()
// stop iterating over shards if SplitInfo structure is complete
if outSI.Link() != nil && outSI.LastPart() != nil {
if withLink && withLast {
return true
}

View file

@ -102,8 +102,11 @@ func (e *StorageEngine) head(prm *HeadPrm) (*HeadRes, error) {
util.MergeSplitInfo(siErr.SplitInfo(), outSI)
_, withLink := outSI.Link()
_, withLast := outSI.LastPart()
// stop iterating over shards if SplitInfo structure is complete
if outSI.Link() != nil && outSI.LastPart() != nil {
if withLink && withLast {
return true
}

View file

@ -22,20 +22,25 @@ func TestHeadRaw(t *testing.T) {
parentAddr := addressSDK.NewAddress()
parentAddr.SetContainerID(cid)
parentAddr.SetObjectID(parent.ID())
idParent, _ := parent.ID()
parentAddr.SetObjectID(idParent)
child := generateObjectWithCID(t, cid)
child.SetParent(parent)
child.SetParentID(parent.ID())
child.SetParentID(idParent)
child.SetSplitID(splitID)
link := generateObjectWithCID(t, cid)
link.SetParent(parent)
link.SetParentID(parent.ID())
link.SetChildren(*child.ID())
link.SetParentID(idParent)
idChild, _ := child.ID()
link.SetChildren(idChild)
link.SetSplitID(splitID)
t.Run("virtual object split in different shards", func(t *testing.T) {
t.Skip("not working, see neofs-sdk-go#242")
s1 := testNewShard(t, 1)
s2 := testNewShard(t, 2)
@ -63,7 +68,13 @@ func TestHeadRaw(t *testing.T) {
// SplitInfoError should contain info from both shards
require.Equal(t, splitID, si.SplitInfo().SplitID())
require.Equal(t, child.ID(), si.SplitInfo().LastPart())
require.Equal(t, link.ID(), si.SplitInfo().Link())
id1, _ := child.ID()
id2, _ := si.SplitInfo().LastPart()
require.Equal(t, id1, id2)
id1, _ = link.ID()
id2, _ = si.SplitInfo().Link()
require.Equal(t, id1, id2)
})
}

View file

@ -14,24 +14,26 @@ import (
func TestStorageEngine_Inhume(t *testing.T) {
defer os.RemoveAll(t.Name())
cid := cidtest.ID()
cnr := cidtest.ID()
splitID := objectSDK.NewSplitID()
fs := objectSDK.SearchFilters{}
fs.AddRootFilter()
tombstoneID := object.AddressOf(generateObjectWithCID(t, cid))
parent := generateObjectWithCID(t, cid)
tombstoneID := object.AddressOf(generateObjectWithCID(t, cnr))
parent := generateObjectWithCID(t, cnr)
child := generateObjectWithCID(t, cid)
child := generateObjectWithCID(t, cnr)
child.SetParent(parent)
child.SetParentID(parent.ID())
idParent, _ := parent.ID()
child.SetParentID(idParent)
child.SetSplitID(splitID)
link := generateObjectWithCID(t, cid)
link := generateObjectWithCID(t, cnr)
link.SetParent(parent)
link.SetParentID(parent.ID())
link.SetChildren(*child.ID())
link.SetParentID(idParent)
idChild, _ := child.ID()
link.SetChildren(idChild)
link.SetSplitID(splitID)
t.Run("delete small object", func(t *testing.T) {
@ -45,12 +47,13 @@ func TestStorageEngine_Inhume(t *testing.T) {
_, err = e.Inhume(inhumePrm)
require.NoError(t, err)
addrs, err := Select(e, cid, fs)
addrs, err := Select(e, &cnr, fs)
require.NoError(t, err)
require.Empty(t, addrs)
})
t.Run("delete big object", func(t *testing.T) {
t.Skip("not working, see neofs-sdk-go#242")
s1 := testNewShard(t, 1)
s2 := testNewShard(t, 2)
@ -69,7 +72,7 @@ func TestStorageEngine_Inhume(t *testing.T) {
_, err = e.Inhume(inhumePrm)
require.NoError(t, err)
addrs, err := Select(e, cid, fs)
addrs, err := Select(e, &cnr, fs)
require.NoError(t, err)
require.Empty(t, addrs)
})

View file

@ -27,7 +27,7 @@ func (e *StorageEngine) Lock(idCnr cid.ID, locker oid.ID, locked []oid.ID) error
func (e *StorageEngine) lock(idCnr cid.ID, locker oid.ID, locked []oid.ID) error {
var addr address.Address
addr.SetContainerID(&idCnr)
addr.SetContainerID(idCnr)
for i := range locked {
switch e.lockSingle(idCnr, locker, locked[i], true) {
@ -56,8 +56,8 @@ func (e *StorageEngine) lockSingle(idCnr cid.ID, locker, locked oid.ID, checkExi
var errIrregular apistatus.LockNonRegularObject
var addrLocked address.Address
addrLocked.SetContainerID(&idCnr)
addrLocked.SetObjectID(&locked)
addrLocked.SetContainerID(idCnr)
addrLocked.SetObjectID(locked)
e.iterateOverSortedShards(&addrLocked, func(_ int, sh hashedShard) (stop bool) {
defer func() {

View file

@ -79,13 +79,14 @@ func TestLockUserScenario(t *testing.T) {
// 1.
obj := generateObjectWithCID(t, cnr)
objAddr.SetObjectID(obj.ID())
id, _ := obj.ID()
objAddr.SetObjectID(id)
err = Put(e, obj)
require.NoError(t, err)
// 2.
err = e.Lock(*cnr, *lockerID, []oid.ID{*obj.ID()})
err = e.Lock(cnr, lockerID, []oid.ID{id})
require.NoError(t, err)
// 3.
@ -172,7 +173,10 @@ func TestLockExpiration(t *testing.T) {
err = Put(e, lock)
require.NoError(t, err)
err = e.Lock(*cnr, *lock.ID(), []oid.ID{*obj.ID()})
id, _ := obj.ID()
idLock, _ := lock.ID()
err = e.Lock(cnr, idLock, []oid.ID{id})
require.NoError(t, err)
_, err = e.Inhume(new(InhumePrm).WithTarget(objecttest.Address(), objectcore.AddressOf(obj)))

View file

@ -114,8 +114,11 @@ func (e *StorageEngine) getRange(prm *RngPrm) (*RngRes, error) {
util.MergeSplitInfo(siErr.SplitInfo(), outSI)
_, withLink := outSI.Link()
_, withLast := outSI.LastPart()
// stop iterating over shards if SplitInfo structure is complete
if outSI.Link() != nil && outSI.LastPart() != nil {
if withLink && withLast {
return true
}