set -ex
export RUST_TEST_THREADS=1
export RUST_BACKTRACE=1
export RUST_TEST_NOCAPTURE=1
export OPT="--target=$TARGET"
export OPT_RELEASE="--release ${OPT}"
export OPT_ND="--no-default-features ${OPT}"
export OPT_RELEASE_ND="--no-default-features ${OPT_RELEASE}"
export CARGO_CMD=cross
if [[ $TARGET = *"windows"* ]] || [[ $TARGET == "x86_64-unknown-linux-gnu" ]] || [[ $TARGET = *"apple"* ]]; then
export CARGO_CMD=cargo
fi
if [[ $CARGO_CMD == "cross" ]]; then
cargo install cross
fi
if [[ $TARGET = *"ios"* ]]; then
export RUSTFLAGS=-Clink-arg=-mios-simulator-version-min=7.0
rustc ./ci/deploy_and_run_on_ios_simulator.rs -o $HOME/runtest
export CARGO_TARGET_X86_64_APPLE_IOS_RUNNER=$HOME/runtest
export CARGO_TARGET_I386_APPLE_IOS_RUNNER=$HOME/runtest
fi
if [[ $CARGO_CMD == "cargo" ]]; then
rustup target add $TARGET || true
fi
if [[ $NORUN == "1" ]]; then
export CARGO_SUBCMD="build"
else
export CARGO_SUBCMD="test"
export OPT="${OPT} "
export OPT_RELEASE="${OPT_RELEASE} "
export OPT_ND="${OPT_ND} "
export OPT_RELEASE_ND="${OPT_RELEASE_ND} "
fi
if [[ $NOSTD != "1" ]]; then $CARGO_CMD $CARGO_SUBCMD $OPT
$CARGO_CMD $CARGO_SUBCMD $OPT_RELEASE
fi
$CARGO_CMD $CARGO_SUBCMD $OPT_ND
! find target/ -name *.rlib -exec nm {} \; | grep "std"
$CARGO_CMD clean
$CARGO_CMD $CARGO_SUBCMD $OPT_RELEASE_ND
! find target/ -name *.rlib -exec nm {} \; | grep "std"
if [[ $NOSTD != "1" ]]; then $CARGO_CMD $CARGO_SUBCMD --features "use_std" $OPT_ND
$CARGO_CMD $CARGO_SUBCMD --features "use_std" $OPT_RELEASE_ND
fi
if [[ $TRAVIS_RUST_VERSION == "nightly" ]]; then
$CARGO_CMD $CARGO_SUBCMD --features "unstable" $OPT_ND
$CARGO_CMD $CARGO_SUBCMD --features "unstable" $OPT_RELEASE_ND
if [[ $NOSTD != "1" ]]; then
$CARGO_CMD $CARGO_SUBCMD --features "use_std,unstable" $OPT_ND
$CARGO_CMD $CARGO_SUBCMD --features "use_std,unstable" $OPT_RELEASE_ND
if [[ $SYSV == "1" ]]; then
$CARGO_CMD $CARGO_SUBCMD --features "use_std,unstable,unix_sysv" $OPT
$CARGO_CMD $CARGO_SUBCMD --features "use_std,unstable,unix_sysv" $OPT_RELEASE_ND
fi
fi
fi
if [[ $SYSV == "1" ]]; then
$CARGO_CMD $CARGO_SUBCMD --features "unix_sysv" $OPT_
$CARGO_CMD $CARGO_SUBCMD --features "unix_sysv" $OPT_RELEASE_ND
if [[ $NOSTD != "1" ]]; then $CARGO_CMD $CARGO_SUBCMD --features "use_std,unix_sysv" $OPT_ND
$CARGO_CMD $CARGO_SUBCMD --features "use_std,unix_sysv" $OPT_RELEASE_ND
fi
fi
if [[ $CARGO_CMD == "cargo" ]] && [[ $TARGET != *"ios"* ]]; then
cargo doc
if [[ $TRAVIS_RUST_VERSION == "nightly" ]]; then
rustup component add clippy-preview
cargo clippy -- -D clippy-pedantic
fi
fi