mirror of
https://github.com/arnaucube/go-merkletree-iden3.git
synced 2026-02-07 19:46:43 +01:00
Add db package
Add own db (storage) package with db.Storage interface, with Memory & Leveldb implementations, and with tests. Adapted with several changes from https://github.com/iden3/go-iden3-core/tree/v0.0.8/db
This commit is contained in:
57
db/leveldb/leveldb_test.go
Normal file
57
db/leveldb/leveldb_test.go
Normal file
@@ -0,0 +1,57 @@
|
||||
package leveldb
|
||||
|
||||
import (
|
||||
"io/ioutil"
|
||||
"os"
|
||||
"testing"
|
||||
|
||||
"github.com/iden3/go-merkletree/db"
|
||||
"github.com/iden3/go-merkletree/db/test"
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
var rmDirs []string
|
||||
|
||||
func levelDbStorage(t *testing.T) db.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 db.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)
|
||||
}
|
||||
os.Exit(result)
|
||||
}
|
||||
Reference in New Issue
Block a user