aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/api/goapi_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'src/cmd/api/goapi_test.go')
-rw-r--r--src/cmd/api/goapi_test.go49
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")