Use context timeouts for tracelog tests

pull/1624/head
Jack Christensen 2023-05-29 11:23:21 -05:00
parent 5f6636d028
commit 9720d0d63f
1 changed files with 41 additions and 35 deletions

View File

@ -59,6 +59,9 @@ func (l *testLogger) FilterByMsg(msg string) (res []testLog) {
func TestContextGetsPassedToLogMethod(t *testing.T) { func TestContextGetsPassedToLogMethod(t *testing.T) {
t.Parallel() t.Parallel()
ctx, cancel := context.WithTimeout(context.Background(), 30*time.Second)
defer cancel()
logger := &testLogger{} logger := &testLogger{}
tracer := &tracelog.TraceLog{ tracer := &tracelog.TraceLog{
Logger: logger, Logger: logger,
@ -72,13 +75,10 @@ func TestContextGetsPassedToLogMethod(t *testing.T) {
return config return config
} }
ctx, cancel := context.WithTimeout(context.Background(), 30*time.Second)
defer cancel()
pgxtest.RunWithQueryExecModes(ctx, t, ctr, nil, func(ctx context.Context, t testing.TB, conn *pgx.Conn) { pgxtest.RunWithQueryExecModes(ctx, t, ctr, nil, func(ctx context.Context, t testing.TB, conn *pgx.Conn) {
logger.Clear() // Clear any logs written when establishing connection logger.Clear() // Clear any logs written when establishing connection
ctx = context.WithValue(context.Background(), "ctxdata", "foo") ctx = context.WithValue(ctx, "ctxdata", "foo")
_, err := conn.Exec(ctx, `;`) _, err := conn.Exec(ctx, `;`)
require.NoError(t, err) require.NoError(t, err)
require.Len(t, logger.logs, 1) require.Len(t, logger.logs, 1)
@ -89,6 +89,9 @@ func TestContextGetsPassedToLogMethod(t *testing.T) {
func TestLoggerFunc(t *testing.T) { func TestLoggerFunc(t *testing.T) {
t.Parallel() t.Parallel()
ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)
defer cancel()
const testMsg = "foo" const testMsg = "foo"
buf := bytes.Buffer{} buf := bytes.Buffer{}
@ -100,15 +103,15 @@ func TestLoggerFunc(t *testing.T) {
} }
} }
config := defaultConnTestRunner.CreateConfig(context.Background(), t) config := defaultConnTestRunner.CreateConfig(ctx, t)
config.Tracer = &tracelog.TraceLog{ config.Tracer = &tracelog.TraceLog{
Logger: createAdapterFn(logger), Logger: createAdapterFn(logger),
LogLevel: tracelog.LogLevelTrace, LogLevel: tracelog.LogLevelTrace,
} }
conn, err := pgx.ConnectConfig(context.Background(), config) conn, err := pgx.ConnectConfig(ctx, config)
require.NoError(t, err) require.NoError(t, err)
defer conn.Close(context.Background()) defer conn.Close(ctx)
buf.Reset() // Clear logs written when establishing connection buf.Reset() // Clear logs written when establishing connection
@ -124,6 +127,9 @@ func TestLoggerFunc(t *testing.T) {
func TestLogQuery(t *testing.T) { func TestLogQuery(t *testing.T) {
t.Parallel() t.Parallel()
ctx, cancel := context.WithTimeout(context.Background(), 30*time.Second)
defer cancel()
logger := &testLogger{} logger := &testLogger{}
tracer := &tracelog.TraceLog{ tracer := &tracelog.TraceLog{
Logger: logger, Logger: logger,
@ -137,9 +143,6 @@ func TestLogQuery(t *testing.T) {
return config return config
} }
ctx, cancel := context.WithTimeout(context.Background(), 30*time.Second)
defer cancel()
pgxtest.RunWithQueryExecModes(ctx, t, ctr, nil, func(ctx context.Context, t testing.TB, conn *pgx.Conn) { pgxtest.RunWithQueryExecModes(ctx, t, ctr, nil, func(ctx context.Context, t testing.TB, conn *pgx.Conn) {
logger.Clear() // Clear any logs written when establishing connection logger.Clear() // Clear any logs written when establishing connection
@ -166,6 +169,9 @@ func TestLogQuery(t *testing.T) {
func TestLogQueryArgsHandlesUTF8(t *testing.T) { func TestLogQueryArgsHandlesUTF8(t *testing.T) {
t.Parallel() t.Parallel()
ctx, cancel := context.WithTimeout(context.Background(), 30*time.Second)
defer cancel()
logger := &testLogger{} logger := &testLogger{}
tracer := &tracelog.TraceLog{ tracer := &tracelog.TraceLog{
Logger: logger, Logger: logger,
@ -179,9 +185,6 @@ func TestLogQueryArgsHandlesUTF8(t *testing.T) {
return config return config
} }
ctx, cancel := context.WithTimeout(context.Background(), 30*time.Second)
defer cancel()
pgxtest.RunWithQueryExecModes(ctx, t, ctr, nil, func(ctx context.Context, t testing.TB, conn *pgx.Conn) { pgxtest.RunWithQueryExecModes(ctx, t, ctr, nil, func(ctx context.Context, t testing.TB, conn *pgx.Conn) {
logger.Clear() // Clear any logs written when establishing connection logger.Clear() // Clear any logs written when establishing connection
@ -214,6 +217,9 @@ func TestLogQueryArgsHandlesUTF8(t *testing.T) {
func TestLogCopyFrom(t *testing.T) { func TestLogCopyFrom(t *testing.T) {
t.Parallel() t.Parallel()
ctx, cancel := context.WithTimeout(context.Background(), 30*time.Second)
defer cancel()
logger := &testLogger{} logger := &testLogger{}
tracer := &tracelog.TraceLog{ tracer := &tracelog.TraceLog{
Logger: logger, Logger: logger,
@ -227,11 +233,8 @@ func TestLogCopyFrom(t *testing.T) {
return config return config
} }
ctx, cancel := context.WithTimeout(context.Background(), 30*time.Second)
defer cancel()
pgxtest.RunWithQueryExecModes(ctx, t, ctr, pgxtest.KnownOIDQueryExecModes, func(ctx context.Context, t testing.TB, conn *pgx.Conn) { pgxtest.RunWithQueryExecModes(ctx, t, ctr, pgxtest.KnownOIDQueryExecModes, func(ctx context.Context, t testing.TB, conn *pgx.Conn) {
_, err := conn.Exec(context.Background(), `create temporary table foo(a int4)`) _, err := conn.Exec(ctx, `create temporary table foo(a int4)`)
require.NoError(t, err) require.NoError(t, err)
logger.Clear() logger.Clear()
@ -241,7 +244,7 @@ func TestLogCopyFrom(t *testing.T) {
{nil}, {nil},
} }
copyCount, err := conn.CopyFrom(context.Background(), pgx.Identifier{"foo"}, []string{"a"}, pgx.CopyFromRows(inputRows)) copyCount, err := conn.CopyFrom(ctx, pgx.Identifier{"foo"}, []string{"a"}, pgx.CopyFromRows(inputRows))
require.NoError(t, err) require.NoError(t, err)
require.EqualValues(t, len(inputRows), copyCount) require.EqualValues(t, len(inputRows), copyCount)
@ -256,7 +259,7 @@ func TestLogCopyFrom(t *testing.T) {
{nil}, {nil},
} }
copyCount, err = conn.CopyFrom(context.Background(), pgx.Identifier{"foo"}, []string{"a"}, pgx.CopyFromRows(inputRows)) copyCount, err = conn.CopyFrom(ctx, pgx.Identifier{"foo"}, []string{"a"}, pgx.CopyFromRows(inputRows))
require.Error(t, err) require.Error(t, err)
require.EqualValues(t, 0, copyCount) require.EqualValues(t, 0, copyCount)
@ -269,18 +272,21 @@ func TestLogCopyFrom(t *testing.T) {
func TestLogConnect(t *testing.T) { func TestLogConnect(t *testing.T) {
t.Parallel() t.Parallel()
ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)
defer cancel()
logger := &testLogger{} logger := &testLogger{}
tracer := &tracelog.TraceLog{ tracer := &tracelog.TraceLog{
Logger: logger, Logger: logger,
LogLevel: tracelog.LogLevelTrace, LogLevel: tracelog.LogLevelTrace,
} }
config := defaultConnTestRunner.CreateConfig(context.Background(), t) config := defaultConnTestRunner.CreateConfig(ctx, t)
config.Tracer = tracer config.Tracer = tracer
conn1, err := pgx.ConnectConfig(context.Background(), config) conn1, err := pgx.ConnectConfig(ctx, config)
require.NoError(t, err) require.NoError(t, err)
defer conn1.Close(context.Background()) defer conn1.Close(ctx)
require.Len(t, logger.logs, 1) require.Len(t, logger.logs, 1)
require.Equal(t, "Connect", logger.logs[0].msg) require.Equal(t, "Connect", logger.logs[0].msg)
require.Equal(t, tracelog.LogLevelInfo, logger.logs[0].lvl) require.Equal(t, tracelog.LogLevelInfo, logger.logs[0].lvl)
@ -291,7 +297,7 @@ func TestLogConnect(t *testing.T) {
require.NoError(t, err) require.NoError(t, err)
config.Tracer = tracer config.Tracer = tracer
conn2, err := pgx.ConnectConfig(context.Background(), config) conn2, err := pgx.ConnectConfig(ctx, config)
require.Nil(t, conn2) require.Nil(t, conn2)
require.Error(t, err) require.Error(t, err)
require.Len(t, logger.logs, 1) require.Len(t, logger.logs, 1)
@ -302,6 +308,9 @@ func TestLogConnect(t *testing.T) {
func TestLogBatchStatementsOnExec(t *testing.T) { func TestLogBatchStatementsOnExec(t *testing.T) {
t.Parallel() t.Parallel()
ctx, cancel := context.WithTimeout(context.Background(), 30*time.Second)
defer cancel()
logger := &testLogger{} logger := &testLogger{}
tracer := &tracelog.TraceLog{ tracer := &tracelog.TraceLog{
Logger: logger, Logger: logger,
@ -315,9 +324,6 @@ func TestLogBatchStatementsOnExec(t *testing.T) {
return config return config
} }
ctx, cancel := context.WithTimeout(context.Background(), 30*time.Second)
defer cancel()
pgxtest.RunWithQueryExecModes(ctx, t, ctr, nil, func(ctx context.Context, t testing.TB, conn *pgx.Conn) { pgxtest.RunWithQueryExecModes(ctx, t, ctr, nil, func(ctx context.Context, t testing.TB, conn *pgx.Conn) {
logger.Clear() // Clear any logs written when establishing connection logger.Clear() // Clear any logs written when establishing connection
@ -325,7 +331,7 @@ func TestLogBatchStatementsOnExec(t *testing.T) {
batch.Queue("create table foo (id bigint)") batch.Queue("create table foo (id bigint)")
batch.Queue("drop table foo") batch.Queue("drop table foo")
br := conn.SendBatch(context.Background(), batch) br := conn.SendBatch(ctx, batch)
_, err := br.Exec() _, err := br.Exec()
require.NoError(t, err) require.NoError(t, err)
@ -349,6 +355,9 @@ func TestLogBatchStatementsOnExec(t *testing.T) {
func TestLogBatchStatementsOnBatchResultClose(t *testing.T) { func TestLogBatchStatementsOnBatchResultClose(t *testing.T) {
t.Parallel() t.Parallel()
ctx, cancel := context.WithTimeout(context.Background(), 30*time.Second)
defer cancel()
logger := &testLogger{} logger := &testLogger{}
tracer := &tracelog.TraceLog{ tracer := &tracelog.TraceLog{
Logger: logger, Logger: logger,
@ -362,9 +371,6 @@ func TestLogBatchStatementsOnBatchResultClose(t *testing.T) {
return config return config
} }
ctx, cancel := context.WithTimeout(context.Background(), 30*time.Second)
defer cancel()
pgxtest.RunWithQueryExecModes(ctx, t, ctr, nil, func(ctx context.Context, t testing.TB, conn *pgx.Conn) { pgxtest.RunWithQueryExecModes(ctx, t, ctr, nil, func(ctx context.Context, t testing.TB, conn *pgx.Conn) {
logger.Clear() // Clear any logs written when establishing connection logger.Clear() // Clear any logs written when establishing connection
@ -372,7 +378,7 @@ func TestLogBatchStatementsOnBatchResultClose(t *testing.T) {
batch.Queue("select generate_series(1,$1)", 100) batch.Queue("select generate_series(1,$1)", 100)
batch.Queue("select 1 = 1;") batch.Queue("select 1 = 1;")
br := conn.SendBatch(context.Background(), batch) br := conn.SendBatch(ctx, batch)
err := br.Close() err := br.Close()
require.NoError(t, err) require.NoError(t, err)
@ -388,6 +394,9 @@ func TestLogBatchStatementsOnBatchResultClose(t *testing.T) {
func TestLogPrepare(t *testing.T) { func TestLogPrepare(t *testing.T) {
t.Parallel() t.Parallel()
ctx, cancel := context.WithTimeout(context.Background(), 30*time.Second)
defer cancel()
logger := &testLogger{} logger := &testLogger{}
tracer := &tracelog.TraceLog{ tracer := &tracelog.TraceLog{
Logger: logger, Logger: logger,
@ -401,9 +410,6 @@ func TestLogPrepare(t *testing.T) {
return config return config
} }
ctx, cancel := context.WithTimeout(context.Background(), 30*time.Second)
defer cancel()
pgxtest.RunWithQueryExecModes(ctx, t, ctr, []pgx.QueryExecMode{ pgxtest.RunWithQueryExecModes(ctx, t, ctr, []pgx.QueryExecMode{
pgx.QueryExecModeCacheStatement, pgx.QueryExecModeCacheStatement,
pgx.QueryExecModeCacheDescribe, pgx.QueryExecModeCacheDescribe,
@ -428,7 +434,7 @@ func TestLogPrepare(t *testing.T) {
require.Equal(t, err, logs[0].data["err"]) require.Equal(t, err, logs[0].data["err"])
}) })
ctx, cancel = context.WithTimeout(context.Background(), 30*time.Second) ctx, cancel = context.WithTimeout(ctx, 30*time.Second)
defer cancel() defer cancel()
pgxtest.RunWithQueryExecModes(ctx, t, ctr, nil, func(ctx context.Context, t testing.TB, conn *pgx.Conn) { pgxtest.RunWithQueryExecModes(ctx, t, ctr, nil, func(ctx context.Context, t testing.TB, conn *pgx.Conn) {