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