tests: Share SpawnCmdWithLogger between coverage and no coverage scenarios
Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>dependabot/go_modules/go.uber.org/atomic-1.10.0
parent
574b3d33d1
commit
1b3f301cc2
|
@ -15,6 +15,7 @@
|
||||||
package e2e
|
package e2e
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"os"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"go.uber.org/zap"
|
"go.uber.org/zap"
|
||||||
|
@ -24,6 +25,7 @@ import (
|
||||||
|
|
||||||
var (
|
var (
|
||||||
initBinPath func(string) binPath
|
initBinPath func(string) binPath
|
||||||
|
additionalArgs func() ([]string, error)
|
||||||
)
|
)
|
||||||
|
|
||||||
func SpawnCmd(args []string, envVars map[string]string) (*expect.ExpectProcess, error) {
|
func SpawnCmd(args []string, envVars map[string]string) (*expect.ExpectProcess, error) {
|
||||||
|
@ -33,3 +35,22 @@ func SpawnCmd(args []string, envVars map[string]string) (*expect.ExpectProcess,
|
||||||
func SpawnNamedCmd(processName string, args []string, envVars map[string]string) (*expect.ExpectProcess, error) {
|
func SpawnNamedCmd(processName string, args []string, envVars map[string]string) (*expect.ExpectProcess, error) {
|
||||||
return SpawnCmdWithLogger(zap.NewNop(), args, envVars, processName)
|
return SpawnCmdWithLogger(zap.NewNop(), args, envVars, processName)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func SpawnCmdWithLogger(lg *zap.Logger, args []string, envVars map[string]string, name string) (*expect.ExpectProcess, error) {
|
||||||
|
wd, err := os.Getwd()
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
newArgs, err := additionalArgs()
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
env := mergeEnvVariables(envVars)
|
||||||
|
lg.Info("spawning process",
|
||||||
|
zap.Strings("args", args),
|
||||||
|
zap.String("working-dir", wd),
|
||||||
|
zap.String("name", name),
|
||||||
|
zap.Strings("environment-variables", env))
|
||||||
|
return expect.NewExpectWithEnv(args[0], append(args[1:], newArgs...), env, name)
|
||||||
|
}
|
||||||
|
|
|
@ -23,9 +23,7 @@ import (
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"go.etcd.io/etcd/client/pkg/v3/fileutil"
|
"go.etcd.io/etcd/client/pkg/v3/fileutil"
|
||||||
"go.etcd.io/etcd/pkg/v3/expect"
|
|
||||||
"go.etcd.io/etcd/tests/v3/framework/testutils"
|
"go.etcd.io/etcd/tests/v3/framework/testutils"
|
||||||
"go.uber.org/zap"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
const noOutputLineCount = 2 // cov-enabled binaries emit PASS and coverage count lines
|
const noOutputLineCount = 2 // cov-enabled binaries emit PASS and coverage count lines
|
||||||
|
@ -36,6 +34,7 @@ var (
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
initBinPath = initBinPathCov
|
initBinPath = initBinPathCov
|
||||||
|
additionalArgs = additionalArgsCov
|
||||||
}
|
}
|
||||||
|
|
||||||
func initBinPathCov(binDir string) binPath {
|
func initBinPathCov(binDir string) binPath {
|
||||||
|
@ -47,32 +46,7 @@ func initBinPathCov(binDir string) binPath {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func SpawnCmdWithLogger(lg *zap.Logger, args []string, envVars map[string]string, name string) (*expect.ExpectProcess, error) {
|
func additionalArgsCov() ([]string, error) {
|
||||||
cmd := args[0]
|
|
||||||
env := mergeEnvVariables(envVars)
|
|
||||||
|
|
||||||
wd, err := os.Getwd()
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
covArgs, err := getCovArgs()
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
// when withFlagByEnv() is used in testCtl(), env variables for ctl is set to os.env.
|
|
||||||
// they must be included in ctl_cov_env.
|
|
||||||
|
|
||||||
allArgs := append(args[1:], covArgs...)
|
|
||||||
lg.Info("spawning process in cov test",
|
|
||||||
zap.Strings("args", args),
|
|
||||||
zap.String("working-dir", wd),
|
|
||||||
zap.String("name", name),
|
|
||||||
zap.Strings("environment-variables", env))
|
|
||||||
return expect.NewExpectWithEnv(cmd, allArgs, env, name)
|
|
||||||
}
|
|
||||||
|
|
||||||
func getCovArgs() ([]string, error) {
|
|
||||||
if !fileutil.Exist(coverDir) {
|
if !fileutil.Exist(coverDir) {
|
||||||
return nil, fmt.Errorf("could not find coverage folder: %s", coverDir)
|
return nil, fmt.Errorf("could not find coverage folder: %s", coverDir)
|
||||||
}
|
}
|
||||||
|
|
|
@ -17,18 +17,11 @@
|
||||||
|
|
||||||
package e2e
|
package e2e
|
||||||
|
|
||||||
import (
|
|
||||||
"os"
|
|
||||||
|
|
||||||
"go.uber.org/zap"
|
|
||||||
|
|
||||||
"go.etcd.io/etcd/pkg/v3/expect"
|
|
||||||
)
|
|
||||||
|
|
||||||
const noOutputLineCount = 0 // regular binaries emit no extra lines
|
const noOutputLineCount = 0 // regular binaries emit no extra lines
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
initBinPath = initBinPathNoCov
|
initBinPath = initBinPathNoCov
|
||||||
|
additionalArgs = additionalArgsNoCov
|
||||||
}
|
}
|
||||||
|
|
||||||
func initBinPathNoCov(binDir string) binPath {
|
func initBinPathNoCov(binDir string) binPath {
|
||||||
|
@ -40,16 +33,6 @@ func initBinPathNoCov(binDir string) binPath {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func SpawnCmdWithLogger(lg *zap.Logger, args []string, envVars map[string]string, name string) (*expect.ExpectProcess, error) {
|
func additionalArgsNoCov() ([]string, error) {
|
||||||
wd, err := os.Getwd()
|
return []string{}, nil
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
env := mergeEnvVariables(envVars)
|
|
||||||
lg.Info("spawning process",
|
|
||||||
zap.Strings("args", args),
|
|
||||||
zap.String("working-dir", wd),
|
|
||||||
zap.String("name", name),
|
|
||||||
zap.Strings("environment-variables", env))
|
|
||||||
return expect.NewExpectWithEnv(args[0], args[1:], env, name)
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue