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}