func()

in dev-tools/mage/benchmark.go [59:91]


func (Benchmark) Run() error {
	mg.Deps(Benchmark.Deps)
	log.Println(">> go Test: Benchmark")
	outputFile := os.Getenv("OUTPUT")
	benchmarkCountOverride := os.Getenv("BENCH_COUNT")
	if benchmarkCountOverride != "" {
		var overrideErr error
		benchmarkCount, overrideErr = strconv.Atoi(benchmarkCountOverride)
		if overrideErr != nil {
			return fmt.Errorf("failed to parse BENCH_COUNT, verify that you set the right value: , %w", overrideErr)
		}
	}
	projectPackages, er := gotool.ListProjectPackages()
	if er != nil {
		return fmt.Errorf("failed to list package dependencies: %w", er)
	}
	cmdArg := fmt.Sprintf("test -count=%d -bench=Bench -run=Bench", benchmarkCount)
	cmdArgs := strings.Split(cmdArg, " ")
	for _, pkg := range projectPackages {
		cmdArgs = append(cmdArgs, filepath.Join(pkg, "/..."))
	}
	_, err := runCommand(nil, "go", outputFile, cmdArgs...)

	var goTestErr *exec.ExitError
	switch {
	case goTestErr == nil:
		return nil
	case errors.As(err, &goTestErr):
		return fmt.Errorf("failed to execute go test -bench command: %w", err)
	default:
		return fmt.Errorf("failed to execute go test -bench command %w", err)
	}
}