1 #!/usr/bin/env bash 2 # Copyright 2013 The Go Authors. All rights reserved. 3 # Use of this source code is governed by a BSD-style 4 # license that can be found in the LICENSE file. 5 6 # race.bash tests the standard library under the race detector. 7 # https://golang.org/doc/articles/race_detector.html 8 9 set -e 10 11 function usage { 12 echo 'race detector is only supported on linux/amd64, freebsd/amd64 and darwin/amd64' 1>&2 13 exit 1 14 } 15 16 case $(uname) in 17 "Darwin") 18 # why Apple? why? 19 if sysctl machdep.cpu.extfeatures | grep -qv EM64T; then 20 usage 21 fi 22 ;; 23 "Linux") 24 if [ $(uname -m) != "x86_64" ]; then 25 usage 26 fi 27 ;; 28 "FreeBSD") 29 if [ $(uname -m) != "amd64" ]; then 30 usage 31 fi 32 ;; 33 *) 34 usage 35 ;; 36 esac 37 38 if [ ! -f make.bash ]; then 39 echo 'race.bash must be run from $GOROOT/src' 1>&2 40 exit 1 41 fi 42 . ./make.bash --no-banner 43 go install -race std 44 go tool dist test -race 45