MCPcopy
hub / github.com/etcd-io/bbolt / TestCursor_QuickCheck_BucketsOnly

Function TestCursor_QuickCheck_BucketsOnly

cursor_test.go:797–835  ·  view source on GitHub ↗

Ensure that a Tx cursor can iterate over subbuckets.

(t *testing.T)

Source from the content-addressed store, hash-verified

795
796// Ensure that a Tx cursor can iterate over subbuckets.
797func TestCursor_QuickCheck_BucketsOnly(t *testing.T) {
798 db := btesting.MustCreateDB(t)
799
800 if err := db.Update(func(tx *bolt.Tx) error {
801 b, err := tx.CreateBucket([]byte("widgets"))
802 if err != nil {
803 t.Fatal(err)
804 }
805 if _, err := b.CreateBucket([]byte("foo")); err != nil {
806 t.Fatal(err)
807 }
808 if _, err := b.CreateBucket([]byte("bar")); err != nil {
809 t.Fatal(err)
810 }
811 if _, err := b.CreateBucket([]byte("baz")); err != nil {
812 t.Fatal(err)
813 }
814 return nil
815 }); err != nil {
816 t.Fatal(err)
817 }
818
819 if err := db.View(func(tx *bolt.Tx) error {
820 var names []string
821 c := tx.Bucket([]byte("widgets")).Cursor()
822 for k, v := c.First(); k != nil; k, v = c.Next() {
823 names = append(names, string(k))
824 if v != nil {
825 t.Fatalf("unexpected value: %v", v)
826 }
827 }
828 if !reflect.DeepEqual(names, []string{"bar", "baz", "foo"}) {
829 t.Fatalf("unexpected names: %+v", names)
830 }
831 return nil
832 }); err != nil {
833 t.Fatal(err)
834 }
835}
836
837// Ensure that a Tx cursor can reverse iterate over subbuckets.
838func TestCursor_QuickCheck_BucketsOnly_Reverse(t *testing.T) {

Callers

nothing calls this directly

Calls 10

MustCreateDBFunction · 0.92
UpdateMethod · 0.80
ViewMethod · 0.80
FirstMethod · 0.80
NextMethod · 0.80
FatalMethod · 0.65
FatalfMethod · 0.65
CreateBucketMethod · 0.45
CursorMethod · 0.45
BucketMethod · 0.45

Tested by

no test coverage detected