# 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() {}