diff options
author | Russ Cox <rsc@golang.org> | 2013-10-18 16:52:44 -0400 |
---|---|---|
committer | Russ Cox <rsc@golang.org> | 2013-10-18 16:52:44 -0400 |
commit | 32426fd7fad80fa2f0d96525c7fe68e34f7537bb (patch) | |
tree | 7e8bafbe513765fffc358ddbe158c820e99454da /misc/cgo | |
parent | 85475742f0f9ac10d6766bb80c2f53560e1b8fa4 (diff) | |
download | go-32426fd7fad80fa2f0d96525c7fe68e34f7537bb.tar.gz |
cmd/cgo: fix line number in an error message
Fixes issue 6563.
R=golang-dev, iant
CC=golang-dev
https://codereview.appspot.com/14870046
Diffstat (limited to 'misc/cgo')
-rw-r--r-- | misc/cgo/errors/err1.go | 6 | ||||
-rw-r--r-- | misc/cgo/errors/err2.go | 13 | ||||
-rwxr-xr-x | misc/cgo/errors/test.bash | 38 |
3 files changed, 43 insertions, 14 deletions
diff --git a/misc/cgo/errors/err1.go b/misc/cgo/errors/err1.go index 78094c6b5..8e674dce7 100644 --- a/misc/cgo/errors/err1.go +++ b/misc/cgo/errors/err1.go @@ -1,10 +1,14 @@ +// Copyright 2013 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + package main /* #cgo LDFLAGS: -c void test() { - xxx; // This is line 7. + xxx; // ERROR HERE } */ import "C" diff --git a/misc/cgo/errors/err2.go b/misc/cgo/errors/err2.go new file mode 100644 index 000000000..0c64ffeeb --- /dev/null +++ b/misc/cgo/errors/err2.go @@ -0,0 +1,13 @@ +// Copyright 2013 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package main + +import "C" + +func main() { + s := "" + _ = s + C.malloc(s) // ERROR HERE +} diff --git a/misc/cgo/errors/test.bash b/misc/cgo/errors/test.bash index e9fa6d019..697ae2fed 100755 --- a/misc/cgo/errors/test.bash +++ b/misc/cgo/errors/test.bash @@ -2,18 +2,30 @@ # Use of this source code is governed by a BSD-style # license that can be found in the LICENSE file. -if go tool cgo err1.go >errs 2>&1; then - echo 1>&2 misc/cgo/errors/test.bash: BUG: expected cgo to fail but it succeeded - exit 1 -fi -if ! test -s errs; then - echo 1>&2 misc/cgo/errors/test.bash: BUG: expected error output but saw none - exit 1 -fi -if ! fgrep err1.go:7 errs >/dev/null 2>&1; then - echo 1>&2 misc/cgo/errors/test.bash: BUG: expected error on line 7 but saw: - cat 1>&2 errs - exit 1 -fi +check() { + file=$1 + line=$(grep -n 'ERROR HERE' $file | sed 's/:.*//') + if [ "$line" = "" ]; then + echo 1>&2 misc/cgo/errors/test.bash: BUG: cannot find ERROR HERE in $file + exit 1 + fi + if go build $file >errs 2>&1; then + echo 1>&2 misc/cgo/errors/test.bash: BUG: expected cgo to fail but it succeeded + exit 1 + fi + if ! test -s errs; then + echo 1>&2 misc/cgo/errors/test.bash: BUG: expected error output but saw none + exit 1 + fi + if ! fgrep $file:$line: errs >/dev/null 2>&1; then + echo 1>&2 misc/cgo/errors/test.bash: BUG: expected error on line $line but saw: + cat 1>&2 errs + exit 1 + fi +} + +check err1.go +check err2.go + rm -rf errs _obj exit 0 |