38 lines
787 B
Bash
Executable File
38 lines
787 B
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
REPO_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
|
LAB_DIR="${REPO_ROOT}/labs/blockchain"
|
|
FOUNDRY_IMAGE="${FOUNDRY_IMAGE:-ghcr.io/foundry-rs/foundry:latest}"
|
|
|
|
usage() {
|
|
cat <<'EOF'
|
|
Usage: ./jeannie blockchain-test [forge args...]
|
|
|
|
Run Foundry tests for labs/blockchain. Extra arguments are passed to forge test.
|
|
EOF
|
|
}
|
|
|
|
case "${1:-}" in
|
|
-h|--help|help)
|
|
usage
|
|
exit 0
|
|
;;
|
|
esac
|
|
|
|
if command -v forge >/dev/null 2>&1; then
|
|
cd "$LAB_DIR"
|
|
exec forge test "$@"
|
|
fi
|
|
|
|
if ! command -v docker >/dev/null 2>&1; then
|
|
echo "forge or docker is required for blockchain-test." >&2
|
|
exit 1
|
|
fi
|
|
|
|
exec docker run --rm \
|
|
-v "${LAB_DIR}:/workspace" \
|
|
-w /workspace \
|
|
"$FOUNDRY_IMAGE" \
|
|
forge test "$@"
|