Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 17 additions & 0 deletions backend_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -150,6 +150,23 @@ func testBackendGetSetDelete(t *testing.T, backend BackendType) {
err = db.Compact(nil, nil)
require.NoError(t, err)

// Compaction over a specific range should succeed and keep data accessible.
err = db.Set([]byte("cmp/a"), []byte{0x0a})
require.NoError(t, err)
err = db.Set([]byte("cmp/c"), []byte{0x0c})
require.NoError(t, err)

err = db.Compact([]byte("cmp/a"), []byte("cmp/d"))
require.NoError(t, err)

value, err = db.Get([]byte("cmp/a"))
require.NoError(t, err)
require.Equal(t, []byte{0x0a}, value)

value, err = db.Get([]byte("cmp/c"))
require.NoError(t, err)
require.Equal(t, []byte{0x0c}, value)

if strings.Contains(string(backend), "pebbledb") {
// When running the test the folder can't be cleaned up and there
// is a panic on removing the tmp testing directories.
Expand Down
14 changes: 13 additions & 1 deletion pebble_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -37,4 +37,16 @@ func BenchmarkPebbleDBRandomReadsWrites(b *testing.B) {
benchmarkRandomReadsWrites(b, db)
}

// TODO: Add tests for pebble
func TestPebbleDBNewPebbleDB(t *testing.T) {
name := fmt.Sprintf("test_%x", randStr(12))
defer cleanupDBDir("", name)

// Test we can't open the db twice for writing
wr1, err := NewPebbleDB(name, "")
require.NoError(t, err)
t.Cleanup(func() {
require.NoError(t, wr1.Close())
})
_, err = NewPebbleDB(name, "")
require.Error(t, err, "should not be able to open db twice")
}
29 changes: 28 additions & 1 deletion rocksdb_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -33,4 +33,31 @@ func TestRocksDBStats(t *testing.T) {
assert.NotEmpty(t, db.Stats())
}

// TODO: Add tests for rocksdb
func TestRocksDBNewRocksDB(t *testing.T) {
name := fmt.Sprintf("test_%x", randStr(12))
defer cleanupDBDir("", name)

// Test we can't open the db twice for writing
wr1, err := NewRocksDB(name, "")
require.NoError(t, err)
t.Cleanup(func() {
require.NoError(t, wr1.Close())
})
_, err = NewRocksDB(name, "")
require.Error(t, err, "should not be able to open db twice")
}

func BenchmarkRocksDBRandomReadsWrites(b *testing.B) {
name := fmt.Sprintf("test_%x", randStr(12))
db, err := NewRocksDB(name, "")
if err != nil {
b.Fatal(err)
}
defer func() {
err = db.Close()
require.NoError(b, err)
cleanupDBDir("", name)
}()

benchmarkRandomReadsWrites(b, db)
}
Loading