mirror of
https://github.com/coder/coder.git
synced 2026-09-24 15:04:27 +08:00
chore: update testutil chan helpers (#17408)
This commit is contained in:
+8
-8
@@ -110,7 +110,7 @@ func TestAgent_ImmediateClose(t *testing.T) {
|
||||
})
|
||||
|
||||
// wait until the agent has connected and is starting to find races in the startup code
|
||||
_ = testutil.RequireRecvCtx(ctx, t, client.GetStartup())
|
||||
_ = testutil.TryReceive(ctx, t, client.GetStartup())
|
||||
t.Log("Closing Agent")
|
||||
err := agentUnderTest.Close()
|
||||
require.NoError(t, err)
|
||||
@@ -1700,7 +1700,7 @@ func TestAgent_Lifecycle(t *testing.T) {
|
||||
// In order to avoid shutting down the agent before it is fully started and triggering
|
||||
// errors, we'll wait until the agent is fully up. It's a bit hokey, but among the last things the agent starts
|
||||
// is the stats reporting, so getting a stats report is a good indication the agent is fully up.
|
||||
_ = testutil.RequireRecvCtx(ctx, t, statsCh)
|
||||
_ = testutil.TryReceive(ctx, t, statsCh)
|
||||
|
||||
err := agent.Close()
|
||||
require.NoError(t, err, "agent should be closed successfully")
|
||||
@@ -1730,7 +1730,7 @@ func TestAgent_Startup(t *testing.T) {
|
||||
_, client, _, _, _ := setupAgent(t, agentsdk.Manifest{
|
||||
Directory: "",
|
||||
}, 0)
|
||||
startup := testutil.RequireRecvCtx(ctx, t, client.GetStartup())
|
||||
startup := testutil.TryReceive(ctx, t, client.GetStartup())
|
||||
require.Equal(t, "", startup.GetExpandedDirectory())
|
||||
})
|
||||
|
||||
@@ -1741,7 +1741,7 @@ func TestAgent_Startup(t *testing.T) {
|
||||
_, client, _, _, _ := setupAgent(t, agentsdk.Manifest{
|
||||
Directory: "~",
|
||||
}, 0)
|
||||
startup := testutil.RequireRecvCtx(ctx, t, client.GetStartup())
|
||||
startup := testutil.TryReceive(ctx, t, client.GetStartup())
|
||||
homeDir, err := os.UserHomeDir()
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, homeDir, startup.GetExpandedDirectory())
|
||||
@@ -1754,7 +1754,7 @@ func TestAgent_Startup(t *testing.T) {
|
||||
_, client, _, _, _ := setupAgent(t, agentsdk.Manifest{
|
||||
Directory: "coder/coder",
|
||||
}, 0)
|
||||
startup := testutil.RequireRecvCtx(ctx, t, client.GetStartup())
|
||||
startup := testutil.TryReceive(ctx, t, client.GetStartup())
|
||||
homeDir, err := os.UserHomeDir()
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, filepath.Join(homeDir, "coder/coder"), startup.GetExpandedDirectory())
|
||||
@@ -1767,7 +1767,7 @@ func TestAgent_Startup(t *testing.T) {
|
||||
_, client, _, _, _ := setupAgent(t, agentsdk.Manifest{
|
||||
Directory: "$HOME",
|
||||
}, 0)
|
||||
startup := testutil.RequireRecvCtx(ctx, t, client.GetStartup())
|
||||
startup := testutil.TryReceive(ctx, t, client.GetStartup())
|
||||
homeDir, err := os.UserHomeDir()
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, homeDir, startup.GetExpandedDirectory())
|
||||
@@ -2632,7 +2632,7 @@ done
|
||||
|
||||
n := 1
|
||||
for n <= 5 {
|
||||
logs := testutil.RequireRecvCtx(ctx, t, logsCh)
|
||||
logs := testutil.TryReceive(ctx, t, logsCh)
|
||||
require.NotNil(t, logs)
|
||||
for _, l := range logs.GetLogs() {
|
||||
require.Equal(t, fmt.Sprintf("start %d", n), l.GetOutput())
|
||||
@@ -2645,7 +2645,7 @@ done
|
||||
|
||||
n = 1
|
||||
for n <= 3000 {
|
||||
logs := testutil.RequireRecvCtx(ctx, t, logsCh)
|
||||
logs := testutil.TryReceive(ctx, t, logsCh)
|
||||
require.NotNil(t, logs)
|
||||
for _, l := range logs.GetLogs() {
|
||||
require.Equal(t, fmt.Sprintf("stop %d", n), l.GetOutput())
|
||||
|
||||
@@ -44,7 +44,7 @@ func TestExecuteBasic(t *testing.T) {
|
||||
}}, aAPI.ScriptCompleted)
|
||||
require.NoError(t, err)
|
||||
require.NoError(t, runner.Execute(context.Background(), agentscripts.ExecuteAllScripts))
|
||||
log := testutil.RequireRecvCtx(ctx, t, fLogger.logs)
|
||||
log := testutil.TryReceive(ctx, t, fLogger.logs)
|
||||
require.Equal(t, "hello", log.Output)
|
||||
}
|
||||
|
||||
@@ -136,7 +136,7 @@ func TestScriptReportsTiming(t *testing.T) {
|
||||
require.NoError(t, runner.Execute(ctx, agentscripts.ExecuteAllScripts))
|
||||
runner.Close()
|
||||
|
||||
log := testutil.RequireRecvCtx(ctx, t, fLogger.logs)
|
||||
log := testutil.TryReceive(ctx, t, fLogger.logs)
|
||||
require.Equal(t, "hello", log.Output)
|
||||
|
||||
timings := aAPI.GetTimings()
|
||||
|
||||
@@ -92,7 +92,7 @@ func TestAppHealth_Healthy(t *testing.T) {
|
||||
mClock.Advance(999 * time.Millisecond).MustWait(ctx) // app2 is now healthy
|
||||
|
||||
mClock.Advance(time.Millisecond).MustWait(ctx) // report gets triggered
|
||||
update := testutil.RequireRecvCtx(ctx, t, fakeAPI.AppHealthCh())
|
||||
update := testutil.TryReceive(ctx, t, fakeAPI.AppHealthCh())
|
||||
require.Len(t, update.GetUpdates(), 2)
|
||||
applyUpdate(t, apps, update)
|
||||
require.Equal(t, codersdk.WorkspaceAppHealthHealthy, apps[1].Health)
|
||||
@@ -101,7 +101,7 @@ func TestAppHealth_Healthy(t *testing.T) {
|
||||
mClock.Advance(999 * time.Millisecond).MustWait(ctx) // app3 is now healthy
|
||||
|
||||
mClock.Advance(time.Millisecond).MustWait(ctx) // report gets triggered
|
||||
update = testutil.RequireRecvCtx(ctx, t, fakeAPI.AppHealthCh())
|
||||
update = testutil.TryReceive(ctx, t, fakeAPI.AppHealthCh())
|
||||
require.Len(t, update.GetUpdates(), 2)
|
||||
applyUpdate(t, apps, update)
|
||||
require.Equal(t, codersdk.WorkspaceAppHealthHealthy, apps[1].Health)
|
||||
@@ -155,7 +155,7 @@ func TestAppHealth_500(t *testing.T) {
|
||||
mClock.Advance(999 * time.Millisecond).MustWait(ctx) // 2nd check, crosses threshold
|
||||
mClock.Advance(time.Millisecond).MustWait(ctx) // 2nd report, sends update
|
||||
|
||||
update := testutil.RequireRecvCtx(ctx, t, fakeAPI.AppHealthCh())
|
||||
update := testutil.TryReceive(ctx, t, fakeAPI.AppHealthCh())
|
||||
require.Len(t, update.GetUpdates(), 1)
|
||||
applyUpdate(t, apps, update)
|
||||
require.Equal(t, codersdk.WorkspaceAppHealthUnhealthy, apps[0].Health)
|
||||
@@ -223,7 +223,7 @@ func TestAppHealth_Timeout(t *testing.T) {
|
||||
timeoutTrap.MustWait(ctx).Release()
|
||||
mClock.Set(ms(3001)).MustWait(ctx) // report tick, sends changes
|
||||
|
||||
update := testutil.RequireRecvCtx(ctx, t, fakeAPI.AppHealthCh())
|
||||
update := testutil.TryReceive(ctx, t, fakeAPI.AppHealthCh())
|
||||
require.Len(t, update.GetUpdates(), 1)
|
||||
applyUpdate(t, apps, update)
|
||||
require.Equal(t, codersdk.WorkspaceAppHealthUnhealthy, apps[0].Health)
|
||||
|
||||
@@ -44,6 +44,6 @@ func TestCheckpoint_WaitComplete(t *testing.T) {
|
||||
errCh <- uut.wait(ctx)
|
||||
}()
|
||||
uut.complete(err)
|
||||
got := testutil.RequireRecvCtx(ctx, t, errCh)
|
||||
got := testutil.TryReceive(ctx, t, errCh)
|
||||
require.Equal(t, err, got)
|
||||
}
|
||||
|
||||
@@ -34,14 +34,14 @@ func TestStatsReporter(t *testing.T) {
|
||||
}()
|
||||
|
||||
// initial request to get duration
|
||||
req := testutil.RequireRecvCtx(ctx, t, fDest.reqs)
|
||||
req := testutil.TryReceive(ctx, t, fDest.reqs)
|
||||
require.NotNil(t, req)
|
||||
require.Nil(t, req.Stats)
|
||||
interval := time.Second * 34
|
||||
testutil.RequireSendCtx(ctx, t, fDest.resps, &proto.UpdateStatsResponse{ReportInterval: durationpb.New(interval)})
|
||||
testutil.RequireSend(ctx, t, fDest.resps, &proto.UpdateStatsResponse{ReportInterval: durationpb.New(interval)})
|
||||
|
||||
// call to source to set the callback and interval
|
||||
gotInterval := testutil.RequireRecvCtx(ctx, t, fSource.period)
|
||||
gotInterval := testutil.TryReceive(ctx, t, fSource.period)
|
||||
require.Equal(t, interval, gotInterval)
|
||||
|
||||
// callback returning netstats
|
||||
@@ -60,7 +60,7 @@ func TestStatsReporter(t *testing.T) {
|
||||
fSource.callback(time.Now(), time.Now(), netStats, nil)
|
||||
|
||||
// collector called to complete the stats
|
||||
gotNetStats := testutil.RequireRecvCtx(ctx, t, fCollector.calls)
|
||||
gotNetStats := testutil.TryReceive(ctx, t, fCollector.calls)
|
||||
require.Equal(t, netStats, gotNetStats)
|
||||
|
||||
// while we are collecting the stats, send in two new netStats to simulate
|
||||
@@ -94,13 +94,13 @@ func TestStatsReporter(t *testing.T) {
|
||||
|
||||
// complete first collection
|
||||
stats := &proto.Stats{SessionCountJetbrains: 55}
|
||||
testutil.RequireSendCtx(ctx, t, fCollector.stats, stats)
|
||||
testutil.RequireSend(ctx, t, fCollector.stats, stats)
|
||||
|
||||
// destination called to report the first stats
|
||||
update := testutil.RequireRecvCtx(ctx, t, fDest.reqs)
|
||||
update := testutil.TryReceive(ctx, t, fDest.reqs)
|
||||
require.NotNil(t, update)
|
||||
require.Equal(t, stats, update.Stats)
|
||||
testutil.RequireSendCtx(ctx, t, fDest.resps, &proto.UpdateStatsResponse{ReportInterval: durationpb.New(interval)})
|
||||
testutil.RequireSend(ctx, t, fDest.resps, &proto.UpdateStatsResponse{ReportInterval: durationpb.New(interval)})
|
||||
|
||||
// second update -- netStat0 and netStats1 are accumulated and reported
|
||||
wantNetStats := map[netlogtype.Connection]netlogtype.Counts{
|
||||
@@ -115,22 +115,22 @@ func TestStatsReporter(t *testing.T) {
|
||||
RxBytes: 21,
|
||||
},
|
||||
}
|
||||
gotNetStats = testutil.RequireRecvCtx(ctx, t, fCollector.calls)
|
||||
gotNetStats = testutil.TryReceive(ctx, t, fCollector.calls)
|
||||
require.Equal(t, wantNetStats, gotNetStats)
|
||||
stats = &proto.Stats{SessionCountJetbrains: 66}
|
||||
testutil.RequireSendCtx(ctx, t, fCollector.stats, stats)
|
||||
update = testutil.RequireRecvCtx(ctx, t, fDest.reqs)
|
||||
testutil.RequireSend(ctx, t, fCollector.stats, stats)
|
||||
update = testutil.TryReceive(ctx, t, fDest.reqs)
|
||||
require.NotNil(t, update)
|
||||
require.Equal(t, stats, update.Stats)
|
||||
interval2 := 27 * time.Second
|
||||
testutil.RequireSendCtx(ctx, t, fDest.resps, &proto.UpdateStatsResponse{ReportInterval: durationpb.New(interval2)})
|
||||
testutil.RequireSend(ctx, t, fDest.resps, &proto.UpdateStatsResponse{ReportInterval: durationpb.New(interval2)})
|
||||
|
||||
// set the new interval
|
||||
gotInterval = testutil.RequireRecvCtx(ctx, t, fSource.period)
|
||||
gotInterval = testutil.TryReceive(ctx, t, fSource.period)
|
||||
require.Equal(t, interval2, gotInterval)
|
||||
|
||||
loopCancel()
|
||||
err := testutil.RequireRecvCtx(ctx, t, loopErr)
|
||||
err := testutil.TryReceive(ctx, t, loopErr)
|
||||
require.NoError(t, err)
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user