mirror of
https://github.com/taigrr/bitcask
synced 2025-01-18 04:03:17 -08:00
Add unit test for opening bad database with corrupted/invalid datafiles (#105)
This commit is contained in:
parent
5fe19989d4
commit
5ea05fb3c2
@ -796,6 +796,29 @@ func TestOpenErrors(t *testing.T) {
|
||||
_, err = Open(testdir, withBogusOption())
|
||||
assert.Error(err)
|
||||
})
|
||||
|
||||
t.Run("LoadDatafilesError", func(t *testing.T) {
|
||||
testdir, err := ioutil.TempDir("", "bitcask")
|
||||
assert.NoError(err)
|
||||
defer os.RemoveAll(testdir)
|
||||
|
||||
db, err := Open(testdir)
|
||||
assert.NoError(err)
|
||||
|
||||
err = db.Put([]byte("foo"), []byte("bar"))
|
||||
assert.NoError(err)
|
||||
|
||||
err = db.Close()
|
||||
assert.NoError(err)
|
||||
|
||||
// Simulate some horrible that happened to the datafiles!
|
||||
err = os.Rename(filepath.Join(testdir, "000000000.data"), filepath.Join(testdir, "000000000xxx.data"))
|
||||
assert.NoError(err)
|
||||
|
||||
_, err = Open(testdir)
|
||||
assert.Error(err)
|
||||
assert.Equal("strconv.ParseInt: parsing \"000000000xxx\": invalid syntax", err.Error())
|
||||
})
|
||||
}
|
||||
|
||||
func TestCloseErrors(t *testing.T) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user