mirror of
https://github.com/coder/coder.git
synced 2026-09-24 15:04:27 +08:00
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:
@@ -7,8 +7,6 @@ import (
|
||||
|
||||
"github.com/stretchr/testify/require"
|
||||
|
||||
"cdr.dev/slog"
|
||||
"cdr.dev/slog/sloggers/slogtest"
|
||||
"github.com/coder/coder/v2/cli"
|
||||
"github.com/coder/coder/v2/coderd/database/awsiamrds"
|
||||
"github.com/coder/coder/v2/coderd/database/pubsub"
|
||||
@@ -27,14 +25,14 @@ func TestDriver(t *testing.T) {
|
||||
t.Skip()
|
||||
}
|
||||
|
||||
logger := slogtest.Make(t, nil).Leveled(slog.LevelDebug)
|
||||
logger := testutil.Logger(t)
|
||||
ctx, cancel := context.WithTimeout(context.Background(), testutil.WaitShort)
|
||||
defer cancel()
|
||||
|
||||
sqlDriver, err := awsiamrds.Register(ctx, "postgres")
|
||||
require.NoError(t, err)
|
||||
|
||||
db, err := cli.ConnectToPostgres(ctx, slogtest.Make(t, nil), sqlDriver, url)
|
||||
db, err := cli.ConnectToPostgres(ctx, testutil.Logger(t), sqlDriver, url)
|
||||
require.NoError(t, err)
|
||||
defer func() {
|
||||
_ = db.Close()
|
||||
|
||||
@@ -10,11 +10,11 @@ import (
|
||||
|
||||
"cdr.dev/slog"
|
||||
"cdr.dev/slog/sloggers/sloghuman"
|
||||
"cdr.dev/slog/sloggers/slogtest"
|
||||
"github.com/coder/coder/v2/coderd/coderdtest/promhelp"
|
||||
"github.com/coder/coder/v2/coderd/database"
|
||||
"github.com/coder/coder/v2/coderd/database/dbmem"
|
||||
"github.com/coder/coder/v2/coderd/database/dbmetrics"
|
||||
"github.com/coder/coder/v2/testutil"
|
||||
)
|
||||
|
||||
func TestInTxMetrics(t *testing.T) {
|
||||
@@ -31,7 +31,7 @@ func TestInTxMetrics(t *testing.T) {
|
||||
|
||||
db := dbmem.New()
|
||||
reg := prometheus.NewRegistry()
|
||||
db = dbmetrics.NewQueryMetrics(db, slogtest.Make(t, nil), reg)
|
||||
db = dbmetrics.NewQueryMetrics(db, testutil.Logger(t), reg)
|
||||
|
||||
err := db.InTx(func(s database.Store) error {
|
||||
return nil
|
||||
@@ -49,7 +49,7 @@ func TestInTxMetrics(t *testing.T) {
|
||||
|
||||
db := dbmem.New()
|
||||
reg := prometheus.NewRegistry()
|
||||
db = dbmetrics.NewDBMetrics(db, slogtest.Make(t, nil), reg)
|
||||
db = dbmetrics.NewDBMetrics(db, testutil.Logger(t), reg)
|
||||
|
||||
err := db.InTx(func(s database.Store) error {
|
||||
return nil
|
||||
|
||||
@@ -47,7 +47,7 @@ func TestPurge(t *testing.T) {
|
||||
// We want to make sure dbpurge is actually started so that this test is meaningful.
|
||||
clk := quartz.NewMock(t)
|
||||
done := awaitDoTick(ctx, t, clk)
|
||||
purger := dbpurge.New(context.Background(), slogtest.Make(t, nil), dbmem.New(), clk)
|
||||
purger := dbpurge.New(context.Background(), testutil.Logger(t), dbmem.New(), clk)
|
||||
<-done // wait for doTick() to run.
|
||||
require.NoError(t, purger.Close())
|
||||
}
|
||||
|
||||
@@ -28,7 +28,7 @@ func TestMain(m *testing.M) {
|
||||
|
||||
func TestRollup_Close(t *testing.T) {
|
||||
t.Parallel()
|
||||
rolluper := dbrollup.New(slogtest.Make(t, nil), dbmem.New(), dbrollup.WithInterval(250*time.Millisecond))
|
||||
rolluper := dbrollup.New(testutil.Logger(t), dbmem.New(), dbrollup.WithInterval(250*time.Millisecond))
|
||||
err := rolluper.Close()
|
||||
require.NoError(t, err)
|
||||
}
|
||||
@@ -57,7 +57,7 @@ func TestRollup_TwoInstancesUseLocking(t *testing.T) {
|
||||
}
|
||||
|
||||
db, ps := dbtestutil.NewDB(t, dbtestutil.WithDumpOnFailure())
|
||||
logger := slogtest.Make(t, &slogtest.Options{IgnoreErrors: false}).Leveled(slog.LevelDebug)
|
||||
logger := testutil.Logger(t)
|
||||
|
||||
var (
|
||||
org = dbgen.Organization(t, db, database.Organization{})
|
||||
|
||||
@@ -19,10 +19,10 @@ import (
|
||||
"golang.org/x/xerrors"
|
||||
|
||||
"cdr.dev/slog"
|
||||
"cdr.dev/slog/sloggers/slogtest"
|
||||
"github.com/coder/coder/v2/coderd/database"
|
||||
"github.com/coder/coder/v2/coderd/database/dbmem"
|
||||
"github.com/coder/coder/v2/coderd/database/pubsub"
|
||||
"github.com/coder/coder/v2/testutil"
|
||||
)
|
||||
|
||||
// WillUsePostgres returns true if a call to NewDB() will return a real, postgres-backed Store and Pubsub.
|
||||
@@ -90,7 +90,7 @@ func NewDBWithSQLDB(t testing.TB, opts ...Option) (database.Store, pubsub.Pubsub
|
||||
func NewDB(t testing.TB, opts ...Option) (database.Store, pubsub.Pubsub) {
|
||||
t.Helper()
|
||||
|
||||
o := options{logger: slogtest.Make(t, nil).Named("pubsub").Leveled(slog.LevelDebug)}
|
||||
o := options{logger: testutil.Logger(t).Named("pubsub")}
|
||||
for _, opt := range opts {
|
||||
opt(&o)
|
||||
}
|
||||
|
||||
@@ -10,8 +10,6 @@ import (
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
|
||||
"cdr.dev/slog"
|
||||
"cdr.dev/slog/sloggers/slogtest"
|
||||
"github.com/coder/coder/v2/testutil"
|
||||
)
|
||||
|
||||
@@ -147,7 +145,7 @@ func Test_msgQueue_Full(t *testing.T) {
|
||||
func TestPubSub_DoesntBlockNotify(t *testing.T) {
|
||||
t.Parallel()
|
||||
ctx := testutil.Context(t, testutil.WaitShort)
|
||||
logger := slogtest.Make(t, nil).Leveled(slog.LevelDebug)
|
||||
logger := testutil.Logger(t)
|
||||
|
||||
uut := newWithoutListener(logger, nil)
|
||||
fListener := newFakePqListener()
|
||||
@@ -183,7 +181,7 @@ func TestPubSub_DoesntBlockNotify(t *testing.T) {
|
||||
func TestPubSub_DoesntRaceListenUnlisten(t *testing.T) {
|
||||
t.Parallel()
|
||||
ctx := testutil.Context(t, testutil.WaitShort)
|
||||
logger := slogtest.Make(t, nil).Leveled(slog.LevelDebug)
|
||||
logger := testutil.Logger(t)
|
||||
|
||||
uut := newWithoutListener(logger, nil)
|
||||
fListener := newFakePqListener()
|
||||
|
||||
@@ -38,7 +38,7 @@ func TestPubsub(t *testing.T) {
|
||||
t.Run("Postgres", func(t *testing.T) {
|
||||
ctx, cancelFunc := context.WithCancel(context.Background())
|
||||
defer cancelFunc()
|
||||
logger := slogtest.Make(t, nil).Leveled(slog.LevelDebug)
|
||||
logger := testutil.Logger(t)
|
||||
|
||||
connectionURL, err := dbtestutil.Open(t)
|
||||
require.NoError(t, err)
|
||||
@@ -67,7 +67,7 @@ func TestPubsub(t *testing.T) {
|
||||
t.Run("PostgresCloseCancel", func(t *testing.T) {
|
||||
ctx, cancelFunc := context.WithCancel(context.Background())
|
||||
defer cancelFunc()
|
||||
logger := slogtest.Make(t, nil).Leveled(slog.LevelDebug)
|
||||
logger := testutil.Logger(t)
|
||||
connectionURL, err := dbtestutil.Open(t)
|
||||
require.NoError(t, err)
|
||||
db, err := sql.Open("postgres", connectionURL)
|
||||
@@ -82,7 +82,7 @@ func TestPubsub(t *testing.T) {
|
||||
t.Run("NotClosedOnCancelContext", func(t *testing.T) {
|
||||
ctx, cancel := context.WithCancel(context.Background())
|
||||
defer cancel()
|
||||
logger := slogtest.Make(t, nil).Leveled(slog.LevelDebug)
|
||||
logger := testutil.Logger(t)
|
||||
connectionURL, err := dbtestutil.Open(t)
|
||||
require.NoError(t, err)
|
||||
db, err := sql.Open("postgres", connectionURL)
|
||||
@@ -117,7 +117,7 @@ func TestPubsub_ordering(t *testing.T) {
|
||||
|
||||
ctx, cancelFunc := context.WithCancel(context.Background())
|
||||
defer cancelFunc()
|
||||
logger := slogtest.Make(t, nil).Leveled(slog.LevelDebug)
|
||||
logger := testutil.Logger(t)
|
||||
|
||||
connectionURL, err := dbtestutil.Open(t)
|
||||
require.NoError(t, err)
|
||||
@@ -300,7 +300,7 @@ func TestMeasureLatency(t *testing.T) {
|
||||
|
||||
newPubsub := func() (pubsub.Pubsub, func()) {
|
||||
ctx, cancel := context.WithCancel(context.Background())
|
||||
logger := slogtest.Make(t, nil).Leveled(slog.LevelDebug)
|
||||
logger := testutil.Logger(t)
|
||||
connectionURL, err := dbtestutil.Open(t)
|
||||
require.NoError(t, err)
|
||||
db, err := sql.Open("postgres", connectionURL)
|
||||
@@ -318,7 +318,7 @@ func TestMeasureLatency(t *testing.T) {
|
||||
t.Run("MeasureLatency", func(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
logger := slogtest.Make(t, nil).Leveled(slog.LevelDebug)
|
||||
logger := testutil.Logger(t)
|
||||
ps, done := newPubsub()
|
||||
defer done()
|
||||
|
||||
@@ -334,7 +334,7 @@ func TestMeasureLatency(t *testing.T) {
|
||||
t.Run("MeasureLatencyRecvTimeout", func(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
logger := slogtest.Make(t, nil).Leveled(slog.LevelDebug)
|
||||
logger := testutil.Logger(t)
|
||||
ctrl := gomock.NewController(t)
|
||||
ps := psmock.NewMockPubsub(ctrl)
|
||||
|
||||
|
||||
@@ -23,7 +23,7 @@ func TestPGPubsub_Metrics(t *testing.T) {
|
||||
t.Skip("test only with postgres")
|
||||
}
|
||||
|
||||
logger := slogtest.Make(t, nil).Leveled(slog.LevelDebug)
|
||||
logger := testutil.Logger(t)
|
||||
connectionURL, err := dbtestutil.Open(t)
|
||||
require.NoError(t, err)
|
||||
db, err := sql.Open("postgres", connectionURL)
|
||||
|
||||
Reference in New Issue
Block a user