Please see the code of main.go and main_test.go pasted at the end. Then 
consider the output of these commands. I would have expected the `go test` 
command's output to contain the value 'hello'. From `go help test` output, 
the `go test` command is supposed to honor all build flags, but clearly it 
isn't.

$ go version
go version go1.7.1 darwin/amd64

$ pwd
/tmp/ldflags_test

$ go run -ldflags="-X main.MyVar=hello" main.go
MyVar's value is hello

$ go build -ldflags="-X main.MyVar=hello" && ./ldflags_test
MyVar's value is hello

$ go test -ldflags="-X main.MyVar=hello"
MyVar is empty
exit status 1
FAIL    _/tmp/ldflags_test    0.016s

$ cat main.go
package main

import (
    "fmt"
    "os"
)

var MyVar = ""

func main() {
    if MyVar == "" {
        fmt.Println("MyVar is empty")
        os.Exit(1)
    } else {
        fmt.Println("MyVar's value is " + MyVar)
    }
}

$ cat main_test.go
package main

import (
    "testing"
)

func TestMain(t *testing.T) {
    main()
}

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to