1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- #!/bin/bash
- set -e
- CRATE=num-traits
- MSRV=1.31
- get_rust_version() {
- local array=($(rustc --version));
- echo "${array[1]}";
- return 0;
- }
- RUST_VERSION=$(get_rust_version)
- check_version() {
- IFS=. read -ra rust <<< "$RUST_VERSION"
- IFS=. read -ra want <<< "$1"
- [[ "${rust[0]}" -gt "${want[0]}" ||
- ( "${rust[0]}" -eq "${want[0]}" &&
- "${rust[1]}" -ge "${want[1]}" )
- ]]
- }
- echo "Testing $CRATE on rustc $RUST_VERSION"
- if ! check_version $MSRV ; then
- echo "The minimum for $CRATE is rustc $MSRV"
- exit 1
- fi
- FEATURES=(libm)
- echo "Testing supported features: ${FEATURES[*]}"
- cargo generate-lockfile
- # libm 0.2.6 started using {float}::EPSILON
- check_version 1.43 || cargo update -p libm --precise 0.2.5
- set -x
- # test the default
- cargo build
- cargo test
- # test `no_std`
- cargo build --no-default-features
- cargo test --no-default-features
- # test each isolated feature, with and without std
- for feature in ${FEATURES[*]}; do
- cargo build --no-default-features --features="std $feature"
- cargo test --no-default-features --features="std $feature"
- cargo build --no-default-features --features="$feature"
- cargo test --no-default-features --features="$feature"
- done
- # test all supported features, with and without std
- cargo build --features="std ${FEATURES[*]}"
- cargo test --features="std ${FEATURES[*]}"
- cargo build --features="${FEATURES[*]}"
- cargo test --features="${FEATURES[*]}"
|