// Copyright 2018 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // The toolexec program is a helper program for cmd/cover tests. // It is used so that the go tool will call the newly built version // of the cover program, rather than the installed one. // // The tests arrange to run the go tool with the argument // -toolexec="/path/to/toolexec /path/to/testcover" // The go tool will invoke this program (compiled into /path/to/toolexec) // with the arguments shown above followed by the command to run. // This program will check whether it is expected to run the cover // program, and if so replace it with /path/to/testcover. package main import ( exec "internal/execabs" "os" "strings" ) func main() { if strings.HasSuffix(strings.TrimSuffix(os.Args[2], ".exe"), "cover") { os.Args[2] = os.Args[1] } cmd := exec.Command(os.Args[2], os.Args[3:]...) cmd.Stdout = os.Stdout cmd.Stderr = os.Stderr if err := cmd.Run(); err != nil { os.Exit(1) } }