1
0
mirror of https://github.com/golang/go synced 2024-11-23 16:00:06 -07:00

run.{bash,bat,rc}: use ../bin/go instead of the go binary in $PATH

https://golang.org/doc/contribute.html#quick_test currently suggests
running 'make.bash' and 'run.bash' separately, but 'run.bash'
potentially uses a 'go' command resolved from the wrong GOROOT,
which in turn sets the wrong GOROOT for further commands.

Updates #32674
Updates #17896

Change-Id: I4925d478d0fc7351c4f6d40830ab17d4d688348d
Reviewed-on: https://go-review.googlesource.com/c/go/+/223741
Run-TryBot: Bryan C. Mills <bcmills@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
Reviewed-by: Katie Hockman <katie@golang.org>
This commit is contained in:
Bryan C. Mills 2020-03-17 10:22:39 -04:00
parent 827a7a9224
commit f9197a7043
3 changed files with 22 additions and 7 deletions

View File

@ -16,8 +16,13 @@
set -e
eval $(go env)
export GOROOT # the api test requires GOROOT to be set.
if [ ! -f ../bin/go ]; then
echo 'run.bash must be run from $GOROOT/src after installing cmd/go' 1>&2
exit 1
fi
eval $(../bin/go env)
export GOROOT # The api test requires GOROOT to be set, so set it to match ../bin/go.
# We disallow local import for non-local packages, if $GOROOT happens
# to be under $GOPATH, then some tests below will fail. $GOPATH needs
@ -56,4 +61,4 @@ if ulimit -T &> /dev/null; then
[ "$(ulimit -H -T)" = "unlimited" ] || ulimit -S -T $(ulimit -H -T)
fi
exec go tool dist test -rebuild "$@"
exec ../bin/go tool dist test -rebuild "$@"

View File

@ -4,6 +4,11 @@
@echo off
if exist ..\bin\go goto ok
echo Must run run.bat from Go src directory after installing cmd/go.
goto fail
:ok
:: Keep environment variables within this script
:: unless invoked with --no-local.
if x%1==x--no-local goto nolocal
@ -36,13 +41,13 @@ echo.
set GOROOT_FINAL=
:: get CGO_ENABLED
go env > env.bat
..\bin\go env > env.bat
if errorlevel 1 goto fail
call env.bat
del env.bat
echo.
go tool dist test
..\bin\go tool dist test
if errorlevel 1 goto fail
echo.

View File

@ -5,7 +5,12 @@
rfork e
eval `{go env}
if(! test -f ../bin/go){
echo 'run.rc must be run from $GOROOT/src after installing cmd/go' >[1=2]
exit wrongdir
}
eval `{../bin/go env}
GOPATH = () # we disallow local import for non-local packages, if $GOROOT happens
# to be under $GOPATH, then some tests below will fail
@ -13,4 +18,4 @@ GOBIN = () # Issue 14340
GOFLAGS = ()
GO111MODULE = ()
exec go tool dist test -rebuild $*
exec ../bin/go tool dist test -rebuild $*