|  | #!/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 |