Add -race flag to Makefile and integration tests; fix data race in CreateTailscaleNodesInUser

This commit is contained in:
Dongjun Na 2024-07-30 22:27:12 +09:00
parent 06f07053eb
commit fd3968882d
3 changed files with 7 additions and 3 deletions

View file

@ -101,7 +101,7 @@ jobs:
--volume $PWD/control_logs:/tmp/control \ --volume $PWD/control_logs:/tmp/control \
--env HEADSCALE_INTEGRATION_POSTGRES=${{env.USE_POSTGRES}} \ --env HEADSCALE_INTEGRATION_POSTGRES=${{env.USE_POSTGRES}} \
golang:1 \ golang:1 \
go run gotest.tools/gotestsum@latest -- ./... \ go run gotest.tools/gotestsum@latest -- -race ./... \
-failfast \ -failfast \
-timeout 120m \ -timeout 120m \
-parallel 1 \ -parallel 1 \

View file

@ -22,7 +22,7 @@ build:
dev: lint test build dev: lint test build
test: test:
gotestsum -- -short -coverprofile=coverage.out ./... gotestsum -- -short -race -coverprofile=coverage.out ./...
test_integration: test_integration:
docker run \ docker run \
@ -33,7 +33,7 @@ test_integration:
-v /var/run/docker.sock:/var/run/docker.sock \ -v /var/run/docker.sock:/var/run/docker.sock \
-v $$PWD/control_logs:/tmp/control \ -v $$PWD/control_logs:/tmp/control \
golang:1 \ golang:1 \
go run gotest.tools/gotestsum@latest -- -failfast ./... -timeout 120m -parallel 8 go run gotest.tools/gotestsum@latest -- -race -failfast ./... -timeout 120m -parallel 8
lint: lint:
golangci-lint run --fix --timeout 10m golangci-lint run --fix --timeout 10m

View file

@ -327,18 +327,22 @@ func (s *Scenario) CreateTailscaleNodesInUser(
cert := headscale.GetCert() cert := headscale.GetCert()
hostname := headscale.GetHostname() hostname := headscale.GetHostname()
s.mu.Lock()
opts = append(opts, opts = append(opts,
tsic.WithHeadscaleTLS(cert), tsic.WithHeadscaleTLS(cert),
tsic.WithHeadscaleName(hostname), tsic.WithHeadscaleName(hostname),
) )
s.mu.Unlock()
user.createWaitGroup.Go(func() error { user.createWaitGroup.Go(func() error {
s.mu.Lock()
tsClient, err := tsic.New( tsClient, err := tsic.New(
s.pool, s.pool,
version, version,
s.network, s.network,
opts..., opts...,
) )
s.mu.Unlock()
if err != nil { if err != nil {
return fmt.Errorf( return fmt.Errorf(
"failed to create tailscale (%s) node: %w", "failed to create tailscale (%s) node: %w",