Skip to content

Commit a9576f8

Browse files
committed
chore: Reduce test times
1 parent aae5747 commit a9576f8

File tree

4 files changed

+16
-91
lines changed

4 files changed

+16
-91
lines changed

coderd/coderdtest/coderdtest.go

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -455,11 +455,11 @@ func AwaitTemplateVersionJob(t *testing.T, client *codersdk.Client, version uuid
455455

456456
t.Logf("waiting for template version job %s", version)
457457
var templateVersion codersdk.TemplateVersion
458-
require.True(t, testutil.EventuallyShort(t, func(ctx context.Context) bool {
458+
require.Eventually(t, func() bool {
459459
var err error
460-
templateVersion, err = client.TemplateVersion(ctx, version)
460+
templateVersion, err = client.TemplateVersion(context.Background(), version)
461461
return assert.NoError(t, err) && templateVersion.Job.CompletedAt != nil
462-
}))
462+
}, testutil.WaitShort, testutil.IntervalFast)
463463
return templateVersion
464464
}
465465

@@ -469,10 +469,10 @@ func AwaitWorkspaceBuildJob(t *testing.T, client *codersdk.Client, build uuid.UU
469469

470470
t.Logf("waiting for workspace build job %s", build)
471471
var workspaceBuild codersdk.WorkspaceBuild
472-
require.True(t, testutil.EventuallyShort(t, func(ctx context.Context) bool {
473-
workspaceBuild, err := client.WorkspaceBuild(ctx, build)
472+
require.Eventually(t, func() bool {
473+
workspaceBuild, err := client.WorkspaceBuild(context.Background(), build)
474474
return assert.NoError(t, err) && workspaceBuild.Job.CompletedAt != nil
475-
}))
475+
}, testutil.WaitShort, testutil.IntervalFast)
476476
return workspaceBuild
477477
}
478478

@@ -482,9 +482,9 @@ func AwaitWorkspaceAgents(t *testing.T, client *codersdk.Client, build uuid.UUID
482482

483483
t.Logf("waiting for workspace agents (build %s)", build)
484484
var resources []codersdk.WorkspaceResource
485-
require.True(t, testutil.EventuallyLong(t, func(ctx context.Context) bool {
485+
require.Eventually(t, func() bool {
486486
var err error
487-
resources, err = client.WorkspaceResourcesByBuild(ctx, build)
487+
resources, err = client.WorkspaceResourcesByBuild(context.Background(), build)
488488
if !assert.NoError(t, err) {
489489
return false
490490
}
@@ -497,7 +497,7 @@ func AwaitWorkspaceAgents(t *testing.T, client *codersdk.Client, build uuid.UUID
497497
}
498498
}
499499
return true
500-
}))
500+
}, testutil.WaitLong, testutil.IntervalFast)
501501
return resources
502502
}
503503

coderd/templateversions_test.go

Lines changed: 7 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -809,32 +809,24 @@ func TestTemplateVersionDryRun(t *testing.T) {
809809
func TestPaginatedTemplateVersions(t *testing.T) {
810810
t.Parallel()
811811

812-
client := coderdtest.New(t, &coderdtest.Options{APIRateLimit: -1, IncludeProvisionerD: true})
813-
// Prepare database.
812+
client := coderdtest.New(t, &coderdtest.Options{APIRateLimit: -1})
814813
user := coderdtest.CreateFirstUser(t, client)
815814
version := coderdtest.CreateTemplateVersion(t, client, user.OrganizationID, nil)
816-
_ = coderdtest.AwaitTemplateVersionJob(t, client, version.ID)
817815
template := coderdtest.CreateTemplate(t, client, user.OrganizationID, version.ID)
818816

819-
// This test takes longer than a long time.
820-
ctx, cancel := context.WithTimeout(context.Background(), testutil.WaitLong*2)
817+
ctx, cancel := context.WithCancel(context.Background())
821818
t.Cleanup(cancel)
822-
823819
// Populate database with template versions.
824820
total := 9
825821
eg, egCtx := errgroup.WithContext(ctx)
826822
templateVersionIDs := make([]uuid.UUID, total)
823+
data, err := echo.Tar(nil)
824+
require.NoError(t, err)
825+
file, err := client.Upload(egCtx, codersdk.ContentTypeTar, data)
826+
require.NoError(t, err)
827827
for i := 0; i < total; i++ {
828828
i := i
829829
eg.Go(func() error {
830-
data, err := echo.Tar(nil)
831-
if err != nil {
832-
return err
833-
}
834-
file, err := client.Upload(egCtx, codersdk.ContentTypeTar, data)
835-
if err != nil {
836-
return err
837-
}
838830
templateVersion, err := client.CreateTemplateVersion(egCtx, user.OrganizationID, codersdk.CreateTemplateVersionRequest{
839831
TemplateID: template.ID,
840832
StorageSource: file.Hash,
@@ -844,29 +836,13 @@ func TestPaginatedTemplateVersions(t *testing.T) {
844836
if err != nil {
845837
return err
846838
}
847-
848839
templateVersionIDs[i] = templateVersion.ID
849-
850840
return nil
851841
})
852842
}
853-
err := eg.Wait()
843+
err = eg.Wait()
854844
require.NoError(t, err, "create templates failed")
855845

856-
for i := 0; i < len(templateVersionIDs); i++ {
857-
// We don't use coderdtest.AwaitTemplateVersionJob here because
858-
// we can't control the timeouts, the concurrent creations take
859-
// a while.
860-
templateVersion, err := client.TemplateVersion(ctx, templateVersionIDs[i])
861-
if err == nil && templateVersion.Job.CompletedAt != nil {
862-
continue
863-
}
864-
require.NotErrorIs(t, err, context.DeadlineExceeded, "template version %d not created in time", i)
865-
// Retry.
866-
time.Sleep(testutil.IntervalMedium)
867-
i--
868-
}
869-
870846
templateVersions, err := client.TemplateVersionsByTemplate(ctx,
871847
codersdk.TemplateVersionsByTemplateRequest{
872848
TemplateID: template.ID,

testutil/eventually.go

Lines changed: 0 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -44,27 +44,3 @@ func Eventually(ctx context.Context, t testing.TB, condition func(context.Contex
4444
}
4545
}
4646
}
47-
48-
// EventuallyShort is a convenience function that runs Eventually with
49-
// IntervalFast and times out after WaitShort.
50-
func EventuallyShort(t testing.TB, condition func(context.Context) bool) bool {
51-
ctx, cancel := context.WithTimeout(context.Background(), WaitShort)
52-
defer cancel()
53-
return Eventually(ctx, t, condition, IntervalFast)
54-
}
55-
56-
// EventuallyMedium is a convenience function that runs Eventually with
57-
// IntervalMedium and times out after WaitMedium.
58-
func EventuallyMedium(t testing.TB, condition func(context.Context) bool) bool {
59-
ctx, cancel := context.WithTimeout(context.Background(), WaitMedium)
60-
defer cancel()
61-
return Eventually(ctx, t, condition, IntervalMedium)
62-
}
63-
64-
// EventuallyLong is a convenience function that runs Eventually with
65-
// IntervalSlow and times out after WaitLong.
66-
func EventuallyLong(t testing.TB, condition func(context.Context) bool) bool {
67-
ctx, cancel := context.WithTimeout(context.Background(), WaitLong)
68-
defer cancel()
69-
return Eventually(ctx, t, condition, IntervalSlow)
70-
}

testutil/eventually_test.go

Lines changed: 0 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -30,18 +30,6 @@ func TestEventually(t *testing.T) {
3030
testutil.Eventually(ctx, t, condition, testutil.IntervalFast)
3131
})
3232

33-
t.Run("Timeout", func(t *testing.T) {
34-
t.Parallel()
35-
condition := func(_ context.Context) bool {
36-
return false
37-
}
38-
ctx, cancel := context.WithTimeout(context.Background(), testutil.WaitShort)
39-
defer cancel()
40-
mockT := new(testing.T)
41-
testutil.Eventually(ctx, mockT, condition, testutil.IntervalFast)
42-
assert.True(t, mockT.Failed())
43-
})
44-
4533
t.Run("Panic", func(t *testing.T) {
4634
t.Parallel()
4735

@@ -52,19 +40,4 @@ func TestEventually(t *testing.T) {
5240
}
5341
assert.Panics(t, panicky)
5442
})
55-
56-
t.Run("Short", func(t *testing.T) {
57-
t.Parallel()
58-
testutil.EventuallyShort(t, func(_ context.Context) bool { return true })
59-
})
60-
61-
t.Run("Medium", func(t *testing.T) {
62-
t.Parallel()
63-
testutil.EventuallyMedium(t, func(_ context.Context) bool { return true })
64-
})
65-
66-
t.Run("Long", func(t *testing.T) {
67-
t.Parallel()
68-
testutil.EventuallyLong(t, func(_ context.Context) bool { return true })
69-
})
7043
}

0 commit comments

Comments
 (0)