aboutsummaryrefslogtreecommitdiff
path: root/src/testing
diff options
context:
space:
mode:
authorThan McIntosh <thanm@google.com>2024-05-23 13:07:31 +0000
committerThan McIntosh <thanm@google.com>2024-05-23 14:01:23 +0000
commit9b5d27faf93d326bb634946b720900e5c5da515c (patch)
tree2fe48f98354fe0661bfc9adf83b1b4b0604ab6ef /src/testing
parentf109bdd1278d59fc6c506d1db50c52f0e969348e (diff)
downloadgo-9b5d27faf93d326bb634946b720900e5c5da515c.tar.xz
cmd/go,testdeps: move import of internal/coverage/cfile to testmain
Instead of having testing/internal/testdeps import the internal/coverage/cfile package directly, have the code in testmain pass in pointers to cfile functions during setup in the case that we're running a "go test -cover" binary. This reduces the size of regular non-coverage test binaries back to what they were before CL 585820. Updates #67401. Fixes #67588. Change-Id: Iaf1a613bc7d3c9df9943189065d0161ca9120d34 Reviewed-on: https://go-review.googlesource.com/c/go/+/587795 LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Russ Cox <rsc@golang.org>
Diffstat (limited to 'src/testing')
-rw-r--r--src/testing/internal/testdeps/deps.go17
1 files changed, 13 insertions, 4 deletions
diff --git a/src/testing/internal/testdeps/deps.go b/src/testing/internal/testdeps/deps.go
index 88c1b253ee..3b5dc7198f 100644
--- a/src/testing/internal/testdeps/deps.go
+++ b/src/testing/internal/testdeps/deps.go
@@ -13,7 +13,6 @@ package testdeps
import (
"bufio"
"context"
- "internal/coverage/cfile"
"internal/fuzz"
"internal/testlog"
"io"
@@ -205,11 +204,21 @@ func (TestDeps) SnapshotCoverage() {
var CoverMode string
var Covered string
+// These variables below are set at runtime (via code in testmain) to point
+// to the equivalent functions in package internal/coverage/cfile; doing
+// things this way allows us to have tests import internal/coverage/cfile
+// only when -cover is in effect (as opposed to importing for all tests).
+var (
+ CoverSnapshotFunc func() float64
+ CoverProcessTestDirFunc func(dir string, cfile string, cm string, cpkg string, w io.Writer) error
+ CoverMarkProfileEmittedFunc func(val bool)
+)
+
func (TestDeps) InitRuntimeCoverage() (mode string, tearDown func(string, string) (string, error), snapcov func() float64) {
if CoverMode == "" {
return
}
- return CoverMode, coverTearDown, cfile.Snapshot
+ return CoverMode, coverTearDown, CoverSnapshotFunc
}
func coverTearDown(coverprofile string, gocoverdir string) (string, error) {
@@ -221,9 +230,9 @@ func coverTearDown(coverprofile string, gocoverdir string) (string, error) {
}
defer os.RemoveAll(gocoverdir)
}
- cfile.MarkProfileEmitted(true)
+ CoverMarkProfileEmittedFunc(true)
cmode := CoverMode
- if err := cfile.ProcessCoverTestDir(gocoverdir, coverprofile, cmode, Covered, os.Stdout); err != nil {
+ if err := CoverProcessTestDirFunc(gocoverdir, coverprofile, cmode, Covered, os.Stdout); err != nil {
return "error generating coverage report", err
}
return "", nil