mirror of
https://github.com/etcd-io/etcd.git
synced 2024-09-27 06:25:44 +00:00
tests: Extract expect configuration into struct
Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
This commit is contained in:
parent
b886bbc89f
commit
1038c2f45c
@ -34,7 +34,7 @@ import (
|
|||||||
const DEBUG_LINES_TAIL = 40
|
const DEBUG_LINES_TAIL = 40
|
||||||
|
|
||||||
type ExpectProcess struct {
|
type ExpectProcess struct {
|
||||||
name string
|
cfg expectConfig
|
||||||
|
|
||||||
cmd *exec.Cmd
|
cmd *exec.Cmd
|
||||||
fpty *os.File
|
fpty *os.File
|
||||||
@ -58,15 +58,16 @@ func NewExpect(name string, arg ...string) (ep *ExpectProcess, err error) {
|
|||||||
|
|
||||||
// NewExpectWithEnv creates a new process with user defined env variables for expect testing.
|
// NewExpectWithEnv creates a new process with user defined env variables for expect testing.
|
||||||
func NewExpectWithEnv(name string, args []string, env []string, serverProcessConfigName string) (ep *ExpectProcess, err error) {
|
func NewExpectWithEnv(name string, args []string, env []string, serverProcessConfigName string) (ep *ExpectProcess, err error) {
|
||||||
cmd := exec.Command(name, args...)
|
|
||||||
cmd.Env = env
|
|
||||||
ep = &ExpectProcess{
|
ep = &ExpectProcess{
|
||||||
name: serverProcessConfigName,
|
|
||||||
cmd: cmd,
|
|
||||||
StopSignal: syscall.SIGTERM,
|
StopSignal: syscall.SIGTERM,
|
||||||
|
cfg: expectConfig{
|
||||||
|
name: serverProcessConfigName,
|
||||||
|
cmd: name,
|
||||||
|
args: args,
|
||||||
|
env: env,
|
||||||
|
},
|
||||||
}
|
}
|
||||||
ep.cmd.Stderr = ep.cmd.Stdout
|
ep.cmd = commandFromConfig(ep.cfg)
|
||||||
ep.cmd.Stdin = nil
|
|
||||||
|
|
||||||
if ep.fpty, err = pty.Start(ep.cmd); err != nil {
|
if ep.fpty, err = pty.Start(ep.cmd); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
@ -77,6 +78,21 @@ func NewExpectWithEnv(name string, args []string, env []string, serverProcessCon
|
|||||||
return ep, nil
|
return ep, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type expectConfig struct {
|
||||||
|
name string
|
||||||
|
cmd string
|
||||||
|
args []string
|
||||||
|
env []string
|
||||||
|
}
|
||||||
|
|
||||||
|
func commandFromConfig(config expectConfig) *exec.Cmd {
|
||||||
|
cmd := exec.Command(config.cmd, config.args...)
|
||||||
|
cmd.Env = config.env
|
||||||
|
cmd.Stderr = cmd.Stdout
|
||||||
|
cmd.Stdin = nil
|
||||||
|
return cmd
|
||||||
|
}
|
||||||
|
|
||||||
func (ep *ExpectProcess) Pid() int {
|
func (ep *ExpectProcess) Pid() int {
|
||||||
return ep.cmd.Process.Pid
|
return ep.cmd.Process.Pid
|
||||||
}
|
}
|
||||||
@ -90,7 +106,7 @@ func (ep *ExpectProcess) read() {
|
|||||||
ep.mu.Lock()
|
ep.mu.Lock()
|
||||||
if l != "" {
|
if l != "" {
|
||||||
if printDebugLines {
|
if printDebugLines {
|
||||||
fmt.Printf("%s (%s) (%d): %s", ep.cmd.Path, ep.name, ep.cmd.Process.Pid, l)
|
fmt.Printf("%s (%s) (%d): %s", ep.cmd.Path, ep.cfg.name, ep.cmd.Process.Pid, l)
|
||||||
}
|
}
|
||||||
ep.lines = append(ep.lines, l)
|
ep.lines = append(ep.lines, l)
|
||||||
ep.count++
|
ep.count++
|
||||||
|
Loading…
x
Reference in New Issue
Block a user