frostfs-node/pkg/local_object_storage/metabase/delete_test.go
Leonard Lyubich 0cd05fdca5 [#158] metabase: Implement operation of deleting a group of objects
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2020-11-09 14:07:20 +03:00

71 lines
1.2 KiB
Go

package meta
import (
"testing"
"github.com/nspcc-dev/neofs-api-go/pkg/object"
"github.com/stretchr/testify/require"
)
func BenchmarkDB_Delete(b *testing.B) {
db := newDB(b)
defer releaseDB(db)
var existingAddr *object.Address
for i := 0; i < 10; i++ {
obj := generateObject(b, testPrm{})
existingAddr = obj.Address()
require.NoError(b, db.Put(obj))
}
b.Run("existing address", func(b *testing.B) {
b.ReportAllocs()
b.ResetTimer()
for i := 0; i < b.N; i++ {
err := db.Delete(existingAddr)
b.StopTimer()
require.NoError(b, err)
b.StartTimer()
}
})
b.Run("non-existing address", func(b *testing.B) {
b.ReportAllocs()
b.ResetTimer()
for i := 0; i < b.N; i++ {
b.StopTimer()
addr := object.NewAddress()
addr.SetContainerID(testCID())
addr.SetObjectID(testOID())
b.StartTimer()
err := db.Delete(addr)
b.StopTimer()
require.NoError(b, err)
b.StartTimer()
}
})
}
func TestDB_DeleteObjects(t *testing.T) {
db := newDB(t)
defer releaseDB(db)
o1 := generateObject(t, testPrm{})
o2 := generateObject(t, testPrm{})
require.NoError(t, db.Put(o1))
require.NoError(t, db.Put(o2))
db.DeleteObjects(o1.Address(), o2.Address())
testSelect(t, db, object.SearchFilters{})
}