(t *testing.T)
| 736 | } |
| 737 | |
| 738 | func TestBeginTxContextCancel(t *testing.T) { |
| 739 | testWithAllQueryExecModes(t, func(t *testing.T, db *sql.DB) { |
| 740 | skipCockroachDB(t, db, "CockroachDB auto commits DDL by default") |
| 741 | |
| 742 | _, err := db.Exec("drop table if exists t") |
| 743 | require.NoError(t, err) |
| 744 | |
| 745 | ctx, cancelFn := context.WithCancel(context.Background()) |
| 746 | |
| 747 | tx, err := db.BeginTx(ctx, nil) |
| 748 | require.NoError(t, err) |
| 749 | |
| 750 | _, err = tx.Exec("create table t(id serial)") |
| 751 | require.NoError(t, err) |
| 752 | |
| 753 | cancelFn() |
| 754 | |
| 755 | err = tx.Commit() |
| 756 | if err != context.Canceled && err != sql.ErrTxDone { |
| 757 | t.Fatalf("err => %v, want %v or %v", err, context.Canceled, sql.ErrTxDone) |
| 758 | } |
| 759 | |
| 760 | var n int |
| 761 | err = db.QueryRow("select count(*) from t").Scan(&n) |
| 762 | var pgErr *pgconn.PgError |
| 763 | if !errors.As(err, &pgErr) || pgErr.Code != "42P01" { |
| 764 | t.Fatalf(`err => %v, want PgError{Code: "42P01"}`, err) |
| 765 | } |
| 766 | }) |
| 767 | } |
| 768 | |
| 769 | func TestConnRaw(t *testing.T) { |
| 770 | testWithAllQueryExecModes(t, func(t *testing.T, db *sql.DB) { |
nothing calls this directly
no test coverage detected