You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

57 lines
1.2 KiB

package leveldb
import (
"github.com/iden3/go-merkletree"
"io/ioutil"
"os"
"testing"
"github.com/iden3/go-merkletree/db/test"
"github.com/stretchr/testify/require"
)
var rmDirs []string
func levelDbStorage(t *testing.T) merkletree.Storage {
dir, err := ioutil.TempDir("", "db")
rmDirs = append(rmDirs, dir)
if err != nil {
t.Fatal(err)
return nil
}
sto, err := NewLevelDbStorage(dir, false)
if err != nil {
t.Fatal(err)
return nil
}
return sto
}
func TestLevelDb(t *testing.T) {
test.TestReturnKnownErrIfNotExists(t, levelDbStorage(t))
test.TestStorageInsertGet(t, levelDbStorage(t))
test.TestStorageWithPrefix(t, levelDbStorage(t))
test.TestConcatTx(t, levelDbStorage(t))
test.TestList(t, levelDbStorage(t))
test.TestIterate(t, levelDbStorage(t))
}
func TestLevelDbInterface(t *testing.T) {
var db merkletree.Storage //nolint:gosimple
dir, err := ioutil.TempDir("", "db")
require.Nil(t, err)
rmDirs = append(rmDirs, dir)
sto, err := NewLevelDbStorage(dir, false)
require.Nil(t, err)
db = sto
require.NotNil(t, db)
}
func TestMain(m *testing.M) {
result := m.Run()
for _, dir := range rmDirs {
os.RemoveAll(dir) //nolint:errcheck,gosec
}
os.Exit(result)
}