func execute()

in internal/testers/multi/cmd.go [47:92]


func execute() error {
	driverArgs, testerClauses := splitArguments(os.Args)
	driver := multiTesterDriver{
		argv: driverArgs,
	}
	fs, err := gpflag.Parse(&driver)
	if err != nil {
		return fmt.Errorf("failed to initialize tester: %v", err)
	}

	fs.Usage = func() {
		fmt.Print(usage)
	}

	if len(testerClauses) == 0 {
		fs.Usage()
		return nil
	}

	// gracefully handle -h or --help if it is the only argument
	help := fs.BoolP("help", "h", false, "")

	failFast := fs.Bool("fail-fast", false, "Exit immediately if any tester fails")

	// we don't care about errors, only if -h / --help was set
	err = fs.Parse(driver.argv)
	if err != nil {
		fs.Usage()
		return err
	}

	if *help {
		fs.Usage()
		return nil
	}

	if err := testers.WriteVersionToMetadata(internal.Version); err != nil {
		return err
	}

	if testers, err := prepareTesters(testerClauses); err != nil {
		return err
	} else {
		return test(testers, *failFast)
	}
}