Skip to content

Commit

Permalink
internal/daemon: speed up multi-worker tests
Browse files Browse the repository at this point in the history
Instead of sleeping, we can poll for the desired state. Also,
run shutdowns in parallel.
  • Loading branch information
johanbrandhorst committed Dec 17, 2024
1 parent b2bcd8f commit 06be42f
Showing 1 changed file with 24 additions and 15 deletions.
39 changes: 24 additions & 15 deletions internal/daemon/worker/testing.go
Original file line number Diff line number Diff line change
Expand Up @@ -456,9 +456,6 @@ func NewTestMultihopWorkers(t testing.TB,
})
t.Cleanup(kmsWorker.Shutdown)

// Give time for it to be inserted into the database
time.Sleep(2 * time.Second)

// names should not be set when using pki workers
pkiWorkerConf, err := config.DevWorker()
require.NoError(err)
Expand All @@ -476,9 +473,6 @@ func NewTestMultihopWorkers(t testing.TB,
})
t.Cleanup(pkiWorker.Shutdown)

// Give time for it to be inserted into the database
time.Sleep(2 * time.Second)

// Get a server repo and worker auth repo
serversRepo, err := serversRepoFn()
require.NoError(err)
Expand Down Expand Up @@ -513,9 +507,6 @@ func NewTestMultihopWorkers(t testing.TB,
})
t.Cleanup(childPkiWorker.Shutdown)

// Give time for it to be inserted into the database
time.Sleep(2 * time.Second)

// Perform initial authentication of worker to controller
reqBytes, err = base58.FastBase58Decoding(childPkiWorker.Worker().WorkerAuthRegistrationRequest)
require.NoError(err)
Expand Down Expand Up @@ -548,16 +539,34 @@ func NewTestMultihopWorkers(t testing.TB,
WorkerAuthDebuggingEnabled: enableAuthDebugging,
DisableAutoStart: true,
})
t.Cleanup(childKmsWorker.Shutdown)
childKmsWorker.w.conf.WorkerAuthStorageKms = nil

err = childKmsWorker.w.Start()
t.Cleanup(childKmsWorker.Shutdown)
if err != nil {
t.Fatal(err)
}
require.NoError(err)

// Sleep so that workers can startup and connect.
time.Sleep(12 * time.Second)
t.Log("Waiting for workers to start up")
require.Eventually(
func() bool {
t.Log("Checking worker status")
workers, err := serversRepo.ListWorkers(controllerContext, []string{"global"})
if err != nil {
return false
}
if len(workers) != 4 {
return false
}
for _, w := range workers {
if w.LastStatusTime == nil {
return false
}
}
return true
},
30*time.Second,
time.Second,
)
t.Log("All workers have started")

return kmsWorker, pkiWorker, childPkiWorker, childKmsWorker
}
Expand Down

0 comments on commit 06be42f

Please sign in to comment.