Fix: possible fail in goroutine after test has completed
This commit is contained in:
@@ -2233,13 +2233,14 @@ func TestConnCancelRequest(t *testing.T) {
|
|||||||
|
|
||||||
multiResult := pgConn.Exec(ctx, "select 'Hello, world', pg_sleep(2)")
|
multiResult := pgConn.Exec(ctx, "select 'Hello, world', pg_sleep(2)")
|
||||||
|
|
||||||
|
errChan := make(chan error)
|
||||||
go func() {
|
go func() {
|
||||||
// The query is actually sent when multiResult.NextResult() is called. So wait to ensure it is sent.
|
// 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.
|
// Once Flush is available this could use that instead.
|
||||||
time.Sleep(500 * time.Millisecond)
|
time.Sleep(500 * time.Millisecond)
|
||||||
|
|
||||||
err := pgConn.CancelRequest(ctx)
|
err := pgConn.CancelRequest(ctx)
|
||||||
require.NoError(t, err)
|
errChan <- err
|
||||||
}()
|
}()
|
||||||
|
|
||||||
for multiResult.NextResult() {
|
for multiResult.NextResult() {
|
||||||
@@ -2249,6 +2250,9 @@ func TestConnCancelRequest(t *testing.T) {
|
|||||||
require.IsType(t, &pgconn.PgError{}, err)
|
require.IsType(t, &pgconn.PgError{}, err)
|
||||||
require.Equal(t, "57014", err.(*pgconn.PgError).Code)
|
require.Equal(t, "57014", err.(*pgconn.PgError).Code)
|
||||||
|
|
||||||
|
err = <-errChan
|
||||||
|
require.NoError(t, err)
|
||||||
|
|
||||||
ensureConnValid(t, pgConn)
|
ensureConnValid(t, pgConn)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user