diff options
Diffstat (limited to 'misc')
-rw-r--r-- | misc/reboot/reboot_test.go | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/misc/reboot/reboot_test.go b/misc/reboot/reboot_test.go index c4a9f3ef9f..94d61e000e 100644 --- a/misc/reboot/reboot_test.go +++ b/misc/reboot/reboot_test.go @@ -7,10 +7,13 @@ package reboot_test import ( + "fmt" + "io" "os" "os/exec" "path/filepath" "runtime" + "strings" "testing" "time" ) @@ -67,12 +70,27 @@ func TestRepeatBootstrap(t *testing.T) { makeScript = "make.bash" } + var stdout strings.Builder cmd := exec.Command(filepath.Join(goroot, "src", makeScript)) cmd.Dir = gorootSrc - cmd.Env = append(cmd.Environ(), "GOROOT=", "GOROOT_BOOTSTRAP="+realGoroot) + cmd.Env = append(cmd.Environ(), "GOROOT=", "GOROOT_FINAL=", "GOROOT_BOOTSTRAP="+realGoroot) cmd.Stderr = os.Stderr - cmd.Stdout = os.Stdout + cmd.Stdout = io.MultiWriter(os.Stdout, &stdout) if err := cmd.Run(); err != nil { t.Fatal(err) } + + // Test that go.dev/issue/42563 hasn't regressed. + t.Run("PATH reminder", func(t *testing.T) { + var want string + switch gorootBin := filepath.Join(goroot, "bin"); runtime.GOOS { + default: + want = fmt.Sprintf("*** You need to add %s to your PATH.", gorootBin) + case "plan9": + want = fmt.Sprintf("*** You need to bind %s before /bin.", gorootBin) + } + if got := stdout.String(); !strings.Contains(got, want) { + t.Errorf("reminder %q is missing from %s stdout:\n%s", want, makeScript, got) + } + }) } |