| #!/bin/bash |
| |
| # A script to run expandtest. |
| # |
| # Usage: |
| # bash scripts/expandtest.sh |
| # |
| # Note: This script requires nightly Rust, rustfmt, and cargo-expand |
| |
| set -euo pipefail |
| |
| script_dir="$(cd "$(dirname "${0}")" && pwd)" |
| |
| if [[ "${1:-none}" == "+"* ]]; then |
| toolchain="${1}" |
| elif [[ "${CI:-false}" != "true" ]]; then |
| cargo +nightly -V >/dev/null || exit 1 |
| toolchain="+nightly" |
| fi |
| |
| if [[ "${toolchain:-+nightly}" != "+nightly"* ]] || ! rustfmt -V &>/dev/null || ! cargo expand -V &>/dev/null; then |
| echo "error: expandtest.sh requires nightly Rust, rustfmt, and cargo-expand" |
| exit 1 |
| fi |
| |
| if [[ "${CI:-false}" != "true" ]]; then |
| # First, check if the compile fails for another reason. |
| cargo ${toolchain} check --tests --manifest-path "${script_dir}"/../tests/expand/Cargo.toml |
| |
| # Next, remove the `*.expanded.rs` files to allow updating those files. |
| # Refs: https://docs.rs/macrotest/1/macrotest/#updating-expandedrs |
| rm -rf "${script_dir}"/../tests/expand/tests/expand/*.expanded.rs |
| fi |
| |
| cargo ${toolchain:-} test --manifest-path "${script_dir}"/../tests/expand/Cargo.toml |