cmd/go: make package list order predicable

also add a cleanup phase to cmd/go/test.bash.

R=golang-dev, bradfitz
CC=golang-dev
https://golang.org/cl/6741050
This commit is contained in:
Shenghou Ma 2012-10-20 17:25:13 +08:00
parent bcdb7926dd
commit 6a3ad481cd
2 changed files with 16 additions and 5 deletions

View file

@ -674,12 +674,11 @@ func packagesAndErrors(args []string) []*Package {
var set = make(map[string]bool)
for _, arg := range args {
set[arg] = true
if !set[arg] {
pkgs = append(pkgs, loadPackage(arg, &stk))
set[arg] = true
}
}
for arg := range set {
pkgs = append(pkgs, loadPackage(arg, &stk))
}
computeStale(pkgs...)
return pkgs

View file

@ -142,6 +142,18 @@ if [ $(./testgo test fmt fmt fmt fmt fmt | wc -l) -ne 1 ] ; then
ok=false
fi
# ensure that output of 'go list' is consistent between runs
./testgo list std > test_std.list
if ! ./testgo list std | cmp -s test_std.list - ; then
echo "go list std ordering is inconsistent"
ok=false
fi
rm -f test_std.list
# clean up
rm -rf testdata/bin testdata/bin1
rm -f testgo
if $ok; then
echo PASS
else