diff options
| author | Brad Fitzpatrick <bradfitz@golang.org> | 2012-03-17 11:20:46 -0700 |
|---|---|---|
| committer | Brad Fitzpatrick <bradfitz@golang.org> | 2012-03-17 11:20:46 -0700 |
| commit | f69132d7ad89c6507af6079bd75d2fe50f7f7fe8 (patch) | |
| tree | 9c90f1dfec3a57871f123faf835ff86451b9b0c8 /src | |
| parent | 883a96d9509c62fddc03fedf4b711c738dc7ac9e (diff) | |
| download | go-f69132d7ad89c6507af6079bd75d2fe50f7f7fe8.tar.xz | |
build: catch API changes during build
Adds new file api/go1.txt, locking down the current API.
Any changes to the API will need to update that file.
run.bash (but not make.bash, or Windows) will check for
accidental API changes.
R=golang-dev, dsymonds, rsc
CC=golang-dev
https://golang.org/cl/5820070
Diffstat (limited to 'src')
| -rw-r--r-- | src/cmd/api/goapi.go | 13 | ||||
| -rwxr-xr-x | src/run.bash | 8 |
2 files changed, 17 insertions, 4 deletions
diff --git a/src/cmd/api/goapi.go b/src/cmd/api/goapi.go index 1782b73ceb..7363f6d824 100644 --- a/src/cmd/api/goapi.go +++ b/src/cmd/api/goapi.go @@ -131,7 +131,7 @@ func main() { if err != nil { log.Fatalf("Error reading file %s: %v", *checkFile, err) } - v1 := strings.Split(string(bs), "\n") + v1 := strings.Split(strings.TrimSpace(string(bs)), "\n") sort.Strings(v1) v2 := features take := func(sl *[]string) string { @@ -139,17 +139,24 @@ func main() { *sl = (*sl)[1:] return s } + changes := false for len(v1) > 0 || len(v2) > 0 { switch { case len(v2) == 0 || v1[0] < v2[0]: fmt.Fprintf(bw, "-%s\n", take(&v1)) + changes = true case len(v1) == 0 || v1[0] > v2[0]: fmt.Fprintf(bw, "+%s\n", take(&v2)) + changes = true default: take(&v1) take(&v2) } } + if changes { + bw.Flush() + os.Exit(1) + } } else { for _, f := range features { fmt.Fprintf(bw, "%s\n", f) @@ -284,7 +291,9 @@ func (w *Walker) WalkPackage(name string) { } } - log.Printf("package %s", name) + if *verbose { + log.Printf("package %s", name) + } pop := w.pushScope("pkg " + name) defer pop() diff --git a/src/run.bash b/src/run.bash index 430ee76dba..748f6e93f5 100755 --- a/src/run.bash +++ b/src/run.bash @@ -74,7 +74,7 @@ make clean echo echo '#' ../misc/dashboard/builder ../misc/goplay -go build ../misc/dashboard/builder ../misc/goplay || exit $? +go build ../misc/dashboard/builder ../misc/goplay [ "$GOARCH" == arm ] || (xcd ../test/bench/shootout @@ -83,11 +83,15 @@ go build ../misc/dashboard/builder ../misc/goplay || exit $? echo echo '#' ../test/bench/go1 -go test ../test/bench/go1 || exit $? +go test ../test/bench/go1 (xcd ../test time go run run.go ) || exit $? echo +echo '# Checking API compatibility.' +go tool api -c $GOROOT/api/go1.txt + +echo echo ALL TESTS PASSED |
