Skip to content

Commit 393f91c

Browse files
committed
fix: add test parallelism limit to make test
Signed-off-by: Spike Curtis <spike@coder.com>
1 parent 338e8b5 commit 393f91c

File tree

2 files changed

+31
-15
lines changed

2 files changed

+31
-15
lines changed

.github/workflows/ci.yaml

Lines changed: 10 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -454,30 +454,28 @@ jobs:
454454
# running in parallel, and dbtestutil.NewDB starts to take more than
455455
# 10s to complete sometimes causing test timeouts. With 16x8=128 tests
456456
# Postgres tends not to choke.
457-
NUM_PARALLEL_PACKAGES=8
458-
NUM_PARALLEL_TESTS=16
457+
export TEST_NUM_PARALLEL_PACKAGES=8
458+
export TEST_NUM_PARALLEL_TESTS=16
459459
# Only the CLI and Agent are officially supported on Windows and the rest are too flaky
460-
PACKAGES="./cli/... ./enterprise/cli/... ./agent/..."
460+
export TEST_PACKAGES="./cli/... ./enterprise/cli/... ./agent/..."
461461
elif [ "${{ runner.os }}" == "macOS" ]; then
462462
# Our macOS runners have 8 cores. We set NUM_PARALLEL_TESTS to 16
463463
# because the tests complete faster and Postgres doesn't choke. It seems
464464
# that macOS's tmpfs is faster than the one on Windows.
465-
NUM_PARALLEL_PACKAGES=8
466-
NUM_PARALLEL_TESTS=16
465+
export TEST_NUM_PARALLEL_PACKAGES=8
466+
export TEST_NUM_PARALLEL_TESTS=16
467467
# Only the CLI and Agent are officially supported on macOS and the rest are too flaky
468-
PACKAGES="./cli/... ./enterprise/cli/... ./agent/..."
468+
export TEST_PACKAGES="./cli/... ./enterprise/cli/... ./agent/..."
469469
elif [ "${{ runner.os }}" == "Linux" ]; then
470470
# Our Linux runners have 8 cores.
471-
NUM_PARALLEL_PACKAGES=8
472-
NUM_PARALLEL_TESTS=8
473-
PACKAGES="./..."
471+
export TEST_NUM_PARALLEL_PACKAGES=8
472+
export TEST_NUM_PARALLEL_TESTS=8
474473
fi
475474
476475
# by default, run tests with cache
477-
TESTCOUNT=""
478476
if [ "${{ github.ref }}" == "refs/heads/main" ]; then
479477
# on main, run tests without cache
480-
TESTCOUNT="-count=1"
478+
export TEST_COUNT="1"
481479
fi
482480
483481
mkdir -p "$RUNNER_TEMP/sym"
@@ -487,8 +485,7 @@ jobs:
487485
# invalidated. See scripts/normalize_path.sh for more details.
488486
normalize_path_with_symlinks "$RUNNER_TEMP/sym" "$(dirname $(which terraform))"
489487
490-
gotestsum --format standard-quiet --packages "$PACKAGES" \
491-
-- -timeout=20m -v -p $NUM_PARALLEL_PACKAGES -parallel=$NUM_PARALLEL_TESTS $TESTCOUNT
488+
make test
492489
493490
- name: Upload failed test db dumps
494491
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2

Makefile

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -942,12 +942,31 @@ else
942942
GOTESTSUM_RETRY_FLAGS :=
943943
endif
944944

945+
# default to 8x8 parallelism to avoid overwhelming our workspaces. Hopefully we can remove these defaults
946+
# when we get our test suite's resource utilization under control.
947+
GOTEST_FLAGS := -v -p $(or $(TEST_NUM_PARALLEL_PACKAGES),"8") -parallel=$(or $(TEST_NUM_PARALLEL_TESTS),"8")
948+
949+
# The most common use is to set TEST_COUNT=1 to avoid Go's test cache.
950+
ifdef TEST_COUNT
951+
GOTEST_FLAGS += -count=$(TEST_COUNT)
952+
endif
953+
954+
ifdef TEST_SHORT
955+
GOTEST_FLAGS += -short
956+
endif
957+
958+
ifdef RUN
959+
GOTEST_FLAGS += -run $(RUN)
960+
endif
961+
962+
TEST_PACKAGES ?= ./...
963+
945964
test:
946-
$(GIT_FLAGS) gotestsum --format standard-quiet $(GOTESTSUM_RETRY_FLAGS) --packages="./..." -- -v -short -count=1 $(if $(RUN),-run $(RUN))
965+
$(GIT_FLAGS) gotestsum --format standard-quiet $(GOTESTSUM_RETRY_FLAGS) --packages="$(TEST_PACKAGES)" -- $(GOTEST_FLAGS)
947966
.PHONY: test
948967

949968
test-cli:
950-
$(GIT_FLAGS) gotestsum --format standard-quiet $(GOTESTSUM_RETRY_FLAGS) --packages="./cli/..." -- -v -short -count=1
969+
$(MAKE) test TEST_PACKAGES="./cli..."
951970
.PHONY: test-cli
952971

953972
# sqlc-cloud-is-setup will fail if no SQLc auth token is set. Use this as a

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy