Pull request: all: add race build mode

Squashed commit of the following:

commit 37ca2962b0c7ee870d07aee5043edcdeb2b2c2ad
Author: Ainar Garipov <A.Garipov@AdGuard.COM>
Date:   Fri Apr 2 13:27:32 2021 +0300

    all: run tests with race enabled

commit 20af1abb95f65c8fa46f6e00172ab8f54a785285
Author: Ainar Garipov <A.Garipov@AdGuard.COM>
Date:   Fri Apr 2 13:14:36 2021 +0300

    all: add race build mode
This commit is contained in:
Ainar Garipov 2021-04-02 13:44:55 +03:00
parent 70d4c70e75
commit 23c9f528db
2 changed files with 21 additions and 4 deletions

View File

@ -15,6 +15,7 @@ GPG_KEY = devteam@adguard.com
GPG_KEY_PASSPHRASE = not-a-real-password GPG_KEY_PASSPHRASE = not-a-real-password
NPM = npm NPM = npm
NPM_FLAGS = --prefix $(CLIENT_DIR) NPM_FLAGS = --prefix $(CLIENT_DIR)
RACE = 0
SIGN = 1 SIGN = 1
VERBOSE = 0 VERBOSE = 0
VERSION = v0.0.0 VERSION = v0.0.0
@ -30,6 +31,7 @@ ENV = env\
GO='$(GO)'\ GO='$(GO)'\
GOPROXY='$(GOPROXY)'\ GOPROXY='$(GOPROXY)'\
PATH="$${PWD}/bin:$$($(GO) env GOPATH)/bin:$${PATH}"\ PATH="$${PWD}/bin:$$($(GO) env GOPATH)/bin:$${PATH}"\
RACE='$(RACE)'\
SIGN='$(SIGN)'\ SIGN='$(SIGN)'\
VERBOSE='$(VERBOSE)'\ VERBOSE='$(VERBOSE)'\
VERSION='$(VERSION)'\ VERSION='$(VERSION)'\
@ -75,9 +77,12 @@ js-beta-test: ; # TODO(v.abdulmyanov): Add tests for the new client.
go-build: ; $(ENV) "$(SHELL)" ./scripts/make/go-build.sh go-build: ; $(ENV) "$(SHELL)" ./scripts/make/go-build.sh
go-deps: ; $(ENV) "$(SHELL)" ./scripts/make/go-deps.sh go-deps: ; $(ENV) "$(SHELL)" ./scripts/make/go-deps.sh
go-lint: ; $(ENV) "$(SHELL)" ./scripts/make/go-lint.sh go-lint: ; $(ENV) "$(SHELL)" ./scripts/make/go-lint.sh
go-test: ; $(ENV) "$(SHELL)" ./scripts/make/go-test.sh
go-tools: ; $(ENV) "$(SHELL)" ./scripts/make/go-tools.sh go-tools: ; $(ENV) "$(SHELL)" ./scripts/make/go-tools.sh
# TODO(a.garipov): Think about making RACE='1' the default for all
# targets.
go-test: ; $(ENV) RACE='1' "$(SHELL)" ./scripts/make/go-test.sh
go-check: go-tools go-lint go-test go-check: go-tools go-lint go-test
openapi-lint: ; cd ./openapi/ && $(YARN) test openapi-lint: ; cd ./openapi/ && $(YARN) test

View File

@ -91,10 +91,22 @@ else
readonly out_flags='' readonly out_flags=''
fi fi
# Don't use cgo. Use modules. # Allow users to enable the race detector. Unfortunately, that means
export CGO_ENABLED='0' GO111MODULE='on' # that CGo must be enabled.
readonly race="${RACE:-0}"
if [ "$race" = '0' ]
then
readonly cgo_enabled='0'
readonly race_flags=''
else
readonly cgo_enabled='1'
readonly race_flags='--race'
fi
readonly build_flags="${BUILD_FLAGS:-$out_flags $par_flags\ export CGO_ENABLED="$cgo_enabled"
export GO111MODULE='on'
readonly build_flags="${BUILD_FLAGS:-$race_flags $out_flags $par_flags\
$v_flags $x_flags}" $v_flags $x_flags}"
# Don't use quotes with flag variables to get word splitting. # Don't use quotes with flag variables to get word splitting.