@@ -35,6 +35,7 @@ import (
35
35
"go.uber.org/goleak"
36
36
"golang.org/x/crypto/ssh"
37
37
"golang.org/x/exp/maps"
38
+ "golang.org/x/exp/slices"
38
39
"golang.org/x/xerrors"
39
40
"tailscale.com/net/speedtest"
40
41
"tailscale.com/tailcfg"
@@ -1099,7 +1100,7 @@ func TestAgent_Lifecycle(t *testing.T) {
1099
1100
t .Parallel ()
1100
1101
1101
1102
_ , client , _ , _ , _ := setupAgent (t , agentsdk.Manifest {
1102
- StartupScript : "sleep 5 " ,
1103
+ StartupScript : "sleep 3 " ,
1103
1104
StartupScriptTimeout : time .Nanosecond ,
1104
1105
}, 0 )
1105
1106
@@ -1111,10 +1112,10 @@ func TestAgent_Lifecycle(t *testing.T) {
1111
1112
var got []codersdk.WorkspaceAgentLifecycle
1112
1113
assert .Eventually (t , func () bool {
1113
1114
got = client .getLifecycleStates ()
1114
- return len (got ) > 0 && got [ len ( got ) - 1 ] == want [len (want )- 1 ]
1115
+ return slices . Contains (got , want [len (want )- 1 ])
1115
1116
}, testutil .WaitShort , testutil .IntervalMedium )
1116
1117
1117
- require .Equal (t , want , got )
1118
+ require .Equal (t , want , got [: len ( want )] )
1118
1119
})
1119
1120
1120
1121
t .Run ("StartError" , func (t * testing.T ) {
@@ -1133,10 +1134,10 @@ func TestAgent_Lifecycle(t *testing.T) {
1133
1134
var got []codersdk.WorkspaceAgentLifecycle
1134
1135
assert .Eventually (t , func () bool {
1135
1136
got = client .getLifecycleStates ()
1136
- return len (got ) > 0 && got [ len ( got ) - 1 ] == want [len (want )- 1 ]
1137
+ return slices . Contains (got , want [len (want )- 1 ])
1137
1138
}, testutil .WaitShort , testutil .IntervalMedium )
1138
1139
1139
- require .Equal (t , want , got )
1140
+ require .Equal (t , want , got [: len ( want )] )
1140
1141
})
1141
1142
1142
1143
t .Run ("Ready" , func (t * testing.T ) {
@@ -1165,14 +1166,12 @@ func TestAgent_Lifecycle(t *testing.T) {
1165
1166
t .Parallel ()
1166
1167
1167
1168
_ , client , _ , _ , closer := setupAgent (t , agentsdk.Manifest {
1168
- ShutdownScript : "sleep 5 " ,
1169
+ ShutdownScript : "sleep 3 " ,
1169
1170
StartupScriptTimeout : 30 * time .Second ,
1170
1171
}, 0 )
1171
1172
1172
- var ready []codersdk.WorkspaceAgentLifecycle
1173
1173
assert .Eventually (t , func () bool {
1174
- ready = client .getLifecycleStates ()
1175
- return len (ready ) > 0 && ready [len (ready )- 1 ] == codersdk .WorkspaceAgentLifecycleReady
1174
+ return slices .Contains (client .getLifecycleStates (), codersdk .WorkspaceAgentLifecycleReady )
1176
1175
}, testutil .WaitShort , testutil .IntervalMedium )
1177
1176
1178
1177
// Start close asynchronously so that we an inspect the state.
@@ -1187,30 +1186,30 @@ func TestAgent_Lifecycle(t *testing.T) {
1187
1186
})
1188
1187
1189
1188
want := []codersdk.WorkspaceAgentLifecycle {
1189
+ codersdk .WorkspaceAgentLifecycleStarting ,
1190
+ codersdk .WorkspaceAgentLifecycleReady ,
1190
1191
codersdk .WorkspaceAgentLifecycleShuttingDown ,
1191
1192
}
1192
1193
1193
1194
var got []codersdk.WorkspaceAgentLifecycle
1194
1195
assert .Eventually (t , func () bool {
1195
- got = client .getLifecycleStates ()[ len ( ready ):]
1196
- return len (got ) > 0 && got [ len ( got ) - 1 ] == want [len (want )- 1 ]
1196
+ got = client .getLifecycleStates ()
1197
+ return slices . Contains (got , want [len (want )- 1 ])
1197
1198
}, testutil .WaitShort , testutil .IntervalMedium )
1198
1199
1199
- require .Equal (t , want , got )
1200
+ require .Equal (t , want , got [: len ( want )] )
1200
1201
})
1201
1202
1202
1203
t .Run ("ShutdownTimeout" , func (t * testing.T ) {
1203
1204
t .Parallel ()
1204
1205
1205
1206
_ , client , _ , _ , closer := setupAgent (t , agentsdk.Manifest {
1206
- ShutdownScript : "sleep 5 " ,
1207
+ ShutdownScript : "sleep 3 " ,
1207
1208
ShutdownScriptTimeout : time .Nanosecond ,
1208
1209
}, 0 )
1209
1210
1210
- var ready []codersdk.WorkspaceAgentLifecycle
1211
1211
assert .Eventually (t , func () bool {
1212
- ready = client .getLifecycleStates ()
1213
- return len (ready ) > 0 && ready [len (ready )- 1 ] == codersdk .WorkspaceAgentLifecycleReady
1212
+ return slices .Contains (client .getLifecycleStates (), codersdk .WorkspaceAgentLifecycleReady )
1214
1213
}, testutil .WaitShort , testutil .IntervalMedium )
1215
1214
1216
1215
// Start close asynchronously so that we an inspect the state.
@@ -1225,17 +1224,19 @@ func TestAgent_Lifecycle(t *testing.T) {
1225
1224
})
1226
1225
1227
1226
want := []codersdk.WorkspaceAgentLifecycle {
1227
+ codersdk .WorkspaceAgentLifecycleStarting ,
1228
+ codersdk .WorkspaceAgentLifecycleReady ,
1228
1229
codersdk .WorkspaceAgentLifecycleShuttingDown ,
1229
1230
codersdk .WorkspaceAgentLifecycleShutdownTimeout ,
1230
1231
}
1231
1232
1232
1233
var got []codersdk.WorkspaceAgentLifecycle
1233
1234
assert .Eventually (t , func () bool {
1234
- got = client .getLifecycleStates ()[ len ( ready ):]
1235
- return len (got ) > 0 && got [ len ( got ) - 1 ] == want [len (want )- 1 ]
1235
+ got = client .getLifecycleStates ()
1236
+ return slices . Contains (got , want [len (want )- 1 ])
1236
1237
}, testutil .WaitShort , testutil .IntervalMedium )
1237
1238
1238
- require .Equal (t , want , got )
1239
+ require .Equal (t , want , got [: len ( want )] )
1239
1240
})
1240
1241
1241
1242
t .Run ("ShutdownError" , func (t * testing.T ) {
@@ -1246,10 +1247,8 @@ func TestAgent_Lifecycle(t *testing.T) {
1246
1247
ShutdownScriptTimeout : 30 * time .Second ,
1247
1248
}, 0 )
1248
1249
1249
- var ready []codersdk.WorkspaceAgentLifecycle
1250
1250
assert .Eventually (t , func () bool {
1251
- ready = client .getLifecycleStates ()
1252
- return len (ready ) > 0 && ready [len (ready )- 1 ] == codersdk .WorkspaceAgentLifecycleReady
1251
+ return slices .Contains (client .getLifecycleStates (), codersdk .WorkspaceAgentLifecycleReady )
1253
1252
}, testutil .WaitShort , testutil .IntervalMedium )
1254
1253
1255
1254
// Start close asynchronously so that we an inspect the state.
@@ -1264,17 +1263,19 @@ func TestAgent_Lifecycle(t *testing.T) {
1264
1263
})
1265
1264
1266
1265
want := []codersdk.WorkspaceAgentLifecycle {
1266
+ codersdk .WorkspaceAgentLifecycleStarting ,
1267
+ codersdk .WorkspaceAgentLifecycleReady ,
1267
1268
codersdk .WorkspaceAgentLifecycleShuttingDown ,
1268
1269
codersdk .WorkspaceAgentLifecycleShutdownError ,
1269
1270
}
1270
1271
1271
1272
var got []codersdk.WorkspaceAgentLifecycle
1272
1273
assert .Eventually (t , func () bool {
1273
- got = client .getLifecycleStates ()[ len ( ready ):]
1274
- return len (got ) > 0 && got [ len ( got ) - 1 ] == want [len (want )- 1 ]
1274
+ got = client .getLifecycleStates ()
1275
+ return slices . Contains (got , want [len (want )- 1 ])
1275
1276
}, testutil .WaitShort , testutil .IntervalMedium )
1276
1277
1277
- require .Equal (t , want , got )
1278
+ require .Equal (t , want , got [: len ( want )] )
1278
1279
})
1279
1280
1280
1281
t .Run ("ShutdownScriptOnce" , func (t * testing.T ) {
0 commit comments