summaryrefslogtreecommitdiff
path: root/src/race.bash
diff options
context:
space:
mode:
authorDave Cheney <dave@cheney.net>2013-01-28 21:05:25 +1100
committerDave Cheney <dave@cheney.net>2013-01-28 21:05:25 +1100
commitc5c435d3d0581e714203e84b9754bfc1e41d800e (patch)
tree672bbc98ee41653a2d4a91fe841989f3ca9e8c0f /src/race.bash
parent2e0eae3e1a78cae789066dba655b6fa8f25158d4 (diff)
downloadgo-c5c435d3d0581e714203e84b9754bfc1e41d800e.tar.gz
src: add race.bash
Add race.bash so anyone with suitable hardware can run a race detector build. race.bash can be called from the dashboard builder by passing -cmd="race.bash". Original source for race.bash is here, http://code.google.com/p/go-wiki/wiki/DashboardBuilders TODO: add race.bat for windows/amd64 R=dvyukov, minux.ma, adg, rsc CC=fullung, golang-dev https://codereview.appspot.com/7179052
Diffstat (limited to 'src/race.bash')
-rwxr-xr-xsrc/race.bash40
1 files changed, 40 insertions, 0 deletions
diff --git a/src/race.bash b/src/race.bash
new file mode 100755
index 000000000..3cdc5e10c
--- /dev/null
+++ b/src/race.bash
@@ -0,0 +1,40 @@
+#!/usr/bin/env bash
+# Copyright 2013 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.
+
+# race.bash tests the standard library under the race detector.
+# http://golang.org/doc/articles/race_detector.html
+
+set -e
+
+function usage {
+ echo 'race detector is only supported on linux/amd64 and darwin/amd64' 1>&2
+ exit 1
+}
+
+case $(uname) in
+"Darwin")
+ # why Apple? why?
+ if sysctl machdep.cpu.extfeatures | grep -qv EM64T; then
+ usage
+ fi
+ ;;
+"Linux")
+ if [ $(uname -m) != "x86_64" ]; then
+ usage
+ fi
+ ;;
+*)
+ usage
+ ;;
+esac
+
+if [ ! -f make.bash ]; then
+ echo 'race.bash must be run from $GOROOT/src' 1>&2
+ exit 1
+fi
+. ./make.bash --no-banner
+go install -race std
+go test -race -short std
+go test -race -run=nothingplease -bench=.* -benchtime=.1s -cpu=4 std