mirror of
https://github.com/kemko/nomad.git
synced 2026-01-06 18:35:44 +03:00
testutil: Start vault in the same routine as waiting
This is a workaround for the windows process model. Go os/exec does not pass the parent process handle to the child processes STARTUPINFO struct, this means that unless we wait in the _same_ execution context as Starting the process, the handle will be lost, and we cannot kill it without regaining a handle. A better long term solution would be a higher level process abstraction that uses windows.CreateProcess on windows.
This commit is contained in:
committed by
Danielle Tomlinson
parent
dcce2d7247
commit
d81e632157
@@ -167,13 +167,15 @@ func NewTestVaultDelayed(t testing.T) *TestVault {
|
||||
// Start starts the test Vault server and waits for it to respond to its HTTP
|
||||
// API
|
||||
func (tv *TestVault) Start() error {
|
||||
if err := tv.cmd.Start(); err != nil {
|
||||
tv.t.Fatalf("failed to start vault: %v", err)
|
||||
}
|
||||
|
||||
// Start the waiter
|
||||
tv.waitCh = make(chan error, 1)
|
||||
|
||||
go func() {
|
||||
if err := tv.cmd.Start(); err != nil {
|
||||
tv.waitCh <- err
|
||||
return
|
||||
}
|
||||
|
||||
err := tv.cmd.Wait()
|
||||
tv.waitCh <- err
|
||||
}()
|
||||
|
||||
Reference in New Issue
Block a user