mirror of
https://github.com/kemko/nomad.git
synced 2026-01-04 09:25:46 +03:00
Merge pull request #8083 from hashicorp/test-deflake-20200531
More Test deflaking - 2020-05-31 edition
This commit is contained in:
@@ -20,6 +20,7 @@ import (
|
||||
"net/http"
|
||||
"os"
|
||||
"os/exec"
|
||||
"time"
|
||||
|
||||
cleanhttp "github.com/hashicorp/go-cleanhttp"
|
||||
"github.com/hashicorp/nomad/api/internal/testutil/discover"
|
||||
@@ -231,13 +232,35 @@ func NewTestServer(t testing.T, cb ServerConfigCallback) *TestServer {
|
||||
func (s *TestServer) Stop() {
|
||||
defer os.RemoveAll(s.Config.DataDir)
|
||||
|
||||
if err := s.cmd.Process.Kill(); err != nil {
|
||||
// wait for the process to exit to be sure that the data dir can be
|
||||
// deleted on all platforms.
|
||||
done := make(chan struct{})
|
||||
go func() {
|
||||
defer close(done)
|
||||
|
||||
s.cmd.Wait()
|
||||
}()
|
||||
|
||||
// kill and wait gracefully
|
||||
if err := s.cmd.Process.Signal(os.Interrupt); err != nil {
|
||||
s.t.Errorf("err: %s", err)
|
||||
}
|
||||
|
||||
// wait for the process to exit to be sure that the data dir can be
|
||||
// deleted on all platforms.
|
||||
s.cmd.Wait()
|
||||
select {
|
||||
case <-done:
|
||||
return
|
||||
case <-time.After(5 * time.Second):
|
||||
s.t.Logf("timed out waiting for process to gracefully terminate")
|
||||
}
|
||||
|
||||
if err := s.cmd.Process.Kill(); err != nil {
|
||||
s.t.Errorf("err: %s", err)
|
||||
}
|
||||
select {
|
||||
case <-done:
|
||||
case <-time.After(5 * time.Second):
|
||||
s.t.Logf("timed out waiting for process to be killed")
|
||||
}
|
||||
}
|
||||
|
||||
// waitForAPI waits for only the agent HTTP endpoint to start
|
||||
|
||||
@@ -40,7 +40,7 @@ func TestAllocations_Restart(t *testing.T) {
|
||||
Mode: nstructs.RestartPolicyModeFail,
|
||||
}
|
||||
a.Job.TaskGroups[0].Tasks[0].Config = map[string]interface{}{
|
||||
"run_for": "10ms",
|
||||
"run_for": "10s",
|
||||
}
|
||||
require.Nil(client.addAlloc(a, ""))
|
||||
|
||||
|
||||
@@ -157,8 +157,8 @@ func TestExecutor_Start_Wait_Failure_Code(pt *testing.T) {
|
||||
require := require.New(t)
|
||||
testExecCmd := testExecutorCommand(t)
|
||||
execCmd, allocDir := testExecCmd.command, testExecCmd.allocDir
|
||||
execCmd.Cmd = "/bin/date"
|
||||
execCmd.Args = []string{"fail"}
|
||||
execCmd.Cmd = "/bin/sh"
|
||||
execCmd.Args = []string{"-c", "sleep 1; /bin/date fail"}
|
||||
factory.configureExecCmd(t, execCmd)
|
||||
defer allocDir.Destroy()
|
||||
executor := factory.new(testlog.HCLogger(t))
|
||||
|
||||
Reference in New Issue
Block a user