mirror of
https://github.com/golang/go
synced 2024-11-02 08:01:26 +00:00
ee379d2b08
This is a followup to CL 96495. It should be simpler and more robust to achieve .bat files having CRLF line endings by treating it as a binary file, like all other files, and checking it in with the desired CRLF line endings. A test is used to check the entire Go tree, short of directories starting with "." and named "testdata", for any .bat files that have anything other than strict CRLF line endings. This will help catch any accidental modifications to existing .bat files or check ins of new .bat files. Importantly, this is compatible with how Gerrit serves .tar.gz files, making it so that CRLF line endings are preserved. The Go project is supported on many different environments, some of which may have limited git implementations available, or none at all. Relying on fewer git features and special rules makes it easier to have confidence in the exact content of all files. Additionally, Go development started in Subversion, moved to Perforce, then Mercurial, and now uses Git.¹ Reducing its reliance on git-specific features will help if there will be another transition in the project's future. There are only 5 .bat files in the entire Go source tree, so a new one being added is a rare event, and we prefer to do things in Go instead. We still have the option of improving the experience for developers by adding a pre-commit converter for .bat files to the git-codereview tool. ¹ https://groups.google.com/d/msg/golang-dev/sckirqOWepg/YmyT7dWJiocJ Fixes #39391. For #37791. Change-Id: I6e202216322872f0307ac96f1b8d3f57cb901e6b Reviewed-on: https://go-review.googlesource.com/c/go/+/236437 Reviewed-by: Bryan C. Mills <bcmills@google.com>
51 lines
1.1 KiB
Batchfile
51 lines
1.1 KiB
Batchfile
:: 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.
|
|
:: https://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
|
|
|
|
set GOROOT=%CD%\..
|
|
call make.bat --dist-tool >NUL
|
|
if errorlevel 1 goto fail
|
|
.\cmd\dist\dist.exe env -w -p >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
|
|
|
|
go tool dist test -race
|
|
|
|
if errorlevel 1 goto fail
|
|
goto succ
|
|
|
|
:fail
|
|
set GOBUILDFAIL=1
|
|
echo Fail.
|
|
goto end
|
|
|
|
:succ
|
|
echo All tests passed.
|
|
|
|
:end
|
|
if x%GOBUILDEXIT%==x1 exit %GOBUILDFAIL%
|