github.com/akaros/go-akaros@v0.0.0-20181004170632-85005d477eab/src/race.bash (about) 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 # http://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, akaros/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 "Akaros") 29 if [ $(uname -m) != "x86_64" ]; then 30 usage 31 fi 32 ;; 33 "FreeBSD") 34 if [ $(uname -m) != "amd64" ]; then 35 usage 36 fi 37 ;; 38 *) 39 usage 40 ;; 41 esac 42 43 if [ ! -f make.bash ]; then 44 echo 'race.bash must be run from $GOROOT/src' 1>&2 45 exit 1 46 fi 47 . ./make.bash --no-banner 48 # golang.org/issue/5537 - we must build a race enabled cmd/cgo before trying to use it. 49 go install -race cmd/cgo 50 go install -race std 51 52 # we must unset GOROOT_FINAL before tests, because runtime/debug requires 53 # correct access to source code, so if we have GOROOT_FINAL in effect, 54 # at least runtime/debug test will fail. 55 unset GOROOT_FINAL 56 57 go test -race -short std 58 go test -race -run=nothingplease -bench=.* -benchtime=.1s -cpu=4 std