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
|
||||
|
||||
import (
|
||||
"os"
|
||||
"strings"
|
||||
|
||||
"go.uber.org/zap"
|
||||
|
@ -23,7 +24,8 @@ import (
|
|||
)
|
||||
|
||||
var (
|
||||
initBinPath func(string) binPath
|
||||
initBinPath func(string) binPath
|
||||
additionalArgs func() ([]string, 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) {
|
||||
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"
|
||||
|
||||
"go.etcd.io/etcd/client/pkg/v3/fileutil"
|
||||
"go.etcd.io/etcd/pkg/v3/expect"
|
||||
"go.etcd.io/etcd/tests/v3/framework/testutils"
|
||||
"go.uber.org/zap"
|
||||
)
|
||||
|
||||
const noOutputLineCount = 2 // cov-enabled binaries emit PASS and coverage count lines
|
||||
|
@ -36,6 +34,7 @@ var (
|
|||
|
||||
func init() {
|
||||
initBinPath = initBinPathCov
|
||||
additionalArgs = additionalArgsCov
|
||||
}
|
||||
|
||||
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) {
|
||||
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) {
|
||||
func additionalArgsCov() ([]string, error) {
|
||||
if !fileutil.Exist(coverDir) {
|
||||
return nil, fmt.Errorf("could not find coverage folder: %s", coverDir)
|
||||
}
|
||||
|
|
|
@ -17,18 +17,11 @@
|
|||
|
||||
package e2e
|
||||
|
||||
import (
|
||||
"os"
|
||||
|
||||
"go.uber.org/zap"
|
||||
|
||||
"go.etcd.io/etcd/pkg/v3/expect"
|
||||
)
|
||||
|
||||
const noOutputLineCount = 0 // regular binaries emit no extra lines
|
||||
|
||||
func init() {
|
||||
initBinPath = initBinPathNoCov
|
||||
additionalArgs = additionalArgsNoCov
|
||||
}
|
||||
|
||||
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) {
|
||||
wd, err := os.Getwd()
|
||||
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)
|
||||
func additionalArgsNoCov() ([]string, error) {
|
||||
return []string{}, nil
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue