| #!/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. | 
 | # https://golang.org/doc/articles/race_detector.html | 
 |  | 
 | set -e | 
 |  | 
 | function usage { | 
 | 	echo 'race detector is only supported on linux/amd64, freebsd/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 | 
 | 	;; | 
 | "FreeBSD") | 
 | 	if [ $(uname -m) != "amd64" ]; 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 tool dist test -no-rebuild -race |