[#137] metabase: Implement and useful test funcs for work with DB

Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
This commit is contained in:
Leonard Lyubich 2020-11-02 10:55:35 +03:00 committed by Alex Vanin
parent fc2038e929
commit 7704811654
5 changed files with 31 additions and 84 deletions

View file

@ -76,17 +76,9 @@ func TestDB(t *testing.T) {
obj.SetAttributes(a)
path := "test.db"
db := newDB(t)
bdb, err := bbolt.Open(path, 0600, nil)
require.NoError(t, err)
defer func() {
bdb.Close()
os.Remove(path)
}()
db := NewDB(bdb)
defer releaseDB(db)
o := obj.Object()
@ -117,17 +109,9 @@ func TestDB(t *testing.T) {
}
func TestDB_Delete(t *testing.T) {
path := "test.db"
db := newDB(t)
bdb, err := bbolt.Open(path, 0600, nil)
require.NoError(t, err)
defer func() {
bdb.Close()
os.Remove(path)
}()
db := NewDB(bdb)
defer releaseDB(db)
obj := object.NewRaw()
obj.SetContainerID(testCID())
@ -139,7 +123,7 @@ func TestDB_Delete(t *testing.T) {
addr := o.Address()
_, err = db.Get(addr)
_, err := db.Get(addr)
require.NoError(t, err)
fs := objectSDK.SearchFilters{}
@ -156,17 +140,9 @@ func TestDB_Delete(t *testing.T) {
}
func TestDB_SelectProperties(t *testing.T) {
path := "test.db"
db := newDB(t)
bdb, err := bbolt.Open(path, 0600, nil)
require.NoError(t, err)
defer func() {
bdb.Close()
os.Remove(path)
}()
db := NewDB(bdb)
defer releaseDB(db)
parent := object.NewRaw()
parent.SetContainerID(testCID())
@ -243,12 +219,23 @@ func TestDB_Path(t *testing.T) {
bdb, err := bbolt.Open(path, 0600, nil)
require.NoError(t, err)
defer func() {
bdb.Close()
os.Remove(path)
}()
db := NewDB(bdb)
defer releaseDB(db)
require.Equal(t, path, db.Path())
}
func newDB(t testing.TB) *DB {
path := t.Name()
bdb, err := bbolt.Open(path, 0600, nil)
require.NoError(t, err)
return NewDB(bdb)
}
func releaseDB(db *DB) {
db.Close()
os.Remove(db.Path())
}

View file

@ -1,26 +1,16 @@
package meta
import (
"os"
"testing"
"github.com/nspcc-dev/neofs-api-go/pkg/object"
"github.com/stretchr/testify/require"
"go.etcd.io/bbolt"
)
func BenchmarkDB_Delete(b *testing.B) {
path := "delete_test.db"
db := newDB(b)
bdb, err := bbolt.Open(path, 0600, nil)
require.NoError(b, err)
defer func() {
bdb.Close()
os.Remove(path)
}()
db := NewDB(bdb)
defer releaseDB(db)
var existingAddr *object.Address

View file

@ -1,26 +1,16 @@
package meta
import (
"os"
"testing"
"github.com/nspcc-dev/neofs-api-go/pkg/object"
"github.com/stretchr/testify/require"
"go.etcd.io/bbolt"
)
func BenchmarkDB_Get(b *testing.B) {
path := "get_test.db"
db := newDB(b)
bdb, err := bbolt.Open(path, 0600, nil)
require.NoError(b, err)
defer func() {
bdb.Close()
os.Remove(path)
}()
db := NewDB(bdb)
defer releaseDB(db)
var existingAddr *object.Address

View file

@ -4,7 +4,6 @@ import (
"crypto/rand"
"crypto/sha256"
"fmt"
"os"
"testing"
"github.com/nspcc-dev/neofs-api-go/pkg"
@ -13,7 +12,6 @@ import (
"github.com/nspcc-dev/neofs-node/pkg/core/object"
"github.com/nspcc-dev/neofs-node/pkg/util/test"
"github.com/stretchr/testify/require"
"go.etcd.io/bbolt"
)
type testPrm struct {
@ -87,17 +85,9 @@ func generateObject(t require.TestingT, prm testPrm) *object.Object {
}
func BenchmarkDB_Put(b *testing.B) {
path := "put_test.db"
db := newDB(b)
bdb, err := bbolt.Open(path, 0600, nil)
require.NoError(b, err)
defer func() {
bdb.Close()
os.Remove(path)
}()
db := NewDB(bdb)
defer releaseDB(db)
for _, prm := range []testPrm{
{

View file

@ -2,12 +2,10 @@ package meta
import (
"crypto/rand"
"os"
"testing"
objectSDK "github.com/nspcc-dev/neofs-api-go/pkg/object"
"github.com/stretchr/testify/require"
"go.etcd.io/bbolt"
)
func addNFilters(fs *objectSDK.SearchFilters, n int) {
@ -23,17 +21,9 @@ func addNFilters(fs *objectSDK.SearchFilters, n int) {
}
func BenchmarkDB_Select(b *testing.B) {
path := "select_test.db"
db := newDB(b)
bdb, err := bbolt.Open(path, 0600, nil)
require.NoError(b, err)
defer func() {
bdb.Close()
os.Remove(path)
}()
db := NewDB(bdb)
defer releaseDB(db)
for i := 0; i < 100; i++ {
obj := generateObject(b, testPrm{