https://github.com/jackc/pgx/pull/2120
(t *testing.T)
| 557 | |
| 558 | // https://github.com/jackc/pgx/pull/2120 |
| 559 | func TestConcurrentUsage(t *testing.T) { |
| 560 | t.Parallel() |
| 561 | |
| 562 | ctx, cancel := context.WithTimeout(context.Background(), 120*time.Second) |
| 563 | defer cancel() |
| 564 | |
| 565 | logger := &testLogger{} |
| 566 | tracer := &tracelog.TraceLog{ |
| 567 | Logger: logger, |
| 568 | LogLevel: tracelog.LogLevelTrace, |
| 569 | } |
| 570 | |
| 571 | config, err := pgxpool.ParseConfig(os.Getenv("PGX_TEST_DATABASE")) |
| 572 | require.NoError(t, err) |
| 573 | config.ConnConfig.Tracer = tracer |
| 574 | |
| 575 | for range 50 { |
| 576 | func() { |
| 577 | pool, err := pgxpool.NewWithConfig(ctx, config) |
| 578 | require.NoError(t, err) |
| 579 | |
| 580 | defer pool.Close() |
| 581 | |
| 582 | eg := errgroup.Group{} |
| 583 | |
| 584 | for range 5 { |
| 585 | eg.Go(func() error { |
| 586 | _, err := pool.Exec(ctx, `select 1`) |
| 587 | return err |
| 588 | }) |
| 589 | } |
| 590 | |
| 591 | err = eg.Wait() |
| 592 | require.NoError(t, err) |
| 593 | }() |
| 594 | } |
| 595 | } |
nothing calls this directly
no test coverage detected