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
diff --git a/src/run.bash b/src/run.bash
index 430ee76..748f6e9 100755
--- a/src/run.bash
+++ b/src/run.bash
@@ -74,7 +74,7 @@
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 @@
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