Fix path to the coverage folder for e2e tests.

This commit is contained in:
Piotr Tabor 2021-05-15 21:33:49 +02:00
parent 13ef6fc343
commit c7a76470d5
2 changed files with 14 additions and 16 deletions

12
test.sh
View File

@ -325,14 +325,14 @@ function cov_pass {
log_callout "[$(date)] Collecting coverage from e2e tests ..."
# We don't pass 'gocov_build_flags' nor 'pkg_to_coverprofileflag' here,
# as the coverage is collected from the ./bin/etcd_test & ./bin/etcdctl_test internally spawned.
mkdir -p "${COVERDIR}/e2e"
COVERDIR="${COVERDIR}/e2e" run_for_module "tests" go_test "./e2e/..." "keep_going" : -tags=cov -timeout 30m "$@" || failed="$failed tests_e2e"
split_dir "${COVERDIR}/e2e" 10
mkdir -p "${coverdir}/e2e"
COVERDIR="${coverdir}/e2e" run_for_module "tests" go_test "./e2e/..." "keep_going" : -tags=cov -timeout 30m "$@" || failed="$failed tests_e2e"
split_dir "${coverdir}/e2e" 10
log_callout "[$(date)] Collecting coverage from e2e tests with proxy ..."
mkdir -p "${COVERDIR}/e2e_proxy"
COVERDIR="${COVERDIR}/e2e_proxy" run_for_module "tests" go_test "./e2e/..." "keep_going" : -tags="cov cluster_proxy" -timeout 30m "$@" || failed="$failed tests_e2e_proxy"
split_dir "${COVERDIR}/e2e_proxy" 10
mkdir -p "${coverdir}/e2e_proxy"
COVERDIR="${coverdir}/e2e_proxy" run_for_module "tests" go_test "./e2e/..." "keep_going" : -tags="cov cluster_proxy" -timeout 30m "$@" || failed="$failed tests_e2e_proxy"
split_dir "${coverdir}/e2e_proxy" 10
local cover_out_file="${coverdir}/all.coverprofile"
merge_cov "${coverdir}"

View File

@ -20,18 +20,22 @@ package e2e
import (
"fmt"
"os"
"path/filepath"
"strings"
"syscall"
"time"
"go.etcd.io/etcd/client/pkg/v3/fileutil"
"go.etcd.io/etcd/pkg/v3/expect"
"go.etcd.io/etcd/tests/v3/integration"
"go.uber.org/zap"
)
const noOutputLineCount = 2 // cov-enabled binaries emit PASS and coverage count lines
var (
coverDir = integration.MustAbsPath(os.Getenv("COVERDIR"))
)
func spawnCmd(args []string) (*expect.ExpectProcess, error) {
return spawnCmdWithLogger(zap.NewNop(), args)
}
@ -72,18 +76,12 @@ func spawnCmdWithLogger(lg *zap.Logger, args []string) (*expect.ExpectProcess, e
}
func getCovArgs() ([]string, error) {
coverPath := os.Getenv("COVERDIR")
if !filepath.IsAbs(coverPath) {
// COVERDIR is relative to etcd root but e2e test has its path set to be relative to the e2e folder.
// adding ".." in front of COVERDIR ensures that e2e saves coverage reports to the correct location.
coverPath = filepath.Join("../..", coverPath)
}
if !fileutil.Exist(coverPath) {
return nil, fmt.Errorf("could not find coverage folder")
if !fileutil.Exist(coverDir) {
return nil, fmt.Errorf("could not find coverage folder: %s", coverDir)
}
covArgs := []string{
fmt.Sprintf("-test.coverprofile=e2e.%v.coverprofile", time.Now().UnixNano()),
"-test.outputdir=" + coverPath,
"-test.outputdir=" + coverDir,
}
return covArgs, nil
}