]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/go: fix coverage in xtest of cgo package
authorRuss Cox <rsc@golang.org>
Thu, 3 Nov 2016 01:15:41 +0000 (21:15 -0400)
committerRuss Cox <rsc@golang.org>
Thu, 3 Nov 2016 16:03:30 +0000 (16:03 +0000)
Cover-annotated cgo-rebuilt package for xtest was
not linked into package graph and so not being rebuilt.
Link into package graph.

Fixes #13625.

Change-Id: I685f7276f92bbc85fbc4b389111c83d9fe517637
Reviewed-on: https://go-review.googlesource.com/32614
Run-TryBot: Russ Cox <rsc@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
12 files changed:
src/cmd/go/go_test.go
src/cmd/go/test.go
src/cmd/go/testdata/src/cgocover/p.go [moved from src/cmd/go/testdata/cgocover/p.go with 100% similarity]
src/cmd/go/testdata/src/cgocover/p_test.go [moved from src/cmd/go/testdata/cgocover/p_test.go with 100% similarity]
src/cmd/go/testdata/src/cgocover2/p.go [new file with mode: 0644]
src/cmd/go/testdata/src/cgocover2/x_test.go [new file with mode: 0644]
src/cmd/go/testdata/src/cgocover3/p.go [new file with mode: 0644]
src/cmd/go/testdata/src/cgocover3/p_test.go [new file with mode: 0644]
src/cmd/go/testdata/src/cgocover3/x_test.go [new file with mode: 0644]
src/cmd/go/testdata/src/cgocover4/notcgo.go [new file with mode: 0644]
src/cmd/go/testdata/src/cgocover4/p.go [new file with mode: 0644]
src/cmd/go/testdata/src/cgocover4/x_test.go [new file with mode: 0644]

index 15cd534c773714f3e5d437ca84bd81261e450ece..e94b9a5bd801a40524fb4262df3f21282354a390 100644 (file)
@@ -2106,11 +2106,16 @@ func TestCoverageWithCgo(t *testing.T) {
                t.Skip("skipping because cgo not enabled")
        }
 
-       tg := testgo(t)
-       defer tg.cleanup()
-       tg.run("test", "-short", "-cover", "./testdata/cgocover")
-       data := tg.getStdout() + tg.getStderr()
-       checkCoverage(tg, data)
+       for _, dir := range []string{"cgocover", "cgocover2", "cgocover3", "cgocover4"} {
+               t.Run(dir, func(t *testing.T) {
+                       tg := testgo(t)
+                       defer tg.cleanup()
+                       tg.setenv("GOPATH", filepath.Join(tg.pwd(), "testdata"))
+                       tg.run("test", "-short", "-cover", dir)
+                       data := tg.getStdout() + tg.getStderr()
+                       checkCoverage(tg, data)
+               })
+       }
 }
 
 func TestCgoDependsOnSyscall(t *testing.T) {
index 387a5227146894b854d8187e1d451f9b6b643fd6..95914d5f58d7ab71cf83c2c43d745cc3cf5a50c2 100644 (file)
@@ -867,7 +867,7 @@ func (b *builder) test(p *Package) (buildAction, runAction, printAction *action,
        if err != nil {
                return nil, nil, nil, err
        }
-       if len(ptest.GoFiles) > 0 {
+       if len(ptest.GoFiles)+len(ptest.CgoFiles) > 0 {
                pmain.imports = append(pmain.imports, ptest)
                t.ImportTest = true
        }
diff --git a/src/cmd/go/testdata/src/cgocover2/p.go b/src/cmd/go/testdata/src/cgocover2/p.go
new file mode 100644 (file)
index 0000000..a6a3891
--- /dev/null
@@ -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/src/cgocover2/x_test.go b/src/cmd/go/testdata/src/cgocover2/x_test.go
new file mode 100644 (file)
index 0000000..f4790d2
--- /dev/null
@@ -0,0 +1,10 @@
+package p_test
+
+import (
+       . "cgocover2"
+       "testing"
+)
+
+func TestF(t *testing.T) {
+       F()
+}
diff --git a/src/cmd/go/testdata/src/cgocover3/p.go b/src/cmd/go/testdata/src/cgocover3/p.go
new file mode 100644 (file)
index 0000000..a6a3891
--- /dev/null
@@ -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/src/cgocover3/p_test.go b/src/cmd/go/testdata/src/cgocover3/p_test.go
new file mode 100644 (file)
index 0000000..c89cd18
--- /dev/null
@@ -0,0 +1 @@
+package p
diff --git a/src/cmd/go/testdata/src/cgocover3/x_test.go b/src/cmd/go/testdata/src/cgocover3/x_test.go
new file mode 100644 (file)
index 0000000..97d0e0f
--- /dev/null
@@ -0,0 +1,10 @@
+package p_test
+
+import (
+       . "cgocover3"
+       "testing"
+)
+
+func TestF(t *testing.T) {
+       F()
+}
diff --git a/src/cmd/go/testdata/src/cgocover4/notcgo.go b/src/cmd/go/testdata/src/cgocover4/notcgo.go
new file mode 100644 (file)
index 0000000..c89cd18
--- /dev/null
@@ -0,0 +1 @@
+package p
diff --git a/src/cmd/go/testdata/src/cgocover4/p.go b/src/cmd/go/testdata/src/cgocover4/p.go
new file mode 100644 (file)
index 0000000..a6a3891
--- /dev/null
@@ -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/src/cgocover4/x_test.go b/src/cmd/go/testdata/src/cgocover4/x_test.go
new file mode 100644 (file)
index 0000000..fd9bae7
--- /dev/null
@@ -0,0 +1,10 @@
+package p_test
+
+import (
+       . "cgocover4"
+       "testing"
+)
+
+func TestF(t *testing.T) {
+       F()
+}