Skip to content

Commit c5f0d41

Browse files
committed
address more review feedback; mostly around provisioner closers in the
new test Signed-off-by: Callum Styan <callumstyan@gmail.com>
1 parent 5a6493c commit c5f0d41

File tree

2 files changed

+25
-8
lines changed

2 files changed

+25
-8
lines changed

coderd/autobuild/lifecycle_executor_test.go

Lines changed: 24 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,10 @@ import (
3737
"github.com/coder/coder/v2/testutil"
3838
)
3939

40+
func TestMain(m *testing.M) {
41+
goleak.VerifyTestMain(m, testutil.GoleakOptions...)
42+
}
43+
4044
func TestExecutorAutostartOK(t *testing.T) {
4145
t.Parallel()
4246

@@ -1663,10 +1667,6 @@ func mustWorkspaceParameters(t *testing.T, client *codersdk.Client, workspaceID
16631667
require.NotEmpty(t, buildParameters)
16641668
}
16651669

1666-
func TestMain(m *testing.M) {
1667-
goleak.VerifyTestMain(m, testutil.GoleakOptions...)
1668-
}
1669-
16701670
func TestExecutorAutostartSkipsWhenNoProvisionersAvailable(t *testing.T) {
16711671
t.Parallel()
16721672

@@ -1680,11 +1680,19 @@ func TestExecutorAutostartSkipsWhenNoProvisionersAvailable(t *testing.T) {
16801680
// We can't overwrite owner or scope as there's a `provisionersdk.MutateTags` function that has restrictions on those.
16811681
provisionerDaemonTags := map[string]string{"test-tag": "asdf"}
16821682
t.Logf("Setting provisioner daemon tags: %v", provisionerDaemonTags)
1683-
client, db := coderdtest.NewWithDatabase(t, &coderdtest.Options{
1683+
1684+
db, ps := dbtestutil.NewDB(t)
1685+
client, _, api := coderdtest.NewWithAPI(t, &coderdtest.Options{
1686+
Database: db,
1687+
Pubsub: ps,
1688+
IncludeProvisionerDaemon: false,
16841689
AutobuildTicker: tickCh,
1685-
IncludeProvisionerDaemon: true,
16861690
AutobuildStats: statsCh,
1687-
ProvisionerDaemonTags: provisionerDaemonTags,
1691+
})
1692+
1693+
daemon1Closer := coderdtest.NewTaggedProvisionerDaemon(t, api, "name", provisionerDaemonTags)
1694+
t.Cleanup(func() {
1695+
_ = daemon1Closer.Close()
16881696
})
16891697

16901698
// Create workspace with autostart enabled and matching provisioner tags
@@ -1700,6 +1708,8 @@ func TestExecutorAutostartSkipsWhenNoProvisionersAvailable(t *testing.T) {
17001708
p, err := coderdtest.GetProvisionerForTags(db, time.Now(), workspace.OrganizationID, provisionerDaemonTags)
17011709
require.NoError(t, err, "Error getting provisioner for workspace")
17021710

1711+
daemon1Closer.Close()
1712+
17031713
// Ensure the provisioner is stale
17041714
staleTime := sched.Next(workspace.LatestBuild.CreatedAt).Add((-1 * provisionerdserver.StaleInterval) + -10*time.Second)
17051715
coderdtest.UpdateProvisionerLastSeenAt(t, db, p.ID, staleTime)
@@ -1713,7 +1723,14 @@ func TestExecutorAutostartSkipsWhenNoProvisionersAvailable(t *testing.T) {
17131723
// UpdateProvisionerLastSeenAt call above.
17141724
assert.Len(t, stats.Transitions, 0, "should not create builds when no provisioners available")
17151725

1726+
daemon2Closer := coderdtest.NewTaggedProvisionerDaemon(t, api, "name", provisionerDaemonTags)
1727+
t.Cleanup(func() {
1728+
_ = daemon2Closer.Close()
1729+
})
1730+
17161731
// Ensure the provisioner is NOT stale, and see if we get a successful state transition.
1732+
p, err = coderdtest.GetProvisionerForTags(db, time.Now(), workspace.OrganizationID, provisionerDaemonTags)
1733+
require.NoError(t, err, "Error getting provisioner for workspace")
17171734
notStaleTime := sched.Next(workspace.LatestBuild.CreatedAt).Add((-1 * provisionerdserver.StaleInterval) + 10*time.Second)
17181735
coderdtest.UpdateProvisionerLastSeenAt(t, db, p.ID, notStaleTime)
17191736

coderd/coderdtest/coderdtest.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1706,7 +1706,7 @@ func MustWaitForProvisionersAvailable(t *testing.T, db database.Store, workspace
17061706
}
17071707
}
17081708
return false // No active provisioners found
1709-
}, testutil.WaitShort, testutil.IntervalFast)
1709+
}, testutil.WaitLong, testutil.IntervalFast)
17101710

17111711
return id
17121712
}

0 commit comments

Comments
 (0)