# passing build tags to compiler

cd main

godebugtester run -env=GODEBUG_BUILD_FLAGS=-tags=OS2 main.go
fail contains stdout "\"Fa_os1\"\n"
contains stdout "\"Fa_os2\"\n"

godebugtester run -env=GODEBUG_BUILD_FLAGS=-tags=OS1 main.go
contains stdout "\"Fa_os1\"\n"
fail contains stdout "\"Fa_os2\"\n"

godebugtester run -tags=OS1 main.go
contains stdout "\"Fa_os1\"\n"
fail contains stdout "\"Fa_os2\"\n"

setenv GODEBUG_BUILD_FLAGS -tags=OS1
godebugtester run main.go
contains stdout "\"Fa_os1\"\n"
fail contains stdout "\"Fa_os2\"\n"

# TESTING
#go list -json -export -tags=OS1
#go list -json -export -deps
#go run main.go

-- main/go.mod --
module mod1
require example.com/pkg1 v0.0.0
replace example.com/pkg1 => ../pkg1
-- main/main.go --
package main
//godebug:annotateimport
import "example.com/pkg1"
func main() {
	_=pkg1.Fa()
}
-- pkg1/go.mod --
module example.com/pkg1
-- pkg1/fa_os1.go --
//go:build OS1
		
package pkg1
func Fa() string {
	return "Fa_os1"
}
-- pkg1/fa_os2.go --
//go:build OS2
		
package pkg1
func Fa() string {
	return "Fa_os2"
}
