chore: add standard test logger ignoring db canceled (#15556)

Refactors our use of `slogtest` to instantiate a "standard logger" across most of our tests.  This standard logger incorporates https://github.com/coder/slog/pull/217 to also ignore database query canceled errors by default, which are a source of low-severity flakes.

Any test that has set non-default `slogtest.Options` is left alone. In particular, `coderdtest` defaults to ignoring all errors. We might consider revisiting that decision now that we have better tools to target the really common flaky Error logs on shutdown.
This commit is contained in:
Spike Curtis
2024-11-18 14:09:22 +04:00
committed by GitHub
parent 4719d2406f
commit 5861e516b9
95 changed files with 443 additions and 501 deletions
+8 -10
View File
@@ -11,8 +11,6 @@ import (
"golang.org/x/xerrors"
protobuf "google.golang.org/protobuf/proto"
"cdr.dev/slog"
"cdr.dev/slog/sloggers/slogtest"
"github.com/coder/coder/v2/agent/proto"
"github.com/coder/coder/v2/coderd/database/dbtime"
"github.com/coder/coder/v2/codersdk"
@@ -23,7 +21,7 @@ func TestLogSender_Mainline(t *testing.T) {
t.Parallel()
testCtx := testutil.Context(t, testutil.WaitShort)
ctx, cancel := context.WithCancel(testCtx)
logger := slogtest.Make(t, nil).Leveled(slog.LevelDebug)
logger := testutil.Logger(t)
fDest := newFakeLogDest()
uut := NewLogSender(logger)
@@ -128,7 +126,7 @@ func TestLogSender_Mainline(t *testing.T) {
func TestLogSender_LogLimitExceeded(t *testing.T) {
t.Parallel()
ctx := testutil.Context(t, testutil.WaitShort)
logger := slogtest.Make(t, nil).Leveled(slog.LevelDebug)
logger := testutil.Logger(t)
fDest := newFakeLogDest()
uut := NewLogSender(logger)
@@ -189,7 +187,7 @@ func TestLogSender_SkipHugeLog(t *testing.T) {
t.Parallel()
testCtx := testutil.Context(t, testutil.WaitShort)
ctx, cancel := context.WithCancel(testCtx)
logger := slogtest.Make(t, nil).Leveled(slog.LevelDebug)
logger := testutil.Logger(t)
fDest := newFakeLogDest()
uut := NewLogSender(logger)
@@ -235,7 +233,7 @@ func TestLogSender_InvalidUTF8(t *testing.T) {
t.Parallel()
testCtx := testutil.Context(t, testutil.WaitShort)
ctx, cancel := context.WithCancel(testCtx)
logger := slogtest.Make(t, nil).Leveled(slog.LevelDebug)
logger := testutil.Logger(t)
fDest := newFakeLogDest()
uut := NewLogSender(logger)
@@ -280,7 +278,7 @@ func TestLogSender_Batch(t *testing.T) {
t.Parallel()
testCtx := testutil.Context(t, testutil.WaitShort)
ctx, cancel := context.WithCancel(testCtx)
logger := slogtest.Make(t, nil).Leveled(slog.LevelDebug)
logger := testutil.Logger(t)
fDest := newFakeLogDest()
uut := NewLogSender(logger)
@@ -330,7 +328,7 @@ func TestLogSender_MaxQueuedLogs(t *testing.T) {
t.Parallel()
testCtx := testutil.Context(t, testutil.WaitShort)
ctx, cancel := context.WithCancel(testCtx)
logger := slogtest.Make(t, nil).Leveled(slog.LevelDebug)
logger := testutil.Logger(t)
fDest := newFakeLogDest()
uut := NewLogSender(logger)
@@ -389,7 +387,7 @@ func TestLogSender_MaxQueuedLogs(t *testing.T) {
func TestLogSender_SendError(t *testing.T) {
t.Parallel()
ctx := testutil.Context(t, testutil.WaitShort)
logger := slogtest.Make(t, nil).Leveled(slog.LevelDebug)
logger := testutil.Logger(t)
fDest := newFakeLogDest()
expectedErr := xerrors.New("test")
fDest.err = expectedErr
@@ -431,7 +429,7 @@ func TestLogSender_WaitUntilEmpty_ContextExpired(t *testing.T) {
t.Parallel()
testCtx := testutil.Context(t, testutil.WaitShort)
ctx, cancel := context.WithCancel(testCtx)
logger := slogtest.Make(t, nil).Leveled(slog.LevelDebug)
logger := testutil.Logger(t)
uut := NewLogSender(logger)
t0 := dbtime.Now()
+3 -5
View File
@@ -12,8 +12,6 @@ import (
"github.com/stretchr/testify/require"
"golang.org/x/exp/slices"
"cdr.dev/slog"
"cdr.dev/slog/sloggers/slogtest"
"github.com/coder/coder/v2/codersdk"
"github.com/coder/coder/v2/codersdk/agentsdk"
"github.com/coder/coder/v2/testutil"
@@ -274,7 +272,7 @@ func TestStartupLogsSender(t *testing.T) {
return nil
}
sendLog, flushAndClose := agentsdk.LogsSender(uuid.New(), patchLogs, slogtest.Make(t, nil).Leveled(slog.LevelDebug))
sendLog, flushAndClose := agentsdk.LogsSender(uuid.New(), patchLogs, testutil.Logger(t))
defer func() {
err := flushAndClose(ctx)
require.NoError(t, err)
@@ -313,7 +311,7 @@ func TestStartupLogsSender(t *testing.T) {
return nil
}
sendLog, flushAndClose := agentsdk.LogsSender(uuid.New(), patchLogs, slogtest.Make(t, nil).Leveled(slog.LevelDebug))
sendLog, flushAndClose := agentsdk.LogsSender(uuid.New(), patchLogs, testutil.Logger(t))
defer func() {
_ = flushAndClose(ctx)
}()
@@ -349,7 +347,7 @@ func TestStartupLogsSender(t *testing.T) {
// Prevent race between auto-flush and context cancellation with
// a really long timeout.
sendLog, flushAndClose := agentsdk.LogsSender(uuid.New(), patchLogs, slogtest.Make(t, nil).Leveled(slog.LevelDebug), agentsdk.LogsSenderFlushTimeout(time.Hour))
sendLog, flushAndClose := agentsdk.LogsSender(uuid.New(), patchLogs, testutil.Logger(t), agentsdk.LogsSenderFlushTimeout(time.Hour))
defer func() {
_ = flushAndClose(ctx)
}()