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

Function TestBucket_ForEachBucket_NoBuckets

bucket_test.go:1072–1107  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

1070}
1071
1072func TestBucket_ForEachBucket_NoBuckets(t *testing.T) {
1073 db := btesting.MustCreateDB(t)
1074
1075 verifyReads := func(b *bolt.Bucket) {
1076 var items [][]byte
1077 err := b.ForEachBucket(func(k []byte) error {
1078 items = append(items, k)
1079 return nil
1080 })
1081 assert.NoErrorf(t, err, "b.ForEach failed")
1082 assert.Emptyf(t, items, "what we iterated (ForEach) is not what we put")
1083 }
1084
1085 err := db.Update(func(tx *bolt.Tx) error {
1086 b, err := tx.CreateBucket([]byte("widgets"))
1087 require.NoError(t, err, "bucket creation failed")
1088
1089 require.NoErrorf(t, b.Put([]byte("foo"), []byte("0000")), "put 'foo' failed")
1090 require.NoErrorf(t, err, "creation of subbucket failed")
1091 require.NoErrorf(t, b.Put([]byte("baz"), []byte("0001")), "put 'baz' failed")
1092 require.NoErrorf(t, err, "creation of subbucket failed")
1093
1094 verifyReads(b)
1095
1096 return nil
1097 })
1098 require.NoErrorf(t, err, "db.Update failed")
1099
1100 err = db.View(func(tx *bolt.Tx) error {
1101 b := tx.Bucket([]byte("widgets"))
1102 require.NotNil(t, b, "bucket opening failed")
1103 verifyReads(b)
1104 return nil
1105 })
1106 assert.NoErrorf(t, err, "db.View failed")
1107}
1108
1109// Ensure a database can stop iteration early.
1110func TestBucket_ForEach_ShortCircuit(t *testing.T) {

Callers

nothing calls this directly

Calls 7

MustCreateDBFunction · 0.92
ForEachBucketMethod · 0.80
UpdateMethod · 0.80
ViewMethod · 0.80
CreateBucketMethod · 0.45
PutMethod · 0.45
BucketMethod · 0.45

Tested by

no test coverage detected