1 # https://go.dev/issue/51473: to avoid the need for tests to rely on
2 # runtime.GOROOT, 'go test' should run the test with its own GOROOT/bin
3 # at the beginning of $PATH.
4
5 [short] skip
6
7 [!GOOS:plan9] env PATH=
8 [GOOS:plan9] env path=
9 go test .
10
11 [!GOOS:plan9] env PATH=$WORK${/}bin
12 [GOOS:plan9] env path=$WORK${/}bin
13 go test .
14
15 -- go.mod --
16 module example
17
18 go 1.19
19 -- example_test.go --
20 package example
21
22 import (
23 "os"
24 "os/exec"
25 "path/filepath"
26 "testing"
27 )
28
29 func TestGoCommandExists(t *testing.T) {
30 got, err := exec.LookPath("go")
31 if err != nil {
32 t.Fatal(err)
33 }
34
35 want := filepath.Join(os.Getenv("GOROOT"), "bin", "go" + os.Getenv("GOEXE"))
36 if got != want {
37 t.Fatalf(`exec.LookPath("go") = %q; want %q`, got, want)
38 }
39 }
40 -- $WORK/bin/README.txt --
41 This directory contains no executables.
42
View as plain text