Allow configuring graceful stop in testutil (#10566)

* Allow configuring graceful stop in testutil

Signed-off-by: Sergey Matyukevich <s.matyukevich@gmail.com>

* add a changelog

Co-authored-by: Dhia Ayachi <dhia@hashicorp.com>
This commit is contained in:
Sergey Matyukevich 2021-09-08 09:12:54 -06:00 committed by GitHub
parent a14950025a
commit 06f3ccebce
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 9 additions and 2 deletions

3
.changelog/10566.txt Normal file
View File

@ -0,0 +1,3 @@
```release-note:enhancement
Allow configuring graceful stop in testutil.
```

View File

@ -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:"-"`
@ -164,6 +166,8 @@ func defaultServerConfig(t TestingTB) *TestServerConfig {
Server: ports[5],
},
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")