aboutsummaryrefslogtreecommitdiff
path: root/src/os/exec/exec_test.go
diff options
context:
space:
mode:
authorKir Kolyshkin <kolyshkin@gmail.com>2024-08-29 19:51:22 -0700
committerGopher Robot <gobot@golang.org>2024-09-03 20:11:30 +0000
commitc3f346a485f2fa97a7bdee82d587419b3823a1ba (patch)
treec085a5dbe2fe5fb250b39d9ea56cc4608b6cee67 /src/os/exec/exec_test.go
parent76a42d74356e3c5bee0851c99665b21bf29f0c27 (diff)
downloadgo-c3f346a485f2fa97a7bdee82d587419b3823a1ba.tar.xz
math,os,os/*: use testenv.Executable
As some callers don't have a testing context, modify testenv.Executable to accept nil (similar to how testenv.GOROOT works). Change-Id: I39112a7869933785a26b5cb6520055b3cc42b847 Reviewed-on: https://go-review.googlesource.com/c/go/+/609835 Reviewed-by: Ian Lance Taylor <iant@google.com> Auto-Submit: Ian Lance Taylor <iant@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
Diffstat (limited to 'src/os/exec/exec_test.go')
-rw-r--r--src/os/exec/exec_test.go34
1 files changed, 4 insertions, 30 deletions
diff --git a/src/os/exec/exec_test.go b/src/os/exec/exec_test.go
index a0bb89e203..fd185cadcf 100644
--- a/src/os/exec/exec_test.go
+++ b/src/os/exec/exec_test.go
@@ -159,42 +159,16 @@ func helperCommandContext(t *testing.T, ctx context.Context, name string, args .
helperCommandUsed.LoadOrStore(name, true)
t.Helper()
- testenv.MustHaveExec(t)
-
+ exe := testenv.Executable(t)
cs := append([]string{name}, args...)
if ctx != nil {
- cmd = exec.CommandContext(ctx, exePath(t), cs...)
+ cmd = exec.CommandContext(ctx, exe, cs...)
} else {
- cmd = exec.Command(exePath(t), cs...)
+ cmd = exec.Command(exe, cs...)
}
return cmd
}
-// exePath returns the path to the running executable.
-func exePath(t testing.TB) string {
- exeOnce.Do(func() {
- // Use os.Executable instead of os.Args[0] in case the caller modifies
- // cmd.Dir: if the test binary is invoked like "./exec.test", it should
- // not fail spuriously.
- exeOnce.path, exeOnce.err = os.Executable()
- })
-
- if exeOnce.err != nil {
- if t == nil {
- panic(exeOnce.err)
- }
- t.Fatal(exeOnce.err)
- }
-
- return exeOnce.path
-}
-
-var exeOnce struct {
- path string
- err error
- sync.Once
-}
-
func chdir(t *testing.T, dir string) {
t.Helper()
@@ -1201,7 +1175,7 @@ func cmdHang(args ...string) {
pid := os.Getpid()
if *subsleep != 0 {
- cmd := exec.Command(exePath(nil), "hang", subsleep.String(), "-read=true", "-probe="+probe.String())
+ cmd := exec.Command(testenv.Executable(nil), "hang", subsleep.String(), "-read=true", "-probe="+probe.String())
cmd.Stdin = os.Stdin
cmd.Stderr = os.Stderr
out, err := cmd.StdoutPipe()