#!/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
