]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/go: convert TestCoverageUses*Mode* to script tests
authorBryan C. Mills <bcmills@google.com>
Mon, 18 Nov 2019 18:20:39 +0000 (13:20 -0500)
committerBryan C. Mills <bcmills@google.com>
Mon, 18 Nov 2019 19:04:04 +0000 (19:04 +0000)
Updates #28387
Updates #30316

Change-Id: I5a1a7870928083a98a76225c428ad4d7263fd832
Reviewed-on: https://go-review.googlesource.com/c/go/+/207610
Run-TryBot: Bryan C. Mills <bcmills@google.com>
Reviewed-by: Jay Conrod <jayconrod@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>

src/cmd/go/go_test.go
src/cmd/go/testdata/script/cover_modes.txt [new file with mode: 0644]

index 102ee73a28f1e48d548b14c94cfcee1049c7dd13..a7d58409b98f602e65a999e2c0a3af685c97d595 100644 (file)
@@ -2376,57 +2376,6 @@ func TestCoverageDotImport(t *testing.T) {
        checkCoverage(tg, data)
 }
 
-// Check that coverage analysis uses set mode.
-// Also check that coverage profiles merge correctly.
-func TestCoverageUsesSetMode(t *testing.T) {
-       skipIfGccgo(t, "gccgo has no cover tool")
-       tooSlow(t)
-       tg := testgo(t)
-       defer tg.cleanup()
-       tg.creatingTemp("testdata/cover.out")
-       tg.run("test", "-short", "-cover", "encoding/binary", "errors", "-coverprofile=testdata/cover.out")
-       data := tg.getStdout() + tg.getStderr()
-       if out, err := ioutil.ReadFile("testdata/cover.out"); err != nil {
-               t.Error(err)
-       } else {
-               if !bytes.Contains(out, []byte("mode: set")) {
-                       t.Error("missing mode: set")
-               }
-               if !bytes.Contains(out, []byte("errors.go")) {
-                       t.Error("missing errors.go")
-               }
-               if !bytes.Contains(out, []byte("binary.go")) {
-                       t.Error("missing binary.go")
-               }
-               if bytes.Count(out, []byte("mode: set")) != 1 {
-                       t.Error("too many mode: set")
-               }
-       }
-       checkCoverage(tg, data)
-}
-
-func TestCoverageUsesAtomicModeForRace(t *testing.T) {
-       tooSlow(t)
-       if !canRace {
-               t.Skip("skipping because race detector not supported")
-       }
-       skipIfGccgo(t, "gccgo has no cover tool")
-
-       tg := testgo(t)
-       defer tg.cleanup()
-       tg.creatingTemp("testdata/cover.out")
-       tg.run("test", "-short", "-race", "-cover", "encoding/binary", "-coverprofile=testdata/cover.out")
-       data := tg.getStdout() + tg.getStderr()
-       if out, err := ioutil.ReadFile("testdata/cover.out"); err != nil {
-               t.Error(err)
-       } else {
-               if !bytes.Contains(out, []byte("mode: atomic")) {
-                       t.Error("missing mode: atomic")
-               }
-       }
-       checkCoverage(tg, data)
-}
-
 func TestCoverageSyncAtomicImport(t *testing.T) {
        skipIfGccgo(t, "gccgo has no cover tool")
        tooSlow(t)
diff --git a/src/cmd/go/testdata/script/cover_modes.txt b/src/cmd/go/testdata/script/cover_modes.txt
new file mode 100644 (file)
index 0000000..f8a399d
--- /dev/null
@@ -0,0 +1,25 @@
+env GO111MODULE=off
+
+# Coverage analysis should use 'set' mode by default,
+# and should merge coverage profiles correctly.
+
+[short] skip
+[gccgo] skip # gccgo has no cover tool
+
+go test -short -cover encoding/binary errors -coverprofile=$WORK/cover.out
+! stderr '[^0-9]0\.0%'
+! stdout '[^0-9]0\.0%'
+
+grep -count=1 '^mode: set$' $WORK/cover.out
+grep 'errors\.go' $WORK/cover.out
+grep 'binary\.go' $WORK/cover.out
+
+[!race] stop
+
+go test -short -race -cover encoding/binary errors -coverprofile=$WORK/cover.out
+! stderr '[^0-9]0\.0%'
+! stdout '[^0-9]0\.0%'
+
+grep -count=1 '^mode: atomic$' $WORK/cover.out
+grep 'errors\.go' $WORK/cover.out
+grep 'binary\.go' $WORK/cover.out