]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/go: fix TestScript/cgo_path, cgo_path_space when CC set
authorJay Conrod <jayconrod@google.com>
Mon, 25 Jan 2021 15:34:28 +0000 (10:34 -0500)
committerJay Conrod <jayconrod@google.com>
Mon, 25 Jan 2021 19:40:02 +0000 (19:40 +0000)
These tests failed if CC was set to a path containing a separator
during make.bash. They now set CC explicitly.

Fixes #43897

Change-Id: Ic6e7f192fcb363f0ac9f45b329113255453bf76f
Reviewed-on: https://go-review.googlesource.com/c/go/+/286292
Run-TryBot: Jay Conrod <jayconrod@google.com>
TryBot-Result: Go Bot <gobot@golang.org>
Trust: Jay Conrod <jayconrod@google.com>
Reviewed-by: Bryan C. Mills <bcmills@google.com>
src/cmd/go/testdata/script/cgo_path.txt
src/cmd/go/testdata/script/cgo_path_space.txt

index 98c56ff40ecee2c1c2ddf0a8d0105adef495a9b1..be9609e86f0ddb364737d96408c997a4896bc7c9 100644 (file)
@@ -1,5 +1,12 @@
 [!cgo] skip
 
+# Set CC explicitly to something that requires a PATH lookup.
+# Normally, the default is gcc or clang, but if CC was set during make.bash,
+# that becomes the default.
+[exec:clang] env CC=clang
+[exec:gcc] env CC=gcc
+[!exec:clang] [!exec:gcc] skip 'Unknown C compiler'
+
 env GOCACHE=$WORK/gocache  # Looking for compile flags, so need a clean cache.
 [!windows] env PATH=.:$PATH
 [!windows] chmod 0755 p/gcc p/clang
index 6d203b04d61c800b6019e5479291e4d31f4966a8..654295dc692d95d7a979be6cc5e815cbc7ec3dbe 100644 (file)
@@ -1,13 +1,14 @@
 # Check that if the PATH directory containing the C compiler has a space,
 # we can still use that compiler with cgo.
 # Verifies #43808.
-
 [!cgo] skip
 
-# Check if default CC was set by make.bash.
-# If it was, this test is not valid.
-go env CC
-stdout '^(clang|gcc)$'
+# Set CC explicitly to something that requires a PATH lookup.
+# Normally, the default is gcc or clang, but if CC was set during make.bash,
+# that becomes the default.
+[exec:clang] env CC=clang
+[exec:gcc] env CC=gcc
+[!exec:clang] [!exec:gcc] skip 'Unknown C compiler'
 
 [!windows] chmod 0755 $WORK/'program files'/clang
 [!windows] chmod 0755 $WORK/'program files'/gcc
@@ -18,10 +19,10 @@ stdout '^(clang|gcc)$'
 [windows] exists -exec $WORK/'program files'/clang.bat
 [windows] env PATH=$WORK\'program files';%PATH%
 
-! exists log.txt
+! exists $WORK/log.txt
 ? go build -x
-exists log.txt
-rm log.txt
+exists $WORK/log.txt
+rm $WORK/log.txt
 
 # TODO(#41400, #43078): when CC is set explicitly, it should be allowed to
 # contain spaces separating arguments, and it should be possible to quote
@@ -30,7 +31,7 @@ rm log.txt
 [!windows] env CC=$WORK/'program files'/gcc
 [windows] env CC=$WORK\'program files'\gcc.bat
 ! go build -x
-! exists log.txt
+! exists $WORK/log.txt
 
 -- go.mod --
 module m
@@ -44,12 +45,12 @@ import "C"
 -- $WORK/program files/gcc --
 #!/bin/sh
 
-echo ok >log.txt
+echo ok >$WORK/log.txt
 -- $WORK/program files/clang --
 #!/bin/sh
 
-echo ok >log.txt
+echo ok >$WORK/log.txt
 -- $WORK/program files/gcc.bat --
-echo ok >log.txt
+echo ok >%WORK%\log.txt
 -- $WORK/program files/clang.bat --
-echo ok >log.txt
+echo ok >%WORK%\log.txt