MCPcopy
hub / github.com/jackc/pgx / TestLogQueryArgsHandlesUTF8

Function TestLogQueryArgsHandlesUTF8

tracelog/tracelog_test.go:183–229  ·  view source on GitHub ↗

https://github.com/jackc/pgx/issues/1365

(t *testing.T)

Source from the content-addressed store, hash-verified

181
182// https://github.com/jackc/pgx/issues/1365
183func TestLogQueryArgsHandlesUTF8(t *testing.T) {
184 t.Parallel()
185
186 ctx, cancel := context.WithTimeout(context.Background(), 120*time.Second)
187 defer cancel()
188
189 logger := &testLogger{}
190 tracer := &tracelog.TraceLog{
191 Logger: logger,
192 LogLevel: tracelog.LogLevelTrace,
193 }
194
195 ctr := defaultConnTestRunner
196 ctr.CreateConfig = func(ctx context.Context, t testing.TB) *pgx.ConnConfig {
197 config := defaultConnTestRunner.CreateConfig(ctx, t)
198 config.Tracer = tracer
199 return config
200 }
201
202 pgxtest.RunWithQueryExecModes(ctx, t, ctr, nil, func(ctx context.Context, t testing.TB, conn *pgx.Conn) {
203 logger.Clear() // Clear any logs written when establishing connection
204
205 var s string
206 for range 63 {
207 s += "0"
208 }
209 s += "😊"
210
211 _, err := conn.Exec(ctx, `select $1::text`, s)
212 require.NoError(t, err)
213
214 logs := logger.FilterByMsg("Query")
215 require.Len(t, logs, 1)
216 require.Equal(t, tracelog.LogLevelInfo, logs[0].lvl)
217 require.Equal(t, s, logs[0].data["args"].([]any)[0])
218
219 logger.Clear()
220
221 _, err = conn.Exec(ctx, `select $1::text`, s+"000")
222 require.NoError(t, err)
223
224 logs = logger.FilterByMsg("Query")
225 require.Len(t, logs, 1)
226 require.Equal(t, tracelog.LogLevelInfo, logs[0].lvl)
227 require.Equal(t, s+" (truncated 3 bytes)", logs[0].data["args"].([]any)[0])
228 })
229}
230
231func TestLogCopyFrom(t *testing.T) {
232 t.Parallel()

Callers

nothing calls this directly

Calls 5

ClearMethod · 0.95
FilterByMsgMethod · 0.95
RunWithQueryExecModesFunction · 0.92
ExecMethod · 0.65
LenMethod · 0.65

Tested by

no test coverage detected