set -e
export RUSTFLAGS="-D warnings"
export RUSTDOCFLAGS="-D warnings"
-cargo +1.34.0 test
-cargo +1.34.0 test --release
+run_tests() {
+ for release in "" "--release"; do
+ cargo $1 test $release --no-default-features # Not very useful without std or hashbrown, but hey, it works! (Doctests emit an error about needing a global allocator, but it exits zero anyway. ¯\_(ツ)_/¯)
+ cargo $1 test $release --no-default-features --features hashbrown
+ cargo $1 test $release
+ cargo $1 test $release --all-features
+ done
+}
+
+# We’d like to test with the oldest declared-supported version of *all* our dependencies.
+# That means Rust 1.36.0 + hashbrown 0.1.1.
+# Hence the different lock file.
+# (Also Rust 1.36.0 can’t read the latest lock file format.)
+cp test-oldest-Cargo.lock Cargo.lock
+run_tests +1.36.0
+rm Cargo.lock
+run_tests
+
cargo clippy
-cargo test
-cargo test --release
+cargo bench
cargo doc