Skip to content

Commit 636316c

Browse files
committed
chore: fix TestMeasureLatency/MeasureLatencyRecvTimeout flake
1 parent a0fce36 commit 636316c

File tree

4 files changed

+117
-8
lines changed

4 files changed

+117
-8
lines changed

Makefile

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -558,6 +558,9 @@ coderd/database/querier.go: coderd/database/sqlc.yaml coderd/database/dump.sql $
558558
coderd/database/dbmock/dbmock.go: coderd/database/db.go coderd/database/querier.go
559559
go generate ./coderd/database/dbmock/
560560

561+
coderd/database/pubsub/psmock/psmock.go: coderd/database/pubsub/pubsub.go
562+
go generate ./coderd/database/pubsub/psmock
563+
561564
tailnet/tailnettest/coordinatormock.go tailnet/tailnettest/multiagentmock.go tailnet/tailnettest/coordinateemock.go: tailnet/coordinator.go tailnet/multiagent.go
562565
go generate ./tailnet/tailnettest/
563566

coderd/database/pubsub/psmock/doc.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
// package psmock contains a mocked implementation of the pubsub.Pubsub interface for use in tests
2+
package psmock
3+
4+
//go:generate mockgen -destination ./psmock.go -package psmock github.com/coder/coder/v2/coderd/database/pubsub Pubsub

coderd/database/pubsub/psmock/psmock.go

Lines changed: 98 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

coderd/database/pubsub/pubsub_linux_test.go

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -14,14 +14,15 @@ import (
1414

1515
"github.com/stretchr/testify/assert"
1616
"github.com/stretchr/testify/require"
17+
"go.uber.org/mock/gomock"
1718
"golang.org/x/xerrors"
1819

19-
"cdr.dev/slog/sloggers/sloghuman"
20-
2120
"cdr.dev/slog"
21+
"cdr.dev/slog/sloggers/sloghuman"
2222
"cdr.dev/slog/sloggers/slogtest"
2323
"github.com/coder/coder/v2/coderd/database/dbtestutil"
2424
"github.com/coder/coder/v2/coderd/database/pubsub"
25+
"github.com/coder/coder/v2/coderd/database/pubsub/psmock"
2526
"github.com/coder/coder/v2/testutil"
2627
)
2728

@@ -339,15 +340,18 @@ func TestMeasureLatency(t *testing.T) {
339340
t.Parallel()
340341

341342
logger := slogtest.Make(t, nil).Leveled(slog.LevelDebug)
342-
ps, done := newPubsub()
343-
defer done()
343+
ctrl := gomock.NewController(t)
344+
ps := psmock.NewMockPubsub(ctrl)
344345

345-
ctx, cancel := context.WithDeadline(context.Background(), time.Now().Add(-time.Hour))
346-
defer cancel()
346+
ps.EXPECT().Subscribe(gomock.Any(), gomock.Any()).Return(func() {}, (error)(nil))
347+
ps.EXPECT().Publish(gomock.Any(), gomock.Any()).Return((error)(nil))
348+
349+
ctx, cancel := context.WithCancel(context.Background())
350+
cancel()
347351

348352
send, recv, err := pubsub.NewLatencyMeasurer(logger).Measure(ctx, ps)
349-
require.ErrorContains(t, err, context.DeadlineExceeded.Error())
350-
require.Greater(t, send.Seconds(), 0.0)
353+
require.ErrorContains(t, err, context.Canceled.Error())
354+
require.Greater(t, send.Nanoseconds(), int64(0))
351355
require.EqualValues(t, recv, time.Duration(-1))
352356
})
353357

0 commit comments

Comments
 (0)