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