diff options
| author | Than McIntosh <thanm@google.com> | 2024-05-23 13:07:31 +0000 |
|---|---|---|
| committer | Than McIntosh <thanm@google.com> | 2024-05-23 14:01:23 +0000 |
| commit | 9b5d27faf93d326bb634946b720900e5c5da515c (patch) | |
| tree | 2fe48f98354fe0661bfc9adf83b1b4b0604ab6ef /src/testing | |
| parent | f109bdd1278d59fc6c506d1db50c52f0e969348e (diff) | |
| download | go-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.go | 17 |
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 |
