mirror of
https://github.com/golang/go
synced 2024-10-14 20:05:36 +00:00
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 <bcmills@google.com> Reviewed-by: Jay Conrod <jayconrod@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org>
This commit is contained in:
parent
48989d519c
commit
a23f9afd98
|
@ -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)
|
||||
|
|
25
src/cmd/go/testdata/script/cover_modes.txt
vendored
Normal file
25
src/cmd/go/testdata/script/cover_modes.txt
vendored
Normal file
|
@ -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
|
Loading…
Reference in a new issue