#!/usr/bin/env bash set -eu SCRIPT_DIR=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd) REPO_ROOT=$(CDPATH= cd -- "$SCRIPT_DIR/.." && pwd) GUARD_SCRIPT="$SCRIPT_DIR/go-test-with-agent-cli-guard.sh" usage() { echo "usage: $0 [--race]" >&2 } go_test_args=(test) case "$#" in 0) ;; 1) if [ "$1" != "--race" ]; then usage exit 2 fi go_test_args+=(-race) ;; *) usage exit 2 ;; esac cd "$REPO_ROOT/server" packages=$(go list ./...) regular_packages=() for package in $packages; do case "$package" in */pkg/agent|*/pkg/agent/*) ;; *) regular_packages+=("$package") ;; esac done "$GUARD_SCRIPT" -- go "${go_test_args[@]}" "${regular_packages[@]}" # Subprocess-backed agent tests have hard deadlines. Limit both package and # within-package parallelism so race builds do not starve their parent loops. "$GUARD_SCRIPT" -- go "${go_test_args[@]}" -p 2 -parallel 2 ./pkg/agent/...