]> Cypherpunks repositories - gostls13.git/commitdiff
testing/cover: improve message when a package has no statements
authorAgniva De Sarker <agnivade@yahoo.co.in>
Sun, 23 Dec 2018 09:31:11 +0000 (15:01 +0530)
committerAgniva De Sarker <agniva.quicksilver@gmail.com>
Wed, 13 Mar 2019 04:11:58 +0000 (04:11 +0000)
Fixes #25492

Change-Id: Ic1496857524dad0c0a77f3bb80fa084c9bf00aa9
Reviewed-on: https://go-review.googlesource.com/c/go/+/155777
Run-TryBot: Agniva De Sarker <agniva.quicksilver@gmail.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Rob Pike <r@golang.org>
src/cmd/go/go_test.go
src/cmd/go/testdata/testcover/pkg4/a.go [new file with mode: 0644]
src/cmd/go/testdata/testcover/pkg4/a_test.go [new file with mode: 0644]
src/testing/cover.go

index f25d6f4503cbd3148c98bd775742288fcc1f94a3..60e02e75324cd98507e5ce8052518e6b91740b4e 100644 (file)
@@ -2612,6 +2612,14 @@ func TestCoverageDepLoop(t *testing.T) {
        tg.grepStdout("coverage: 100.0% of statements", "expected 100.0% coverage")
 }
 
+func TestCoverageNoStatements(t *testing.T) {
+       tooSlow(t)
+       tg := testgo(t)
+       defer tg.cleanup()
+       tg.run("test", "-cover", "./testdata/testcover/pkg4")
+       tg.grepStdout("[no statements]", "expected [no statements] for pkg4")
+}
+
 func TestCoverageImportMainLoop(t *testing.T) {
        skipIfGccgo(t, "gccgo has no cover tool")
        tg := testgo(t)
diff --git a/src/cmd/go/testdata/testcover/pkg4/a.go b/src/cmd/go/testdata/testcover/pkg4/a.go
new file mode 100644 (file)
index 0000000..cf09e6f
--- /dev/null
@@ -0,0 +1,5 @@
+package pkg4
+
+type T struct {
+       X bool
+}
diff --git a/src/cmd/go/testdata/testcover/pkg4/a_test.go b/src/cmd/go/testdata/testcover/pkg4/a_test.go
new file mode 100644 (file)
index 0000000..12b8685
--- /dev/null
@@ -0,0 +1,9 @@
+package pkg4
+
+import (
+       "testing"
+)
+
+func TestT(t *testing.T) {
+       _ = T{}
+}
index 17c03f5e5ef69fac5202c0306270e958e23be6ef..62ee5ac9c0fb05394968f0589fa8054dcd2c0853 100644 (file)
@@ -109,7 +109,8 @@ func coverReport() {
                }
        }
        if total == 0 {
-               total = 1
+               fmt.Println("coverage: [no statements]")
+               return
        }
        fmt.Printf("coverage: %.1f%% of statements%s\n", 100*float64(active)/float64(total), cover.CoveredPackages)
 }