mirror of
https://github.com/fluencelabs/tendermint
synced 2025-06-23 01:41:31 +00:00
db: fixes to fsdb and clevledb
This commit is contained in:
@ -15,30 +15,26 @@ func testBackendGetSetDelete(t *testing.T, backend string) {
|
|||||||
dir, dirname := cmn.Tempdir(fmt.Sprintf("test_backend_%s_", backend))
|
dir, dirname := cmn.Tempdir(fmt.Sprintf("test_backend_%s_", backend))
|
||||||
defer dir.Close()
|
defer dir.Close()
|
||||||
db := NewDB("testdb", backend, dirname)
|
db := NewDB("testdb", backend, dirname)
|
||||||
require.Nil(t, db.Get([]byte("")))
|
key := []byte("abc")
|
||||||
|
require.Nil(t, db.Get(key))
|
||||||
|
|
||||||
// Set empty ("")
|
// Set empty ("")
|
||||||
db.Set([]byte(""), []byte(""))
|
db.Set(key, []byte(""))
|
||||||
require.NotNil(t, db.Get([]byte("")))
|
require.NotNil(t, db.Get(key))
|
||||||
require.Empty(t, db.Get([]byte("")))
|
require.Empty(t, db.Get(key))
|
||||||
|
|
||||||
// Set empty (nil)
|
// Set empty (nil)
|
||||||
db.Set([]byte(""), nil)
|
db.Set(key, nil)
|
||||||
require.NotNil(t, db.Get([]byte("")))
|
require.NotNil(t, db.Get(key))
|
||||||
require.Empty(t, db.Get([]byte("")))
|
require.Empty(t, db.Get(key))
|
||||||
|
|
||||||
// Delete
|
// Delete
|
||||||
db.Delete([]byte(""))
|
db.Delete(key)
|
||||||
require.Nil(t, db.Get([]byte("")))
|
require.Nil(t, db.Get(key))
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestBackendsGetSetDelete(t *testing.T) {
|
func TestBackendsGetSetDelete(t *testing.T) {
|
||||||
for dbType, _ := range backends {
|
for dbType, _ := range backends {
|
||||||
if dbType == "fsdb" {
|
|
||||||
// TODO: handle
|
|
||||||
// fsdb cant deal with length 0 keys
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
testBackendGetSetDelete(t, dbType)
|
testBackendGetSetDelete(t, dbType)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -48,6 +48,7 @@ func NewCLevelDB(name string, dir string) (*CLevelDB, error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (db *CLevelDB) Get(key []byte) []byte {
|
func (db *CLevelDB) Get(key []byte) []byte {
|
||||||
|
panicNilKey(key)
|
||||||
res, err := db.db.Get(db.ro, key)
|
res, err := db.db.Get(db.ro, key)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
panic(err)
|
panic(err)
|
||||||
@ -56,10 +57,12 @@ func (db *CLevelDB) Get(key []byte) []byte {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (db *CLevelDB) Has(key []byte) bool {
|
func (db *CLevelDB) Has(key []byte) bool {
|
||||||
|
panicNilKey(key)
|
||||||
panic("not implemented yet")
|
panic("not implemented yet")
|
||||||
}
|
}
|
||||||
|
|
||||||
func (db *CLevelDB) Set(key []byte, value []byte) {
|
func (db *CLevelDB) Set(key []byte, value []byte) {
|
||||||
|
panicNilKey(key)
|
||||||
err := db.db.Put(db.wo, key, value)
|
err := db.db.Put(db.wo, key, value)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
panic(err)
|
panic(err)
|
||||||
@ -67,6 +70,7 @@ func (db *CLevelDB) Set(key []byte, value []byte) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (db *CLevelDB) SetSync(key []byte, value []byte) {
|
func (db *CLevelDB) SetSync(key []byte, value []byte) {
|
||||||
|
panicNilKey(key)
|
||||||
err := db.db.Put(db.woSync, key, value)
|
err := db.db.Put(db.woSync, key, value)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
panic(err)
|
panic(err)
|
||||||
@ -74,6 +78,7 @@ func (db *CLevelDB) SetSync(key []byte, value []byte) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (db *CLevelDB) Delete(key []byte) {
|
func (db *CLevelDB) Delete(key []byte) {
|
||||||
|
panicNilKey(key)
|
||||||
err := db.db.Delete(db.wo, key)
|
err := db.db.Delete(db.wo, key)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
panic(err)
|
panic(err)
|
||||||
@ -81,6 +86,7 @@ func (db *CLevelDB) Delete(key []byte) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (db *CLevelDB) DeleteSync(key []byte) {
|
func (db *CLevelDB) DeleteSync(key []byte) {
|
||||||
|
panicNilKey(key)
|
||||||
err := db.db.Delete(db.woSync, key)
|
err := db.db.Delete(db.woSync, key)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
panic(err)
|
panic(err)
|
||||||
|
@ -119,7 +119,8 @@ func (db *FSDB) DeleteSync(key []byte) {
|
|||||||
// NOTE: Implements atomicSetDeleter.
|
// NOTE: Implements atomicSetDeleter.
|
||||||
func (db *FSDB) DeleteNoLock(key []byte) {
|
func (db *FSDB) DeleteNoLock(key []byte) {
|
||||||
panicNilKey(key)
|
panicNilKey(key)
|
||||||
err := remove(string(key))
|
path := db.nameToPath(key)
|
||||||
|
err := remove(path)
|
||||||
if os.IsNotExist(err) {
|
if os.IsNotExist(err) {
|
||||||
return
|
return
|
||||||
} else if err != nil {
|
} else if err != nil {
|
||||||
@ -210,7 +211,7 @@ func read(path string) ([]byte, error) {
|
|||||||
// Write some bytes from a file.
|
// Write some bytes from a file.
|
||||||
// CONTRACT: returns os errors directly without wrapping.
|
// CONTRACT: returns os errors directly without wrapping.
|
||||||
func write(path string, d []byte) error {
|
func write(path string, d []byte) error {
|
||||||
f, err := os.OpenFile(path, os.O_CREATE|os.O_EXCL|os.O_WRONLY, keyPerm)
|
f, err := os.OpenFile(path, os.O_CREATE|os.O_WRONLY, keyPerm)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user