(t *testing.T)
| 710 | } |
| 711 | |
| 712 | func 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 | |
| 759 | func TestPoolExec(t *testing.T) { |
| 760 | t.Parallel() |
nothing calls this directly
no test coverage detected