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

Function TestTx_CopyFile_Error_Normal

tx_test.go:619–642  ·  view source on GitHub ↗

Ensure that Copy handles write errors right.

(t *testing.T)

Source from the content-addressed store, hash-verified

617
618// Ensure that Copy handles write errors right.
619func TestTx_CopyFile_Error_Normal(t *testing.T) {
620 db := btesting.MustCreateDB(t)
621 if err := db.Update(func(tx *bolt.Tx) error {
622 b, err := tx.CreateBucket([]byte("widgets"))
623 if err != nil {
624 t.Fatal(err)
625 }
626 if err := b.Put([]byte("foo"), []byte("bar")); err != nil {
627 t.Fatal(err)
628 }
629 if err := b.Put([]byte("baz"), []byte("bat")); err != nil {
630 t.Fatal(err)
631 }
632 return nil
633 }); err != nil {
634 t.Fatal(err)
635 }
636
637 if err := db.View(func(tx *bolt.Tx) error {
638 return tx.Copy(&failWriter{3 * db.Info().PageSize})
639 }); err == nil || err.Error() != "error injected for tests" {
640 t.Fatalf("unexpected error: %v", err)
641 }
642}
643
644// TestTx_Rollback ensures there is no error when tx rollback whether we sync freelist or not.
645func TestTx_Rollback(t *testing.T) {

Callers

nothing calls this directly

Calls 10

MustCreateDBFunction · 0.92
UpdateMethod · 0.80
ViewMethod · 0.80
FatalMethod · 0.65
InfoMethod · 0.65
ErrorMethod · 0.65
FatalfMethod · 0.65
CreateBucketMethod · 0.45
PutMethod · 0.45
CopyMethod · 0.45

Tested by

no test coverage detected