#!/bin/sh set -e export RUSTFLAGS="-D warnings" export RUSTDOCFLAGS="-D warnings" 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 bench cargo doc