(t *testing.T)
| 217 | } |
| 218 | |
| 219 | func 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 | |
| 267 | func TestBucket_MoveBucket_DiffTx(t *testing.T) { |
| 268 | testCases := []struct { |
nothing calls this directly
no test coverage detected