diff options
author | Russ Cox <rsc@golang.org> | 2015-06-29 13:03:11 -0400 |
---|---|---|
committer | Russ Cox <rsc@golang.org> | 2015-06-29 20:28:36 +0000 |
commit | 69f0d4c6bebc775cfbc50e9562b5533ba86b90c9 (patch) | |
tree | bfe8962f6daf196c42fb17db62b5a2748dcf1e52 /test | |
parent | c418fe734a0e0566c10147ff15c4ceae541360ac (diff) | |
download | go-git-69f0d4c6bebc775cfbc50e9562b5533ba86b90c9.tar.gz |
cmd/link: detect -X setting non-string variable
Fixes #9621.
Change-Id: Ib9c6001378364af899f57fd4b89fb23af2042923
Reviewed-on: https://go-review.googlesource.com/11694
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Run-TryBot: Russ Cox <rsc@golang.org>
Diffstat (limited to 'test')
-rw-r--r-- | test/linkx.go | 3 | ||||
-rw-r--r-- | test/linkx_run.go | 18 |
2 files changed, 21 insertions, 0 deletions
diff --git a/test/linkx.go b/test/linkx.go index 40ec1b99f6..ac2033400f 100644 --- a/test/linkx.go +++ b/test/linkx.go @@ -14,6 +14,9 @@ import "fmt" var tbd string var overwrite string = "dibs" +var b bool +var x int + func main() { fmt.Println(tbd) fmt.Println(overwrite) diff --git a/test/linkx_run.go b/test/linkx_run.go index cc0f55cf92..a6c7c67014 100644 --- a/test/linkx_run.go +++ b/test/linkx_run.go @@ -14,6 +14,7 @@ import ( "fmt" "os" "os/exec" + "strings" ) func main() { @@ -49,4 +50,21 @@ func test(sep string) { fmt.Println("-X linker flag should not accept keys without values") os.Exit(1) } + + // Issue 9621 + cmd = exec.Command("go", "run", "-ldflags=-X main.b=false -X main.x=42", "linkx.go") + outx, err := cmd.CombinedOutput() + if err == nil { + fmt.Println("-X linker flag should not overwrite non-strings") + os.Exit(1) + } + outstr := string(outx) + if !strings.Contains(outstr, "main.b") { + fmt.Printf("-X linker flag did not diagnose overwrite of main.b\n") + os.Exit(1) + } + if !strings.Contains(outstr, "main.x") { + fmt.Printf("-X linker flag did not diagnose overwrite of main.x\n") + os.Exit(1) + } } |