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

Function TestBucket_DeleteBucket_Nested2

bucket_test.go:653–715  ·  view source on GitHub ↗

Ensure that deleting a bucket causes nested buckets to be deleted after they have been committed.

(t *testing.T)

Source from the content-addressed store, hash-verified

651
652// Ensure that deleting a bucket causes nested buckets to be deleted after they have been committed.
653func TestBucket_DeleteBucket_Nested2(t *testing.T) {
654 db := btesting.MustCreateDB(t)
655
656 if err := db.Update(func(tx *bolt.Tx) error {
657 widgets, err := tx.CreateBucket([]byte("widgets"))
658 if err != nil {
659 t.Fatal(err)
660 }
661
662 foo, err := widgets.CreateBucket([]byte("foo"))
663 if err != nil {
664 t.Fatal(err)
665 }
666
667 bar, err := foo.CreateBucket([]byte("bar"))
668 if err != nil {
669 t.Fatal(err)
670 }
671
672 if err := bar.Put([]byte("baz"), []byte("bat")); err != nil {
673 t.Fatal(err)
674 }
675 return nil
676 }); err != nil {
677 t.Fatal(err)
678 }
679
680 if err := db.Update(func(tx *bolt.Tx) error {
681 widgets := tx.Bucket([]byte("widgets"))
682 if widgets == nil {
683 t.Fatal("expected widgets bucket")
684 }
685
686 foo := widgets.Bucket([]byte("foo"))
687 if foo == nil {
688 t.Fatal("expected foo bucket")
689 }
690
691 bar := foo.Bucket([]byte("bar"))
692 if bar == nil {
693 t.Fatal("expected bar bucket")
694 }
695
696 if v := bar.Get([]byte("baz")); !bytes.Equal(v, []byte("bat")) {
697 t.Fatalf("unexpected value: %v", v)
698 }
699 if err := tx.DeleteBucket([]byte("widgets")); err != nil {
700 t.Fatal(err)
701 }
702 return nil
703 }); err != nil {
704 t.Fatal(err)
705 }
706
707 if err := db.View(func(tx *bolt.Tx) error {
708 if tx.Bucket([]byte("widgets")) != nil {
709 t.Fatal("expected bucket to be deleted")
710 }

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
GetMethod · 0.45
DeleteBucketMethod · 0.45

Tested by

no test coverage detected