43 lines
1.0 KiB
Bash
43 lines
1.0 KiB
Bash
#!/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
|