#!/usr/bin/env bash set -euo pipefail usage() { cat <<'EOF' Usage: ./server-rs/scripts/test.sh SERVER_RS_TEST_CRATE=api-server ./server-rs/scripts/test.sh Notes: 1. Run cargo test for the server-rs workspace by default 2. Use SERVER_RS_TEST_CRATE to target one workspace crate only EOF } if [[ "${1:-}" == "-h" || "${1:-}" == "--help" ]]; then usage exit 0 fi SCRIPT_DIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd)" SERVER_RS_DIR="$(cd -- "${SCRIPT_DIR}/.." && pwd)" MANIFEST_PATH="${SERVER_RS_DIR}/Cargo.toml" if [[ ! -f "${MANIFEST_PATH}" ]]; then echo "[server-rs:test] Missing ${MANIFEST_PATH}, cannot start test script." >&2 exit 1 fi echo "[server-rs:test] working dir: ${SERVER_RS_DIR}" cd "${SERVER_RS_DIR}" TARGET_CRATE="${SERVER_RS_TEST_CRATE:-${SERVER_RS_TEST_PACKAGE:-}}" if [[ -n "${TARGET_CRATE}" ]]; then echo "[server-rs:test] target crate: ${TARGET_CRATE}" cargo test -p "${TARGET_CRATE}" --manifest-path "${MANIFEST_PATH}" else cargo test --manifest-path "${MANIFEST_PATH}" fi