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

Function TestBucket_MoveBucket_DiffDB

movebucket_test.go:219–265  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

217}
218
219func TestBucket_MoveBucket_DiffDB(t *testing.T) {
220 srcBucketPath := []string{"sb1", "sb2"}
221 dstBucketPath := []string{"db1", "db2"}
222 bucketToMove := "bucketToMove"
223
224 var srcBucket *bbolt.Bucket
225
226 t.Log("Creating source bucket and populate some data")
227 srcDB := btesting.MustCreateDBWithOption(t, &bbolt.Options{PageSize: 4096})
228 err := srcDB.Update(func(tx *bbolt.Tx) error {
229 srcBucket = prepareBuckets(t, tx, srcBucketPath...)
230 return nil
231 })
232 require.NoError(t, err)
233 defer func() {
234 require.NoError(t, srcDB.Close())
235 }()
236
237 t.Log("Creating target bucket and populate some data")
238 dstDB := btesting.MustCreateDBWithOption(t, &bbolt.Options{PageSize: 4096})
239 err = dstDB.Update(func(tx *bbolt.Tx) error {
240 prepareBuckets(t, tx, dstBucketPath...)
241 return nil
242 })
243 require.NoError(t, err)
244 defer func() {
245 require.NoError(t, dstDB.Close())
246 }()
247
248 t.Log("Reading source bucket in a separate RWTx")
249 sTx, sErr := srcDB.Begin(true)
250 require.NoError(t, sErr)
251 defer func() {
252 require.NoError(t, sTx.Rollback())
253 }()
254 srcBucket = prepareBuckets(t, sTx, srcBucketPath...)
255
256 t.Log("Moving the sub-bucket in a separate RWTx")
257 err = dstDB.Update(func(tx *bbolt.Tx) error {
258 dstBucket := prepareBuckets(t, tx, dstBucketPath...)
259 mErr := srcBucket.MoveBucket([]byte(bucketToMove), dstBucket)
260 require.Equal(t, errors.ErrDifferentDB, mErr)
261
262 return nil
263 })
264 require.NoError(t, err)
265}
266
267func TestBucket_MoveBucket_DiffTx(t *testing.T) {
268 testCases := []struct {

Callers

nothing calls this directly

Calls 7

MoveBucketMethod · 0.95
MustCreateDBWithOptionFunction · 0.92
prepareBucketsFunction · 0.85
UpdateMethod · 0.80
BeginMethod · 0.80
RollbackMethod · 0.65
CloseMethod · 0.45

Tested by

no test coverage detected