diff options
Diffstat (limited to 'src/cmd/api/goapi_test.go')
| -rw-r--r-- | src/cmd/api/goapi_test.go | 49 |
1 files changed, 25 insertions, 24 deletions
diff --git a/src/cmd/api/goapi_test.go b/src/cmd/api/goapi_test.go index fc1bcc908a..282f26f708 100644 --- a/src/cmd/api/goapi_test.go +++ b/src/cmd/api/goapi_test.go @@ -9,16 +9,36 @@ import ( "flag" "fmt" "go/build" - "internal/testenv" "io/ioutil" "os" - "os/exec" "path/filepath" "sort" "strings" + "sync" "testing" ) +func TestMain(m *testing.M) { + flag.Parse() + for _, c := range contexts { + c.Compiler = build.Default.Compiler + } + + // Warm up the import cache in parallel. + var wg sync.WaitGroup + for _, context := range contexts { + context := context + wg.Add(1) + go func() { + defer wg.Done() + _ = NewWalker(context, filepath.Join(build.Default.GOROOT, "src")) + }() + } + wg.Wait() + + os.Exit(m.Run()) +} + var ( updateGolden = flag.Bool("updategolden", false, "update golden files") ) @@ -164,25 +184,12 @@ func TestSkipInternal(t *testing.T) { } func BenchmarkAll(b *testing.B) { - stds, err := exec.Command(testenv.GoToolPath(b), "list", "std").Output() - if err != nil { - b.Fatal(err) - } - b.ResetTimer() - pkgNames := strings.Fields(string(stds)) - - for _, c := range contexts { - c.Compiler = build.Default.Compiler - } - for i := 0; i < b.N; i++ { for _, context := range contexts { w := NewWalker(context, filepath.Join(build.Default.GOROOT, "src")) - for _, name := range pkgNames { - if name != "unsafe" && !strings.HasPrefix(name, "cmd/") && !internalPkg.MatchString(name) { - pkg, _ := w.Import(name) - w.export(pkg) - } + for _, name := range w.stdPackages { + pkg, _ := w.Import(name) + w.export(pkg) } w.Features() } @@ -190,9 +197,6 @@ func BenchmarkAll(b *testing.B) { } func TestIssue21181(t *testing.T) { - for _, c := range contexts { - c.Compiler = build.Default.Compiler - } for _, context := range contexts { w := NewWalker(context, "testdata/src/issue21181") pkg, err := w.Import("p") @@ -205,9 +209,6 @@ func TestIssue21181(t *testing.T) { } func TestIssue29837(t *testing.T) { - for _, c := range contexts { - c.Compiler = build.Default.Compiler - } for _, context := range contexts { w := NewWalker(context, "testdata/src/issue29837") _, err := w.Import("p") |
