func()

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()
}