]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/go: avoid copying a binary to be exec'd in TestScript/gotoolchain_path
authorBryan C. Mills <bcmills@google.com>
Thu, 1 Feb 2024 15:24:25 +0000 (10:24 -0500)
committerGopher Robot <gobot@golang.org>
Tue, 6 Feb 2024 22:21:42 +0000 (22:21 +0000)
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>
src/cmd/go/testdata/script/gotoolchain_path.txt

index 9628348f7aff40367a690e509d39c0a7c44c8eb6..b7a1c9bd8918662c548599e21dbfa2bda4fdca13 100644 (file)
@@ -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