aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/go/internal/test/test.go
diff options
context:
space:
mode:
authorJay Conrod <jayconrod@google.com>2021-04-15 18:06:45 -0400
committerJay Conrod <jayconrod@google.com>2021-04-16 14:15:42 +0000
commitdc76c4756599ac4bd9644e407aa2af9f9c8a3bdc (patch)
treef8b57a4e4cee0ca04911f6d0ccd2d727df09ac87 /src/cmd/go/internal/test/test.go
parentcde92846e227425df8258cafade02497a60e421e (diff)
downloadgo-dc76c4756599ac4bd9644e407aa2af9f9c8a3bdc.tar.gz
go-dc76c4756599ac4bd9644e407aa2af9f9c8a3bdc.zip
cmd/go/internal/load: convert two global flags to an options struct
PackageOpts is a new struct type accepted by package loading functions. It initially has two fields: IgnoreImports, and ModResolveTests. Previously, these were global variables set by clients. We'll add more to this in the future. For #40775 Change-Id: I6956e56502de836d3815ce788bdf16fc5f3e5338 Reviewed-on: https://go-review.googlesource.com/c/go/+/310669 Trust: Jay Conrod <jayconrod@google.com> Run-TryBot: Jay Conrod <jayconrod@google.com> TryBot-Result: Go Bot <gobot@golang.org> Reviewed-by: Bryan C. Mills <bcmills@google.com>
Diffstat (limited to 'src/cmd/go/internal/test/test.go')
-rw-r--r--src/cmd/go/internal/test/test.go15
1 files changed, 7 insertions, 8 deletions
diff --git a/src/cmd/go/internal/test/test.go b/src/cmd/go/internal/test/test.go
index ebe13205f7..847b9357b4 100644
--- a/src/cmd/go/internal/test/test.go
+++ b/src/cmd/go/internal/test/test.go
@@ -569,8 +569,6 @@ var defaultVetFlags = []string{
}
func runTest(ctx context.Context, cmd *base.Command, args []string) {
- load.ModResolveTests = true
-
pkgArgs, testArgs = testFlags(args)
if cfg.DebugTrace != "" {
@@ -596,7 +594,8 @@ func runTest(ctx context.Context, cmd *base.Command, args []string) {
work.VetFlags = testVet.flags
work.VetExplicit = testVet.explicit
- pkgs = load.PackagesAndErrors(ctx, pkgArgs)
+ pkgOpts := load.PackageOpts{ModResolveTests: true}
+ pkgs = load.PackagesAndErrors(ctx, pkgOpts, pkgArgs)
load.CheckPackageErrors(pkgs)
if len(pkgs) == 0 {
base.Fatalf("no packages to test")
@@ -680,7 +679,7 @@ func runTest(ctx context.Context, cmd *base.Command, args []string) {
sort.Strings(all)
a := &work.Action{Mode: "go test -i"}
- pkgs := load.PackagesAndErrors(ctx, all)
+ pkgs := load.PackagesAndErrors(ctx, pkgOpts, all)
load.CheckPackageErrors(pkgs)
for _, p := range pkgs {
if cfg.BuildToolchainName == "gccgo" && p.Standard {
@@ -707,7 +706,7 @@ func runTest(ctx context.Context, cmd *base.Command, args []string) {
}
// Select for coverage all dependencies matching the testCoverPaths patterns.
- for _, p := range load.TestPackageList(ctx, pkgs) {
+ for _, p := range load.TestPackageList(ctx, pkgOpts, pkgs) {
haveMatch := false
for i := range testCoverPaths {
if match[i](p) {
@@ -775,7 +774,7 @@ func runTest(ctx context.Context, cmd *base.Command, args []string) {
ensureImport(p, "sync/atomic")
}
- buildTest, runTest, printTest, err := builderTest(&b, ctx, p)
+ buildTest, runTest, printTest, err := builderTest(&b, ctx, pkgOpts, p)
if err != nil {
str := err.Error()
str = strings.TrimPrefix(str, "\n")
@@ -842,7 +841,7 @@ var windowsBadWords = []string{
"update",
}
-func builderTest(b *work.Builder, ctx context.Context, p *load.Package) (buildAction, runAction, printAction *work.Action, err error) {
+func builderTest(b *work.Builder, ctx context.Context, pkgOpts load.PackageOpts, p *load.Package) (buildAction, runAction, printAction *work.Action, err error) {
if len(p.TestGoFiles)+len(p.XTestGoFiles) == 0 {
build := b.CompileAction(work.ModeBuild, work.ModeBuild, p)
run := &work.Action{Mode: "test run", Package: p, Deps: []*work.Action{build}}
@@ -865,7 +864,7 @@ func builderTest(b *work.Builder, ctx context.Context, p *load.Package) (buildAc
DeclVars: declareCoverVars,
}
}
- pmain, ptest, pxtest, err := load.TestPackagesFor(ctx, p, cover)
+ pmain, ptest, pxtest, err := load.TestPackagesFor(ctx, pkgOpts, p, cover)
if err != nil {
return nil, nil, nil, err
}