Skip to content

Commit f49a671

Browse files
authored
test: add unit tests for rocksdb and pebbledb (#284)
* add unit tests for rocksdb and pebbledb * update unit tests * update test * update test * update test
1 parent 221f13b commit f49a671

File tree

3 files changed

+58
-2
lines changed

3 files changed

+58
-2
lines changed

backend_test.go

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -150,6 +150,23 @@ func testBackendGetSetDelete(t *testing.T, backend BackendType) {
150150
err = db.Compact(nil, nil)
151151
require.NoError(t, err)
152152

153+
// Compaction over a specific range should succeed and keep data accessible.
154+
err = db.Set([]byte("cmp/a"), []byte{0x0a})
155+
require.NoError(t, err)
156+
err = db.Set([]byte("cmp/c"), []byte{0x0c})
157+
require.NoError(t, err)
158+
159+
err = db.Compact([]byte("cmp/a"), []byte("cmp/d"))
160+
require.NoError(t, err)
161+
162+
value, err = db.Get([]byte("cmp/a"))
163+
require.NoError(t, err)
164+
require.Equal(t, []byte{0x0a}, value)
165+
166+
value, err = db.Get([]byte("cmp/c"))
167+
require.NoError(t, err)
168+
require.Equal(t, []byte{0x0c}, value)
169+
153170
if strings.Contains(string(backend), "pebbledb") {
154171
// When running the test the folder can't be cleaned up and there
155172
// is a panic on removing the tmp testing directories.

pebble_test.go

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,4 +37,16 @@ func BenchmarkPebbleDBRandomReadsWrites(b *testing.B) {
3737
benchmarkRandomReadsWrites(b, db)
3838
}
3939

40-
// TODO: Add tests for pebble
40+
func TestPebbleDBNewPebbleDB(t *testing.T) {
41+
name := fmt.Sprintf("test_%x", randStr(12))
42+
defer cleanupDBDir("", name)
43+
44+
// Test we can't open the db twice for writing
45+
wr1, err := NewPebbleDB(name, "")
46+
require.NoError(t, err)
47+
t.Cleanup(func() {
48+
require.NoError(t, wr1.Close())
49+
})
50+
_, err = NewPebbleDB(name, "")
51+
require.Error(t, err, "should not be able to open db twice")
52+
}

rocksdb_test.go

Lines changed: 28 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,4 +33,31 @@ func TestRocksDBStats(t *testing.T) {
3333
assert.NotEmpty(t, db.Stats())
3434
}
3535

36-
// TODO: Add tests for rocksdb
36+
func TestRocksDBNewRocksDB(t *testing.T) {
37+
name := fmt.Sprintf("test_%x", randStr(12))
38+
defer cleanupDBDir("", name)
39+
40+
// Test we can't open the db twice for writing
41+
wr1, err := NewRocksDB(name, "")
42+
require.NoError(t, err)
43+
t.Cleanup(func() {
44+
require.NoError(t, wr1.Close())
45+
})
46+
_, err = NewRocksDB(name, "")
47+
require.Error(t, err, "should not be able to open db twice")
48+
}
49+
50+
func BenchmarkRocksDBRandomReadsWrites(b *testing.B) {
51+
name := fmt.Sprintf("test_%x", randStr(12))
52+
db, err := NewRocksDB(name, "")
53+
if err != nil {
54+
b.Fatal(err)
55+
}
56+
defer func() {
57+
err = db.Close()
58+
require.NoError(b, err)
59+
cleanupDBDir("", name)
60+
}()
61+
62+
benchmarkRandomReadsWrites(b, db)
63+
}

0 commit comments

Comments
 (0)