mirror of
https://github.com/golang/go.git
synced 2025-05-05 23:53:05 +00:00
There is one non-test change: have FakeContext change the compiler to "gc", as callers expect to be accessing a gc-style GOROOT. The go/pointer, go/ssa, and go/ssa/interp tests still fail with gccgo. Change-Id: I850c9618401f6b9e63d7ca7196f91931b03f1524 Reviewed-on: https://go-review.googlesource.com/117395 Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
84 lines
1.8 KiB
Go
84 lines
1.8 KiB
Go
// Copyright 2014 The Go Authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style
|
|
// license that can be found in the LICENSE file.
|
|
|
|
// Incomplete source tree on Android.
|
|
|
|
// +build !android
|
|
|
|
package buildutil_test
|
|
|
|
import (
|
|
"go/build"
|
|
"runtime"
|
|
"sort"
|
|
"strings"
|
|
"testing"
|
|
|
|
"golang.org/x/tools/go/buildutil"
|
|
)
|
|
|
|
func TestAllPackages(t *testing.T) {
|
|
if runtime.Compiler == "gccgo" {
|
|
t.Skip("gccgo has no standard packages")
|
|
}
|
|
|
|
all := buildutil.AllPackages(&build.Default)
|
|
|
|
set := make(map[string]bool)
|
|
for _, pkg := range all {
|
|
set[pkg] = true
|
|
}
|
|
|
|
const wantAtLeast = 250
|
|
if len(all) < wantAtLeast {
|
|
t.Errorf("Found only %d packages, want at least %d", len(all), wantAtLeast)
|
|
}
|
|
|
|
for _, want := range []string{"fmt", "crypto/sha256", "golang.org/x/tools/go/buildutil"} {
|
|
if !set[want] {
|
|
t.Errorf("Package %q not found; got %s", want, all)
|
|
}
|
|
}
|
|
}
|
|
|
|
func TestExpandPatterns(t *testing.T) {
|
|
tree := make(map[string]map[string]string)
|
|
for _, pkg := range []string{
|
|
"encoding",
|
|
"encoding/xml",
|
|
"encoding/hex",
|
|
"encoding/json",
|
|
"fmt",
|
|
} {
|
|
tree[pkg] = make(map[string]string)
|
|
}
|
|
ctxt := buildutil.FakeContext(tree)
|
|
|
|
for _, test := range []struct {
|
|
patterns string
|
|
want string
|
|
}{
|
|
{"", ""},
|
|
{"fmt", "fmt"},
|
|
{"nosuchpkg", "nosuchpkg"},
|
|
{"nosuchdir/...", ""},
|
|
{"...", "encoding encoding/hex encoding/json encoding/xml fmt"},
|
|
{"encoding/... -encoding/xml", "encoding encoding/hex encoding/json"},
|
|
{"... -encoding/...", "fmt"},
|
|
{"encoding", "encoding"},
|
|
{"encoding/", "encoding"},
|
|
} {
|
|
var pkgs []string
|
|
for pkg := range buildutil.ExpandPatterns(ctxt, strings.Fields(test.patterns)) {
|
|
pkgs = append(pkgs, pkg)
|
|
}
|
|
sort.Strings(pkgs)
|
|
got := strings.Join(pkgs, " ")
|
|
if got != test.want {
|
|
t.Errorf("ExpandPatterns(%s) = %s, want %s",
|
|
test.patterns, got, test.want)
|
|
}
|
|
}
|
|
}
|