MCPcopy
hub / github.com/jackc/pgx / TestConnReleaseClosesConnInTransaction

Function TestConnReleaseClosesConnInTransaction

pgxpool/pool_test.go:958–990  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

956}
957
958func TestConnReleaseClosesConnInTransaction(t *testing.T) {
959 t.Parallel()
960
961 ctx, cancel := context.WithTimeout(context.Background(), 120*time.Second)
962 defer cancel()
963
964 pool, err := pgxpool.New(ctx, os.Getenv("PGX_TEST_DATABASE"))
965 require.NoError(t, err)
966 defer pool.Close()
967
968 c, err := pool.Acquire(ctx)
969 require.NoError(t, err)
970
971 pid := c.Conn().PgConn().PID()
972
973 assert.Equal(t, byte('I'), c.Conn().PgConn().TxStatus())
974
975 _, err = c.Exec(ctx, "begin")
976 assert.NoError(t, err)
977
978 assert.Equal(t, byte('T'), c.Conn().PgConn().TxStatus())
979
980 c.Release()
981 waitForReleaseToComplete()
982
983 c, err = pool.Acquire(ctx)
984 require.NoError(t, err)
985
986 assert.NotEqual(t, pid, c.Conn().PgConn().PID())
987 assert.Equal(t, byte('I'), c.Conn().PgConn().TxStatus())
988
989 c.Release()
990}
991
992func TestConnReleaseDestroysClosedConn(t *testing.T) {
993 t.Parallel()

Callers

nothing calls this directly

Calls 10

NewFunction · 0.92
waitForReleaseToCompleteFunction · 0.85
AcquireMethod · 0.80
PIDMethod · 0.80
PgConnMethod · 0.80
TxStatusMethod · 0.80
ReleaseMethod · 0.80
CloseMethod · 0.65
ConnMethod · 0.65
ExecMethod · 0.65

Tested by

no test coverage detected