in internal/testers/ginkgov1/ginkgo.go [70:123]
func (t *Tester) Test() error {
if err := testers.WriteVersionToMetadata(GitTag); err != nil {
return err
}
if err := t.pretestSetup(); err != nil {
return err
}
e2eTestArgs := []string{
"--kubeconfig=" + t.kubeconfigPath,
"--kubectl-path=" + t.kubectlPath,
"--ginkgo.skip=" + t.SkipRegex,
"--ginkgo.focus=" + t.FocusRegex,
"--report-dir=" + artifacts.BaseDir(),
}
// some ginkgo flags and behaviors are not backwards compatible
switch v := t.ginkgoMajorVersion(); v {
case "1":
e2eTestArgs = append(e2eTestArgs,
"--ginkgo.flakeAttempts="+strconv.Itoa(t.FlakeAttempts),
)
case "2":
e2eTestArgs = append(e2eTestArgs,
"--ginkgo.flake-attempts="+strconv.Itoa(t.FlakeAttempts),
)
default:
return fmt.Errorf("unsupported ginkgo version: %s", v)
}
extraE2EArgs, err := shellquote.Split(t.TestArgs)
if err != nil {
return fmt.Errorf("error parsing --test-args: %v", err)
}
e2eTestArgs = append(e2eTestArgs, extraE2EArgs...)
extraGingkoArgs, err := shellquote.Split(t.GinkgoArgs)
if err != nil {
return fmt.Errorf("error parsing --gingko-args: %v", err)
}
ginkgoArgs := append(extraGingkoArgs,
"--nodes="+strconv.Itoa(t.Parallel),
t.e2eTestPath,
"--")
ginkgoArgs = append(ginkgoArgs, e2eTestArgs...)
klog.V(0).Infof("Running ginkgo test as %s %+v", t.ginkgoPath, ginkgoArgs)
cmd := exec.Command(t.ginkgoPath, ginkgoArgs...)
cmd.SetEnv(t.Env...)
exec.InheritOutput(cmd)
return cmd.Run()
}