|
|
|
# Note the proper domain, since the dot adds an edge case.
|
|
|
|
env GOPRIVATE=domain.test/main
|
|
|
|
|
|
|
|
garble build -ldflags='-X=main.unexportedVersion=v1.0.0 -X=domain.test/main/imported.ExportedVar=replaced'
|
|
|
|
exec ./main
|
|
|
|
cmp stderr main.stderr
|
|
|
|
! binsubstr main$exe 'unexportedVersion'
|
|
|
|
|
|
|
|
[short] stop # no need to verify this with -short
|
|
|
|
|
|
|
|
exec go build -ldflags='-X=main.unexportedVersion=v1.0.0 -X=domain.test/main/imported.ExportedVar=replaced'
|
|
|
|
exec ./main
|
|
|
|
cmp stderr main.stderr
|
|
|
|
binsubstr main$exe 'unexportedVersion'
|
|
|
|
|
|
|
|
-- go.mod --
|
|
|
|
module domain.test/main
|
|
|
|
-- main.go --
|
|
|
|
package main
|
|
|
|
|
|
|
|
import (
|
|
|
|
"domain.test/main/imported"
|
|
|
|
)
|
|
|
|
|
|
|
|
var unexportedVersion = "unknown"
|
|
|
|
|
|
|
|
func main() {
|
|
|
|
println("version:", unexportedVersion)
|
|
|
|
println("var:", imported.ExportedVar)
|
|
|
|
}
|
|
|
|
-- imported/imported.go --
|
|
|
|
package imported
|
|
|
|
|
|
|
|
var ExportedVar = "original"
|
|
|
|
-- main.stderr --
|
|
|
|
version: v1.0.0
|
|
|
|
var: replaced
|