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

Function TestPoolBackgroundChecksMinConns

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

Source from the content-addressed store, hash-verified

710}
711
712func TestPoolBackgroundChecksMinConns(t *testing.T) {
713 t.Parallel()
714
715 ctx, cancel := context.WithTimeout(context.Background(), 120*time.Second)
716 defer cancel()
717
718 config, err := pgxpool.ParseConfig(os.Getenv("PGX_TEST_DATABASE"))
719 require.NoError(t, err)
720
721 config.HealthCheckPeriod = 100 * time.Millisecond
722 config.MinConns = 2
723
724 db, err := pgxpool.NewWithConfig(ctx, config)
725 require.NoError(t, err)
726 defer db.Close()
727
728 stats := db.Stat()
729 for !(stats.IdleConns() == 2 && stats.MaxLifetimeDestroyCount() == 0 && stats.NewConnsCount() == 2) && ctx.Err() == nil {
730 time.Sleep(50 * time.Millisecond)
731 stats = db.Stat()
732 }
733 require.EqualValues(t, 2, stats.IdleConns())
734 require.EqualValues(t, 0, stats.MaxLifetimeDestroyCount())
735 require.EqualValues(t, 2, stats.NewConnsCount())
736
737 c, err := db.Acquire(ctx)
738 require.NoError(t, err)
739
740 stats = db.Stat()
741 require.EqualValues(t, 1, stats.IdleConns())
742 require.EqualValues(t, 0, stats.MaxLifetimeDestroyCount())
743 require.EqualValues(t, 2, stats.NewConnsCount())
744
745 err = c.Conn().Close(ctx)
746 require.NoError(t, err)
747 c.Release()
748
749 stats = db.Stat()
750 for !(stats.IdleConns() == 2 && stats.MaxIdleDestroyCount() == 0 && stats.NewConnsCount() == 3) && ctx.Err() == nil {
751 time.Sleep(50 * time.Millisecond)
752 stats = db.Stat()
753 }
754 require.EqualValues(t, 2, stats.TotalConns())
755 require.EqualValues(t, 0, stats.MaxIdleDestroyCount())
756 require.EqualValues(t, 3, stats.NewConnsCount())
757}
758
759func TestPoolExec(t *testing.T) {
760 t.Parallel()

Callers

nothing calls this directly

Calls 13

ParseConfigFunction · 0.92
NewWithConfigFunction · 0.92
StatMethod · 0.80
IdleConnsMethod · 0.80
NewConnsCountMethod · 0.80
AcquireMethod · 0.80
ReleaseMethod · 0.80
MaxIdleDestroyCountMethod · 0.80
TotalConnsMethod · 0.80
CloseMethod · 0.65
ErrMethod · 0.65

Tested by

no test coverage detected