tests: Configure coverage binary paths via init

Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
dependabot/go_modules/go.uber.org/atomic-1.10.0
Marek Siarkowicz 2022-10-17 12:40:26 +02:00
parent d3b9951126
commit 89a1e7978c
4 changed files with 36 additions and 20 deletions

View File

@ -25,9 +25,13 @@ import (
"go.etcd.io/etcd/tests/v3/framework/e2e" "go.etcd.io/etcd/tests/v3/framework/e2e"
) )
func TestCtlV3CompletionBash(t *testing.T) { testShellCompletion(t, e2e.BinPath.Etcdctl, "bash") } func TestCtlV3CompletionBash(t *testing.T) {
testShellCompletion(t, e2e.BinPath.Etcdctl, "bash")
}
func TestUtlV3CompletionBash(t *testing.T) { testShellCompletion(t, e2e.BinPath.Etcdutl, "bash") } func TestUtlV3CompletionBash(t *testing.T) {
testShellCompletion(t, e2e.BinPath.Etcdutl, "bash")
}
func testShellCompletion(t *testing.T, binPath, shellName string) { func testShellCompletion(t *testing.T, binPath, shellName string) {
e2e.BeforeTest(t) e2e.BeforeTest(t)

View File

@ -22,6 +22,10 @@ import (
"go.etcd.io/etcd/pkg/v3/expect" "go.etcd.io/etcd/pkg/v3/expect"
) )
var (
initBinPath func(string) binPath
)
func SpawnCmd(args []string, envVars map[string]string) (*expect.ExpectProcess, error) { func SpawnCmd(args []string, envVars map[string]string) (*expect.ExpectProcess, error) {
return SpawnNamedCmd(strings.Join(args, "_"), args, envVars) return SpawnNamedCmd(strings.Join(args, "_"), args, envVars)
} }
@ -29,11 +33,3 @@ 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 initBinPath(binDir string) binPath {
return binPath{
Etcd: binDir + "/etcd",
Etcdctl: binDir + "/etcdctl",
Etcdutl: binDir + "/etcdutl",
}
}

View File

@ -20,7 +20,6 @@ package e2e
import ( import (
"fmt" "fmt"
"os" "os"
"strings"
"time" "time"
"go.etcd.io/etcd/client/pkg/v3/fileutil" "go.etcd.io/etcd/client/pkg/v3/fileutil"
@ -35,17 +34,21 @@ var (
coverDir = testutils.MustAbsPath(os.Getenv("COVERDIR")) coverDir = testutils.MustAbsPath(os.Getenv("COVERDIR"))
) )
func init() {
initBinPath = initBinPathCov
}
func initBinPathCov(binDir string) binPath {
return binPath{
Etcd: binDir + "/etcd_test",
Etcdctl: binDir + "/etcdctl_test",
Etcdutl: binDir + "/etcdutl_test",
}
}
func SpawnCmdWithLogger(lg *zap.Logger, args []string, envVars map[string]string, name string) (*expect.ExpectProcess, error) { func SpawnCmdWithLogger(lg *zap.Logger, args []string, envVars map[string]string, name string) (*expect.ExpectProcess, error) {
cmd := args[0] cmd := args[0]
env := mergeEnvVariables(envVars) env := mergeEnvVariables(envVars)
switch {
case strings.HasSuffix(cmd, "/etcd"):
cmd = cmd + "_test"
case strings.HasSuffix(cmd, "/etcdctl"):
cmd = cmd + "_test"
case strings.HasSuffix(cmd, "/etcdutl"):
cmd = cmd + "_test"
}
wd, err := os.Getwd() wd, err := os.Getwd()
if err != nil { if err != nil {

View File

@ -18,14 +18,27 @@
package e2e package e2e
import ( import (
"go.uber.org/zap"
"os" "os"
"go.uber.org/zap"
"go.etcd.io/etcd/pkg/v3/expect" "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() {
initBinPath = initBinPathNoCov
}
func initBinPathNoCov(binDir string) binPath {
return binPath{
Etcd: binDir + "/etcd",
Etcdctl: binDir + "/etcdctl",
Etcdutl: binDir + "/etcdutl",
}
}
func SpawnCmdWithLogger(lg *zap.Logger, args []string, envVars map[string]string, name string) (*expect.ExpectProcess, error) { func SpawnCmdWithLogger(lg *zap.Logger, args []string, envVars map[string]string, name string) (*expect.ExpectProcess, error) {
wd, err := os.Getwd() wd, err := os.Getwd()
if err != nil { if err != nil {