mirror of
https://github.com/golang/go.git
synced 2025-11-11 14:11:04 +00:00
cmd/go: fix TestScript/cgo_path, cgo_path_space when CC set
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>
This commit is contained in:
parent
6de8443f3b
commit
54514c6b28
2 changed files with 21 additions and 13 deletions
7
src/cmd/go/testdata/script/cgo_path.txt
vendored
7
src/cmd/go/testdata/script/cgo_path.txt
vendored
|
|
@ -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
|
||||
|
|
|
|||
27
src/cmd/go/testdata/script/cgo_path_space.txt
vendored
27
src/cmd/go/testdata/script/cgo_path_space.txt
vendored
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue