| #!/bin/bash |
| |
| set -e |
| |
| # cd to the directory containing this crate's Cargo.toml so that we don't need |
| # to pass --manifest-path to every `cargo` command. |
| cd "$(dirname "$0")" |
| |
| # This is a convenience script for running a broad swath of tests across |
| # features. We don't test the complete space, since the complete space is quite |
| # large. Hopefully once we migrate the test suite to better infrastructure |
| # (like regex-automata), we'll be able to test more of the space. |
| echo "===== DEFAULT FEATURES =====" |
| cargo test |
| |
| # no-std mode is annoyingly difficult to test. Currently, the integration tests |
| # don't run. So for now, we just test that library tests run. (There aren't |
| # many because `regex` is just a wrapper crate.) |
| cargo test --no-default-features --lib |
| |
| echo "===== DOC TESTS =====" |
| cargo test --doc |
| |
| features=( |
| "std" |
| "std unicode" |
| "std unicode-perl" |
| "std perf" |
| "std perf-cache" |
| "std perf-dfa" |
| "std perf-inline" |
| "std perf-literal" |
| "std perf-dfa-full" |
| "std perf-onepass" |
| "std perf-backtrack" |
| ) |
| for f in "${features[@]}"; do |
| echo "===== FEATURE: $f =====" |
| cargo test --test integration --no-default-features --features "$f" |
| done |
| |
| # And test the probably-forever-nightly-only 'pattern' feature... |
| if rustc --version | grep -q nightly; then |
| echo "===== FEATURE: std,pattern,unicode-perl =====" |
| cargo test --test integration --no-default-features --features std,pattern,unicode-perl |
| fi |