From a23f9afd9899160b525dbc10d01045d9a3f072a0 Mon Sep 17 00:00:00 2001 From: "Bryan C. Mills" Date: Mon, 18 Nov 2019 13:20:39 -0500 Subject: [PATCH] cmd/go: convert TestCoverageUses*Mode* to script tests Updates #28387 Updates #30316 Change-Id: I5a1a7870928083a98a76225c428ad4d7263fd832 Reviewed-on: https://go-review.googlesource.com/c/go/+/207610 Run-TryBot: Bryan C. Mills Reviewed-by: Jay Conrod TryBot-Result: Gobot Gobot --- src/cmd/go/go_test.go | 51 ---------------------- src/cmd/go/testdata/script/cover_modes.txt | 25 +++++++++++ 2 files changed, 25 insertions(+), 51 deletions(-) create mode 100644 src/cmd/go/testdata/script/cover_modes.txt diff --git a/src/cmd/go/go_test.go b/src/cmd/go/go_test.go index 102ee73a28..a7d58409b9 100644 --- a/src/cmd/go/go_test.go +++ b/src/cmd/go/go_test.go @@ -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 index 0000000000..f8a399d0e6 --- /dev/null +++ b/src/cmd/go/testdata/script/cover_modes.txt @@ -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 -- 2.50.0