Ensure bucket can set and update its sequence number.
(t *testing.T)
| 816 | |
| 817 | // Ensure bucket can set and update its sequence number. |
| 818 | func TestBucket_Sequence(t *testing.T) { |
| 819 | db := btesting.MustCreateDB(t) |
| 820 | |
| 821 | if err := db.Update(func(tx *bolt.Tx) error { |
| 822 | bkt, err := tx.CreateBucket([]byte("0")) |
| 823 | if err != nil { |
| 824 | t.Fatal(err) |
| 825 | } |
| 826 | |
| 827 | // Retrieve sequence. |
| 828 | if v := bkt.Sequence(); v != 0 { |
| 829 | t.Fatalf("unexpected sequence: %d", v) |
| 830 | } |
| 831 | |
| 832 | // Update sequence. |
| 833 | if err := bkt.SetSequence(1000); err != nil { |
| 834 | t.Fatal(err) |
| 835 | } |
| 836 | |
| 837 | // Read sequence again. |
| 838 | if v := bkt.Sequence(); v != 1000 { |
| 839 | t.Fatalf("unexpected sequence: %d", v) |
| 840 | } |
| 841 | |
| 842 | return nil |
| 843 | }); err != nil { |
| 844 | t.Fatal(err) |
| 845 | } |
| 846 | |
| 847 | // Verify sequence in separate transaction. |
| 848 | if err := db.View(func(tx *bolt.Tx) error { |
| 849 | if v := tx.Bucket([]byte("0")).Sequence(); v != 1000 { |
| 850 | t.Fatalf("unexpected sequence: %d", v) |
| 851 | } |
| 852 | return nil |
| 853 | }); err != nil { |
| 854 | t.Fatal(err) |
| 855 | } |
| 856 | } |
| 857 | |
| 858 | // Ensure that a bucket can return an autoincrementing sequence. |
| 859 | func TestBucket_NextSequence(t *testing.T) { |
nothing calls this directly
no test coverage detected