Files
multica/scripts/test-go.sh

42 lines
930 B
Bash

#!/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/...