]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/go: use builtin version and reexec for env
authorSean Liao <seankhliao@gmail.com>
Tue, 2 Feb 2021 17:08:50 +0000 (18:08 +0100)
committerBryan C. Mills <bcmills@google.com>
Fri, 23 Apr 2021 19:08:32 +0000 (19:08 +0000)
Skip execing for version (most reliable) and attempt to reexec
for env, falling back to the go in GOROOT

Fixes #43981

Change-Id: I17fb84d36036807274eecca3d4f64b3add9b9483
Reviewed-on: https://go-review.googlesource.com/c/go/+/288693
Reviewed-by: Bryan C. Mills <bcmills@google.com>
Run-TryBot: Bryan C. Mills <bcmills@google.com>
TryBot-Result: Go Bot <gobot@golang.org>
Trust: Jay Conrod <jayconrod@google.com>

src/cmd/go/internal/bug/bug.go
src/cmd/go/testdata/script/bug.txt

index 4aa08b4ff6ea7ab988daa86f3243b12948f0b64f..df63c579d9858fef4a77d83fbd42b442f1f77c1e 100644 (file)
@@ -81,7 +81,7 @@ func printGoVersion(w io.Writer) {
        fmt.Fprintf(w, "### What version of Go are you using (`go version`)?\n\n")
        fmt.Fprintf(w, "<pre>\n")
        fmt.Fprintf(w, "$ go version\n")
-       printCmdOut(w, "", "go", "version")
+       fmt.Fprintf(w, "go version %s %s/%s\n", runtime.Version(), runtime.GOOS, runtime.GOARCH)
        fmt.Fprintf(w, "</pre>\n")
        fmt.Fprintf(w, "\n")
 }
@@ -90,7 +90,11 @@ func printEnvDetails(w io.Writer) {
        fmt.Fprintf(w, "### What operating system and processor architecture are you using (`go env`)?\n\n")
        fmt.Fprintf(w, "<details><summary><code>go env</code> Output</summary><br><pre>\n")
        fmt.Fprintf(w, "$ go env\n")
-       printCmdOut(w, "", "go", "env")
+       goexe, err := os.Executable()
+       if err != nil {
+               goexe = filepath.Join(runtime.GOROOT(), "bin/go")
+       }
+       printCmdOut(w, "", goexe, "env")
        printGoDetails(w)
        printOSDetails(w)
        printCDetails(w)
index b9bbaaad335ffa587d253a1d43feb0e98659458c..571d507358ade486cfdc46b59dbe07925fbcc6c9 100644 (file)
@@ -1,9 +1,11 @@
 # Verify that go bug creates the appropriate URL issue body
 
 [!linux] skip
+[short] skip
 
 go install
-env BROWSER=$GOPATH/bin/browser
+go build -o $TMPDIR/go ./go
+env BROWSER=$GOPATH/bin/browser PATH=$TMPDIR:$PATH
 go bug
 exists $TMPDIR/browser
 grep '^go version' $TMPDIR/browser
@@ -44,3 +46,13 @@ func main() {
        }
 }
 
+-- go/main.go --
+package main
+
+import (
+    "os"
+)
+
+func main() {
+    os.Exit(1)
+}