blob: 859eafcf84dff71d478735102d6777d09ec54f85 [file] [log] [blame]
# Regression test for issue #48557.
# Since builds in module mode do not support relative imports at all, the build
# ID for (and other contents of) a binary built with -trimpath in module mode
# should not depend on its working directory, even if the binary is specified as
# a list of relative source files.
[short] skip # links and runs binaries
env GOFLAGS=-trimpath
env GOCACHE=$WORK/gocache
# When we build a binary in module mode with -trimpath, the -D flag (for the
# "local import prefix") should not be passed to it.
cd $WORK/tmp/foo
go build -x -o a.exe main.go
stderr ${/}compile$GOEXE.*' -nolocalimports'
! stderr ${/}compile$GOEXE.*' -D[ =]'
go tool buildid a.exe
cp stdout ../foo-buildid.txt
go version a.exe
cp stdout ../foo-version.txt
cd ..
# On the second build — in a different directory but with -trimpath — the
# compiler should not be invoked, since the cache key should be identical.
# Only the linker and buildid tool should be needed.
mkdir bar
cp foo/main.go bar/main.go
cd bar
go build -x -o a.exe main.go
! stderr ${/}compile$GOEXE
go tool buildid a.exe
cp stdout ../bar-buildid.txt
go version a.exe
cp stdout ../bar-version.txt
cd ..
cmp bar-buildid.txt foo-buildid.txt
cmp bar-version.txt foo-version.txt
cmp bar/a.exe foo/a.exe
-- $WORK/tmp/foo/main.go --
package main
func main() {}