arnaucube
arnaucube/go-merkletree-iden3Public Self-hosted repository
go-merkletree-iden3/db/leveldb/leveldb_test.go
db/leveldb/leveldb_test.goRaw
 1package leveldb
 2
 3import (
 4	"io/ioutil"
 5	"os"
 6	"testing"
 7
 8	"github.com/iden3/go-merkletree/db"
 9	"github.com/iden3/go-merkletree/db/test"
10	"github.com/stretchr/testify/require"
11)
12
13var rmDirs []string
14
15func levelDbStorage(t *testing.T) db.Storage {
16	dir, err := ioutil.TempDir("", "db")
17	rmDirs = append(rmDirs, dir)
18	if err != nil {
19		t.Fatal(err)
20		return nil
21	}
22	sto, err := NewLevelDbStorage(dir, false)
23	if err != nil {
24		t.Fatal(err)
25		return nil
26	}
27	return sto
28}
29
30func TestLevelDb(t *testing.T) {
31	test.TestReturnKnownErrIfNotExists(t, levelDbStorage(t))
32	test.TestStorageInsertGet(t, levelDbStorage(t))
33	test.TestStorageWithPrefix(t, levelDbStorage(t))
34	test.TestConcatTx(t, levelDbStorage(t))
35	test.TestList(t, levelDbStorage(t))
36	test.TestIterate(t, levelDbStorage(t))
37}
38
39func TestLevelDbInterface(t *testing.T) {
40	var db db.Storage //nolint:gosimple
41
42	dir, err := ioutil.TempDir("", "db")
43	require.Nil(t, err)
44	rmDirs = append(rmDirs, dir)
45	sto, err := NewLevelDbStorage(dir, false)
46	require.Nil(t, err)
47	db = sto
48	require.NotNil(t, db)
49}
50
51func TestMain(m *testing.M) {
52	result := m.Run()
53	for _, dir := range rmDirs {
54		os.RemoveAll(dir) //nolint:errcheck,gosec
55	}
56	os.Exit(result)
57}