@@ -1183,9 +1183,8 @@ func TestPostWorkspaceBuild(t *testing.T) {
11831183 })
11841184}
11851185
1186+ //nolint:paralleltest
11861187func TestWorkspaceBuildTimings (t * testing.T ) {
1187- t .Parallel ()
1188-
11891188 // Setup the test environment with a template and version
11901189 db , pubsub := dbtestutil .NewDB (t )
11911190 client := coderdtest .New (t , & coderdtest.Options {
@@ -1214,16 +1213,15 @@ func TestWorkspaceBuildTimings(t *testing.T) {
12141213 ActiveVersionID : version .ID ,
12151214 CreatedBy : owner .UserID ,
12161215 })
1217- ws := dbgen .Workspace (t , db , database.Workspace {
1218- OwnerID : owner .UserID ,
1219- OrganizationID : owner .OrganizationID ,
1220- TemplateID : template .ID ,
1221- })
12221216
1223- // Create a build to attach timings
1224- var buildNumber int32
1217+ // Tests will run in parallel. To avoid conflicts and race conditions on the
1218+ // build number, each test will have its own workspace and build.
12251219 makeBuild := func () database.WorkspaceBuild {
1226- buildNumber ++
1220+ ws := dbgen .Workspace (t , db , database.Workspace {
1221+ OwnerID : owner .UserID ,
1222+ OrganizationID : owner .OrganizationID ,
1223+ TemplateID : template .ID ,
1224+ })
12271225 jobID := uuid .New ()
12281226 job := dbgen .ProvisionerJob (t , db , pubsub , database.ProvisionerJob {
12291227 ID : jobID ,
@@ -1235,13 +1233,12 @@ func TestWorkspaceBuildTimings(t *testing.T) {
12351233 TemplateVersionID : version .ID ,
12361234 InitiatorID : owner .UserID ,
12371235 JobID : job .ID ,
1238- BuildNumber : buildNumber ,
1236+ BuildNumber : 1 ,
12391237 })
12401238 }
12411239
1240+ //nolint:paralleltest
12421241 t .Run ("NonExistentBuild" , func (t * testing.T ) {
1243- t .Parallel ()
1244-
12451242 // When: fetching an inexistent build
12461243 buildID := uuid .New ()
12471244 ctx , cancel := context .WithTimeout (context .Background (), testutil .WaitLong )
@@ -1253,9 +1250,8 @@ func TestWorkspaceBuildTimings(t *testing.T) {
12531250 require .Contains (t , err .Error (), "not found" )
12541251 })
12551252
1253+ //nolint:paralleltest
12561254 t .Run ("EmptyTimings" , func (t * testing.T ) {
1257- t .Parallel ()
1258-
12591255 // When: fetching timings for a build with no timings
12601256 build := makeBuild ()
12611257 ctx , cancel := context .WithTimeout (context .Background (), testutil .WaitLong )
@@ -1268,9 +1264,8 @@ func TestWorkspaceBuildTimings(t *testing.T) {
12681264 require .Empty (t , res .AgentScriptTimings )
12691265 })
12701266
1267+ //nolint:paralleltest
12711268 t .Run ("ProvisionerTimings" , func (t * testing.T ) {
1272- t .Parallel ()
1273-
12741269 // When: fetching timings for a build with provisioner timings
12751270 build := makeBuild ()
12761271 provisionerTimings := dbgen .ProvisionerJobTimings (t , db , build , 5 )
@@ -1295,9 +1290,8 @@ func TestWorkspaceBuildTimings(t *testing.T) {
12951290 }
12961291 })
12971292
1293+ //nolint:paralleltest
12981294 t .Run ("AgentScriptTimings" , func (t * testing.T ) {
1299- t .Parallel ()
1300-
13011295 // When: fetching timings for a build with agent script timings
13021296 build := makeBuild ()
13031297 resource := dbgen .WorkspaceResource (t , db , database.WorkspaceResource {
@@ -1329,9 +1323,8 @@ func TestWorkspaceBuildTimings(t *testing.T) {
13291323 }
13301324 })
13311325
1326+ //nolint:paralleltest
13321327 t .Run ("NoAgentScripts" , func (t * testing.T ) {
1333- t .Parallel ()
1334-
13351328 // When: fetching timings for a build with no agent scripts
13361329 build := makeBuild ()
13371330 resource := dbgen .WorkspaceResource (t , db , database.WorkspaceResource {
@@ -1350,16 +1343,16 @@ func TestWorkspaceBuildTimings(t *testing.T) {
13501343 })
13511344
13521345 // Some workspaces might not have agents. It is improbable, but possible.
1346+ //nolint:paralleltest
13531347 t .Run ("NoAgents" , func (t * testing.T ) {
1354- t .Parallel ()
1355-
13561348 // When: fetching timings for a build with no agents
13571349 build := makeBuild ()
13581350 dbgen .WorkspaceResource (t , db , database.WorkspaceResource {
13591351 JobID : build .JobID ,
13601352 })
13611353
13621354 // Then: return a response with empty agent script timings
1355+ // trigger build
13631356 ctx , cancel := context .WithTimeout (context .Background (), testutil .WaitLong )
13641357 t .Cleanup (cancel )
13651358 res , err := client .WorkspaceBuildTimings (ctx , build .ID )
0 commit comments