Remove outdated code of metabase and localstore

Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
This commit is contained in:
Leonard Lyubich 2020-12-08 10:51:34 +03:00 committed by Alex Vanin
parent 869d9e571c
commit a875d80491
41 changed files with 1725 additions and 3123 deletions

View file

@ -1,136 +1,48 @@
package meta
package meta_test
import (
"crypto/rand"
"crypto/sha256"
"fmt"
"testing"
"github.com/nspcc-dev/neofs-api-go/pkg"
objectSDK "github.com/nspcc-dev/neofs-api-go/pkg/object"
"github.com/nspcc-dev/neofs-api-go/pkg/owner"
"github.com/nspcc-dev/neofs-node/pkg/core/object"
"github.com/nspcc-dev/neofs-node/pkg/util/test"
"github.com/nspcc-dev/neofs-node/pkg/local_object_storage/blobovnicza"
"github.com/stretchr/testify/require"
)
type testPrm struct {
withParent bool
attrNum int
}
func (p testPrm) String() string {
return fmt.Sprintf("[with_parent:%t, attributes:%d]",
p.withParent,
p.attrNum,
)
}
func generateChecksum() *pkg.Checksum {
cs := pkg.NewChecksum()
sh := [sha256.Size]byte{}
rand.Read(sh[:])
cs.SetSHA256(sh)
return cs
}
func generateObject(t require.TestingT, prm testPrm) *object.Object {
obj := object.NewRaw()
obj.SetID(testOID())
obj.SetVersion(pkg.SDKVersion())
obj.SetContainerID(testCID())
obj.SetPayloadChecksum(generateChecksum())
obj.SetPayloadHomomorphicHash(generateChecksum())
obj.SetType(objectSDK.TypeRegular)
as := make([]*objectSDK.Attribute, 0, prm.attrNum)
for i := 0; i < prm.attrNum; i++ {
a := objectSDK.NewAttribute()
k := make([]byte, 32)
rand.Read(k)
a.SetKey(string(k))
v := make([]byte, 32)
rand.Read(v)
a.SetValue(string(v))
as = append(as, a)
}
obj.SetAttributes(as...)
wallet, err := owner.NEO3WalletFromPublicKey(&test.DecodeKey(-1).PublicKey)
require.NoError(t, err)
ownerID := owner.NewID()
ownerID.SetNeo3Wallet(wallet)
obj.SetOwnerID(ownerID)
if prm.withParent {
prm.withParent = false
obj.SetChildren(testOID())
obj.SetPreviousID(testOID())
obj.SetParentID(testOID())
obj.SetParent(generateObject(t, prm).SDK())
}
return obj.Object()
}
func BenchmarkDB_Put(b *testing.B) {
db := newDB(b)
func TestDB_PutBlobovnicaUpdate(t *testing.T) {
db := newDB(t)
defer releaseDB(db)
for _, prm := range []testPrm{
{
withParent: false,
attrNum: 0,
},
{
withParent: true,
attrNum: 0,
},
{
withParent: false,
attrNum: 100,
},
{
withParent: true,
attrNum: 100,
},
{
withParent: false,
attrNum: 1000,
},
{
withParent: true,
attrNum: 1000,
},
} {
b.Run(prm.String(), func(b *testing.B) {
b.ReportAllocs()
b.ResetTimer()
raw1 := generateRawObject(t)
blobovniczaID := blobovnicza.ID{1, 2, 3, 4}
for i := 0; i < b.N; i++ {
b.StopTimer()
obj := generateObject(b, prm)
b.StartTimer()
// put one object with blobovniczaID
err := db.Put(raw1.Object(), &blobovniczaID)
require.NoError(t, err)
err := db.Put(obj)
fetchedBlobovniczaID, err := db.IsSmall(raw1.Object().Address())
require.NoError(t, err)
require.Equal(t, &blobovniczaID, fetchedBlobovniczaID)
b.StopTimer()
require.NoError(b, err)
b.StartTimer()
}
})
}
t.Run("update blobovniczaID", func(t *testing.T) {
newID := blobovnicza.ID{5, 6, 7, 8}
err := db.Put(raw1.Object(), &newID)
require.NoError(t, err)
fetchedBlobovniczaID, err := db.IsSmall(raw1.Object().Address())
require.NoError(t, err)
require.Equal(t, &newID, fetchedBlobovniczaID)
})
t.Run("update blobovniczaID on bad object", func(t *testing.T) {
raw2 := generateRawObject(t)
err := db.Put(raw2.Object(), nil)
require.NoError(t, err)
fetchedBlobovniczaID, err := db.IsSmall(raw2.Object().Address())
require.NoError(t, err)
require.Nil(t, fetchedBlobovniczaID)
err = db.Put(raw2.Object(), &blobovniczaID)
require.Error(t, err)
})
}