Fix: possible fail in goroutine after test has completed

pull/1624/head
Jack Christensen 2023-05-29 10:43:15 -05:00
parent f93b42b6ac
commit 0ec512b504
1 changed files with 5 additions and 1 deletions

View File

@ -2233,13 +2233,14 @@ func TestConnCancelRequest(t *testing.T) {
multiResult := pgConn.Exec(ctx, "select 'Hello, world', pg_sleep(2)")
errChan := make(chan error)
go func() {
// The query is actually sent when multiResult.NextResult() is called. So wait to ensure it is sent.
// Once Flush is available this could use that instead.
time.Sleep(500 * time.Millisecond)
err := pgConn.CancelRequest(ctx)
require.NoError(t, err)
errChan <- err
}()
for multiResult.NextResult() {
@ -2249,6 +2250,9 @@ func TestConnCancelRequest(t *testing.T) {
require.IsType(t, &pgconn.PgError{}, err)
require.Equal(t, "57014", err.(*pgconn.PgError).Code)
err = <-errChan
require.NoError(t, err)
ensureConnValid(t, pgConn)
}