Skip to content

Commit

Permalink
cmd/go: avoid copying a binary to be exec'd in TestScript/gotoolchain…
Browse files Browse the repository at this point in the history
…_path

Runinng 'go build' writes the binary in a separate process, so avoids
the race described in #22315. However, the script engine's 'cp'
command currently executes in-process, so it does not avoid that bug
and may retain stale file descriptors when running tests in parallel.

Avoid the race in this particular test by giving the final binary
location in the '-o' argument instead of copying it there after the
fact.

Fixes #64019.

Change-Id: I96d276f33c09e39f465e9877356f1d8f2ae55062
Cq-Include-Trybots: luci.golang.try:gotip-linux-amd64-longtest,gotip-windows-amd64-longtest
Reviewed-on: https://go-review.googlesource.com/c/go/+/560415
Auto-Submit: Bryan Mills <bcmills@google.com>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Michael Matloob <matloob@golang.org>
  • Loading branch information
Bryan C. Mills authored and gopherbot committed Feb 6, 2024
1 parent c18ddc8 commit 39ec246
Showing 1 changed file with 1 addition and 2 deletions.
3 changes: 1 addition & 2 deletions src/cmd/go/testdata/script/gotoolchain_path.txt
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,7 @@ env TESTGO_VERSION=go1.21pre3
# Compile a fake toolchain to put in the path under various names.
env GOTOOLCHAIN=
mkdir $WORK/bin
go build -o $WORK/bin/ ./fakego.go # adds .exe extension implicitly on Windows
cp $WORK/bin/fakego$GOEXE $WORK/bin/go1.50.0$GOEXE
go build -o $WORK/bin/go1.50.0$GOEXE ./fakego.go # adds .exe extension implicitly on Windows

[!GOOS:plan9] env PATH=$WORK/bin
[GOOS:plan9] env path=$WORK/bin
Expand Down

0 comments on commit 39ec246

Please sign in to comment.