diff options
author | Ben Johnson <benbjohnson@yahoo.com> | 2016-09-01 15:34:35 -0600 |
---|---|---|
committer | Ben Johnson <benbjohnson@yahoo.com> | 2016-09-05 15:43:02 -0600 |
commit | f5d275b53730adc5a0c988cf79d4fac84c0a3210 (patch) | |
tree | 3402b7e1d9ddcc83102b385181d52bbac81e70d0 /bucket_test.go | |
parent | Merge branch 'compact-db' of https://github.com/vincent-petithory/bolt into v... (diff) | |
download | dedo-f5d275b53730adc5a0c988cf79d4fac84c0a3210.tar.gz dedo-f5d275b53730adc5a0c988cf79d4fac84c0a3210.tar.xz |
Minor bolt compact revisions
Diffstat (limited to 'bucket_test.go')
-rw-r--r-- | bucket_test.go | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/bucket_test.go b/bucket_test.go index 528fec2..cddbe27 100644 --- a/bucket_test.go +++ b/bucket_test.go @@ -782,6 +782,48 @@ func TestBucket_DeleteBucket_IncompatibleValue(t *testing.T) { } } +// Ensure bucket can set and update its sequence number. +func TestBucket_Sequence(t *testing.T) { + db := MustOpenDB() + defer db.MustClose() + + if err := db.Update(func(tx *bolt.Tx) error { + bkt, err := tx.CreateBucket([]byte("0")) + if err != nil { + t.Fatal(err) + } + + // Retrieve sequence. + if v := bkt.Sequence(); v != 0 { + t.Fatalf("unexpected sequence: %d", v) + } + + // Update sequence. + if err := bkt.SetSequence(1000); err != nil { + t.Fatal(err) + } + + // Read sequence again. + if v := bkt.Sequence(); v != 1000 { + t.Fatalf("unexpected sequence: %d", v) + } + + return nil + }); err != nil { + t.Fatal(err) + } + + // Verify sequence in separate transaction. + if err := db.View(func(tx *bolt.Tx) error { + if v := tx.Bucket([]byte("0")).Sequence(); v != 1000 { + t.Fatalf("unexpected sequence: %d", v) + } + return nil + }); err != nil { + t.Fatal(err) + } +} + // Ensure that a bucket can return an autoincrementing sequence. func TestBucket_NextSequence(t *testing.T) { db := MustOpenDB() |