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

Function TestBucket_Delete_Large

bucket_test.go:330–373  ·  view source on GitHub ↗

Ensure that deleting a large set of keys will work correctly.

(t *testing.T)

Source from the content-addressed store, hash-verified

328
329// Ensure that deleting a large set of keys will work correctly.
330func TestBucket_Delete_Large(t *testing.T) {
331 db := btesting.MustCreateDB(t)
332
333 if err := db.Update(func(tx *bolt.Tx) error {
334 b, err := tx.CreateBucket([]byte("widgets"))
335 if err != nil {
336 t.Fatal(err)
337 }
338
339 for i := 0; i < 100; i++ {
340 if err := b.Put([]byte(strconv.Itoa(i)), []byte(strings.Repeat("*", 1024))); err != nil {
341 t.Fatal(err)
342 }
343 }
344
345 return nil
346 }); err != nil {
347 t.Fatal(err)
348 }
349
350 if err := db.Update(func(tx *bolt.Tx) error {
351 b := tx.Bucket([]byte("widgets"))
352 for i := 0; i < 100; i++ {
353 if err := b.Delete([]byte(strconv.Itoa(i))); err != nil {
354 t.Fatal(err)
355 }
356 }
357 return nil
358 }); err != nil {
359 t.Fatal(err)
360 }
361
362 if err := db.View(func(tx *bolt.Tx) error {
363 b := tx.Bucket([]byte("widgets"))
364 for i := 0; i < 100; i++ {
365 if v := b.Get([]byte(strconv.Itoa(i))); v != nil {
366 t.Fatalf("unexpected value: %v, i=%d", v, i)
367 }
368 }
369 return nil
370 }); err != nil {
371 t.Fatal(err)
372 }
373}
374
375// Deleting a very large list of keys will cause the freelist to use overflow.
376func TestBucket_Delete_FreelistOverflow(t *testing.T) {

Callers

nothing calls this directly

Calls 10

MustCreateDBFunction · 0.92
UpdateMethod · 0.80
ViewMethod · 0.80
FatalMethod · 0.65
FatalfMethod · 0.65
CreateBucketMethod · 0.45
PutMethod · 0.45
BucketMethod · 0.45
DeleteMethod · 0.45
GetMethod · 0.45

Tested by

no test coverage detected