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
9set -e
10
11function usage {
12	echo 'race detector is only supported on linux/amd64, freebsd/amd64 and darwin/amd64' 1>&2
13	exit 1
14}
15
16case $(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	;;
36esac
37
38if [ ! -f make.bash ]; then
39	echo 'race.bash must be run from $GOROOT/src' 1>&2
40	exit 1
41fi
42. ./make.bash --no-banner
43go install -race std
44go tool dist test -race
45