diff --git a/.changelog/10566.txt b/.changelog/10566.txt new file mode 100644 index 0000000000..4e58209878 --- /dev/null +++ b/.changelog/10566.txt @@ -0,0 +1,3 @@ +```release-note:enhancement +Allow configuring graceful stop in testutil. +``` diff --git a/sdk/testutil/server.go b/sdk/testutil/server.go index b5d4de77ec..ba38c8fed7 100644 --- a/sdk/testutil/server.go +++ b/sdk/testutil/server.go @@ -101,7 +101,9 @@ type TestServerConfig struct { EnableScriptChecks bool `json:"enable_script_checks,omitempty"` Connect map[string]interface{} `json:"connect,omitempty"` EnableDebug bool `json:"enable_debug,omitempty"` + SkipLeaveOnInt bool `json:"skip_leave_on_interrupt"` ReadyTimeout time.Duration `json:"-"` + StopTimeout time.Duration `json:"-"` Stdout io.Writer `json:"-"` Stderr io.Writer `json:"-"` Args []string `json:"-"` @@ -163,7 +165,9 @@ func defaultServerConfig(t TestingTB) *TestServerConfig { SerfWan: ports[4], Server: ports[5], }, - ReadyTimeout: 10 * time.Second, + ReadyTimeout: 10 * time.Second, + StopTimeout: 10 * time.Second, + SkipLeaveOnInt: true, Connect: map[string]interface{}{ "enabled": true, "ca_config": map[string]interface{}{ @@ -340,7 +344,7 @@ func (s *TestServer) Stop() error { select { case err := <-waitDone: return err - case <-time.After(10 * time.Second): + case <-time.After(s.Config.StopTimeout): s.cmd.Process.Signal(syscall.SIGABRT) <-waitDone return fmt.Errorf("timeout waiting for server to stop gracefully")