Skip to content

Commit 334a4a6

Browse files
committed
use testutil.RequireRecvCtx, rely on goleak for checking heartbeat goroutine
1 parent 6449c93 commit 334a4a6

File tree

1 file changed

+8
-18
lines changed

1 file changed

+8
-18
lines changed

coderd/provisionerdserver/provisionerdserver_test.go

Lines changed: 8 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ func testUserQuietHoursScheduleStore() *atomic.Pointer[schedule.UserQuietHoursSc
6767

6868
func TestAcquireJob_LongPoll(t *testing.T) {
6969
t.Parallel()
70-
//nolint:dogsled // ૮・ᴥ・ა
70+
//nolint:dogsled
7171
srv, _, _, _ := setup(t, false, &overrides{acquireJobLongPollDuration: time.Microsecond})
7272
job, err := srv.AcquireJob(context.Background(), nil)
7373
require.NoError(t, err)
@@ -76,7 +76,7 @@ func TestAcquireJob_LongPoll(t *testing.T) {
7676

7777
func TestAcquireJobWithCancel_Cancel(t *testing.T) {
7878
t.Parallel()
79-
//nolint:dogsled // ૮ ˶′ﻌ ‵˶ ა
79+
//nolint:dogsled
8080
srv, _, _, _ := setup(t, false, nil)
8181
ctx, cancel := context.WithTimeout(context.Background(), testutil.WaitShort)
8282
defer cancel()
@@ -101,6 +101,7 @@ func TestAcquireJobWithCancel_Cancel(t *testing.T) {
101101
func TestHeartbeat(t *testing.T) {
102102
t.Parallel()
103103

104+
numBeats := 3
104105
ctx, cancel := context.WithCancel(context.Background())
105106
t.Cleanup(cancel)
106107
heartbeatChan := make(chan struct{})
@@ -114,28 +115,17 @@ func TestHeartbeat(t *testing.T) {
114115
return nil
115116
}
116117
}
117-
//nolint:dogsled // 。:゚૮ ˶ˆ ﻌ ˆ˶ ა ゚:。
118+
//nolint:dogsled
118119
_, _, _, _ = setup(t, false, &overrides{
119120
ctx: ctx,
120121
heartbeatFn: heartbeatFn,
121122
heartbeatInterval: testutil.IntervalFast,
122123
})
123124

124-
_, ok := <-heartbeatChan
125-
require.True(t, ok, "first heartbeat not received")
126-
_, ok = <-heartbeatChan
127-
require.True(t, ok, "second heartbeat not received")
128-
cancel()
129-
// Close the channel to ensure we don't receive any more heartbeats.
130-
// The test will fail if we do.
131-
defer func() {
132-
if r := recover(); r != nil {
133-
t.Fatalf("heartbeat received after cancel: %v", r)
134-
}
135-
}()
136-
137-
close(heartbeatChan)
138-
<-time.After(testutil.IntervalMedium)
125+
for i := 0; i < numBeats; i++ {
126+
testutil.RequireRecvCtx(ctx, t, heartbeatChan)
127+
}
128+
// goleak.VerifyTestMain ensures that the heartbeat goroutine does not leak
139129
}
140130

141131
func TestAcquireJob(t *testing.T) {

0 commit comments

Comments
 (0)