From 9abcd53eda0629d009941027ffa2dc680b5f1d00 Mon Sep 17 00:00:00 2001 From: Russ Cox Date: Thu, 6 Mar 2014 18:36:32 -0500 Subject: [PATCH] cmd/go: add test case for cgo coverage This is a test case for CL 34680044. Fixes #6333. LGTM=bradfitz R=golang-codereviews, bradfitz, minux.ma CC=golang-codereviews https://golang.org/cl/71230049 --- src/cmd/go/test.bash | 10 ++++++++++ src/cmd/go/testdata/cgocover/p.go | 19 +++++++++++++++++++ src/cmd/go/testdata/cgocover/p_test.go | 7 +++++++ 3 files changed, 36 insertions(+) create mode 100644 src/cmd/go/testdata/cgocover/p.go create mode 100644 src/cmd/go/testdata/cgocover/p_test.go diff --git a/src/cmd/go/test.bash b/src/cmd/go/test.bash index 0e4af62754..507f2885dd 100755 --- a/src/cmd/go/test.bash +++ b/src/cmd/go/test.bash @@ -568,6 +568,16 @@ TEST coverage runs ./testgo test -short -coverpkg=strings strings regexp || ok=false ./testgo test -short -cover strings math regexp || ok=false +TEST coverage with cgo +d=$(TMPDIR=/var/tmp mktemp -d -t testgoXXX) +./testgo test -short -cover ./testdata/cgocover >$d/cgo.out 2>&1 || ok=false +cat $d/cgo.out +if grep 'coverage: 0.0%' $d/cgo.out >/dev/null; then + ok=false + echo no coverage for cgo package + ok=false +fi + TEST cgo depends on syscall rm -rf $GOROOT/pkg/*_race d=$(TMPDIR=/var/tmp mktemp -d -t testgoXXX) diff --git a/src/cmd/go/testdata/cgocover/p.go b/src/cmd/go/testdata/cgocover/p.go new file mode 100644 index 0000000000..a6a3891cd4 --- /dev/null +++ b/src/cmd/go/testdata/cgocover/p.go @@ -0,0 +1,19 @@ +package p + +/* +void +f(void) +{ +} +*/ +import "C" + +var b bool + +func F() { + if b { + for { + } + } + C.f() +} diff --git a/src/cmd/go/testdata/cgocover/p_test.go b/src/cmd/go/testdata/cgocover/p_test.go new file mode 100644 index 0000000000..a8f057e358 --- /dev/null +++ b/src/cmd/go/testdata/cgocover/p_test.go @@ -0,0 +1,7 @@ +package p + +import "testing" + +func TestF(t *testing.T) { + F() +}