summaryrefslogtreecommitdiff
path: root/src/race.bat
diff options
context:
space:
mode:
Diffstat (limited to 'src/race.bat')
-rw-r--r--src/race.bat52
1 files changed, 52 insertions, 0 deletions
diff --git a/src/race.bat b/src/race.bat
new file mode 100644
index 000000000..989a2e7d8
--- /dev/null
+++ b/src/race.bat
@@ -0,0 +1,52 @@
+:: 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.
+:: http://golang.org/doc/articles/race_detector.html
+
+@echo off
+
+setlocal
+
+if exist make.bat goto ok
+echo race.bat must be run from go\src
+:: cannot exit: would kill parent command interpreter
+goto end
+:ok
+
+call make.bat --dist-tool >NUL
+if errorlevel 1 goto fail
+.\cmd\dist\dist env -wp >env.bat
+if errorlevel 1 goto fail
+call env.bat
+del env.bat
+
+if %GOHOSTARCH% == amd64 goto continue
+echo Race detector is only supported on windows/amd64.
+goto fail
+
+:continue
+call make.bat --no-banner --no-local
+if %GOBUILDFAIL%==1 goto end
+echo # go install -race std
+go install -race std
+if errorlevel 1 goto fail
+echo # go test -race -short -std
+go test -race -short std
+if errorlevel 1 goto fail
+echo # go test -race -run=nothingplease -bench=.* -benchtime=.1s -cpu=4 std
+go test -race -run=nothingplease -bench=.* -benchtime=.1s -cpu=4 std
+if errorlevel 1 goto fail
+goto succ
+
+:fail
+set GOBUILDFAIL=1
+echo Fail.
+goto end
+
+:succ
+echo All tests passed.
+
+:end
+