aboutsummaryrefslogtreecommitdiff
path: root/bucket_test.go
diff options
context:
space:
mode:
authorBen Johnson <benbjohnson@yahoo.com>2014-06-13 16:02:47 -0600
committerBen Johnson <benbjohnson@yahoo.com>2014-06-13 16:02:47 -0600
commit0329b03f58799ab8e51e7567f836c80c24258a16 (patch)
treefda84a12d1bca54725f40eb901a0b914a126f159 /bucket_test.go
parentMerge pull request #194 from benbjohnson/fix-deadlock (diff)
parentFix freelist rollback. (diff)
downloaddedo-0329b03f58799ab8e51e7567f836c80c24258a16.tar.gz
dedo-0329b03f58799ab8e51e7567f836c80c24258a16.tar.xz
Merge pull request #193 from benbjohnson/check-freelist-overflow
Check for freelist overflow
Diffstat (limited to 'bucket_test.go')
-rw-r--r--bucket_test.go11
1 files changed, 7 insertions, 4 deletions
diff --git a/bucket_test.go b/bucket_test.go
index 21ddfca..7e959d0 100644
--- a/bucket_test.go
+++ b/bucket_test.go
@@ -190,9 +190,9 @@ func TestBucket_Delete_Large(t *testing.T) {
})
}
-// Ensure that deleting a large set of keys will work correctly.
-// Reported by Jordan Sherer: https://github.com/boltdb/bolt/issues/184
-func TestBucket_Delete_Large2(t *testing.T) {
+// Deleting a very large list of keys will overflow the freelist.
+// https://github.com/boltdb/bolt/issues/192
+func TestBucket_Delete_ErrFreelistOverflow(t *testing.T) {
if testing.Short() {
t.Skip("skipping test in short mode.")
}
@@ -223,7 +223,7 @@ func TestBucket_Delete_Large2(t *testing.T) {
}
// Delete all of them in one large transaction
- db.Update(func(tx *Tx) error {
+ err := db.Update(func(tx *Tx) error {
b := tx.Bucket([]byte("0"))
c := b.Cursor()
for k, _ := c.First(); k != nil; k, _ = c.Next() {
@@ -231,6 +231,9 @@ func TestBucket_Delete_Large2(t *testing.T) {
}
return nil
})
+
+ // Check that a freelist overflow occurred.
+ assert.Equal(t, ErrFreelistOverflow, err)
})
}