aboutsummaryrefslogtreecommitdiff
path: root/bucket_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'bucket_test.go')
-rw-r--r--bucket_test.go27
1 files changed, 27 insertions, 0 deletions
diff --git a/bucket_test.go b/bucket_test.go
index 90e704a..883fa03 100644
--- a/bucket_test.go
+++ b/bucket_test.go
@@ -490,6 +490,33 @@ func TestBucket_NextSequence(t *testing.T) {
})
}
+// Ensure that a bucket will persist an autoincrementing sequence even if its
+// the only thing updated on the bucket.
+// https://github.com/boltdb/bolt/issues/296
+func TestBucket_NextSequence_Persist(t *testing.T) {
+ db := NewTestDB()
+ defer db.Close()
+ db.Update(func(tx *bolt.Tx) error {
+ _, _ = tx.CreateBucket([]byte("widgets"))
+ return nil
+ })
+
+ db.Update(func(tx *bolt.Tx) error {
+ _, _ = tx.Bucket([]byte("widgets")).NextSequence()
+ return nil
+ })
+
+ db.Update(func(tx *bolt.Tx) error {
+ seq, err := tx.Bucket([]byte("widgets")).NextSequence()
+ if err != nil {
+ t.Fatalf("unexpected error: %s", err)
+ } else if seq != 2 {
+ t.Fatalf("unexpected sequence: %d", seq)
+ }
+ return nil
+ })
+}
+
// Ensure that retrieving the next sequence on a read-only bucket returns an error.
func TestBucket_NextSequence_ReadOnly(t *testing.T) {
db := NewTestDB()