- package db
-
- import (
- "fmt"
- "testing"
-
- "github.com/stretchr/testify/require"
- "github.com/syndtr/goleveldb/leveldb/opt"
-
- cmn "github.com/tendermint/tendermint/libs/common"
- )
-
- func TestGoLevelDBNewGoLevelDB(t *testing.T) {
- name := fmt.Sprintf("test_%x", cmn.RandStr(12))
- defer cleanupDBDir("", name)
-
- // Test we can't open the db twice for writing
- wr1, err := NewGoLevelDB(name, "")
- require.Nil(t, err)
- _, err = NewGoLevelDB(name, "")
- require.NotNil(t, err)
- wr1.Close() // Close the db to release the lock
-
- // Test we can open the db twice for reading only
- ro1, err := NewGoLevelDBWithOpts(name, "", &opt.Options{ReadOnly: true})
- defer ro1.Close()
- require.Nil(t, err)
- ro2, err := NewGoLevelDBWithOpts(name, "", &opt.Options{ReadOnly: true})
- defer ro2.Close()
- require.Nil(t, err)
- }
-
- func BenchmarkGoLevelDBRandomReadsWrites(b *testing.B) {
- name := fmt.Sprintf("test_%x", cmn.RandStr(12))
- db, err := NewGoLevelDB(name, "")
- if err != nil {
- b.Fatal(err)
- }
- defer func() {
- db.Close()
- cleanupDBDir("", name)
- }()
-
- benchmarkRandomReadsWrites(b, db)
- }
|