Try to run miri in CI

This commit is contained in:
Thom Chiovoloni 2020-01-10 11:50:56 -08:00
parent da1ba1ec80
commit ff3c0c7a50
2 changed files with 63 additions and 39 deletions

View File

@ -48,6 +48,8 @@ matrix:
- { os: osx, rust: 1.34.0, env: TARGET=i386-apple-ios }
- { os: osx, rust: 1.34.0, env: TARGET=x86_64-apple-ios }
- { os: linux, rust: nightly, env: RUN_MIRI=1 }
script:
- pushd scripts
- ./travis.sh

View File

@ -2,18 +2,39 @@
set -e
rustup component add clippy
cargo clippy
if [[ "$RUN_MIRI" != "" ]]; then
if [[ "$TARGET" != "" ]]; then rustup target install $TARGET; fi
cargo clean
if [[ "$TARGET" == "wasm32-"* && "$TARGET" != "wasm32-wasi" ]]; then
# Install and run the latest version of nightly where miri built successfully.
# Taken from: https://github.com/rust-lang/miri#running-miri-on-ci
MIRI_NIGHTLY=nightly-$(curl -s https://rust-lang.github.io/rustup-components-history/x86_64-unknown-linux-gnu/miri)
echo "Installing latest nightly with Miri: $MIRI_NIGHTLY"
rustup set profile minimal
rustup default "$MIRI_NIGHTLY"
rustup component add miri
cargo miri setup
cargo miri test --verbose
cargo miri test --verbose --no-default-features
cargo miri test --verbose --all-features
else
rustup component add clippy
cargo clippy
if [[ "$TARGET" != "" ]]; then rustup target install $TARGET; fi
if [[ "$TARGET" == "wasm32-"* && "$TARGET" != "wasm32-wasi" ]]; then
cargo-web --version || cargo install cargo-web
cargo web test --no-default-features $FLAGS --target=$TARGET
cargo web test $FLAGS --target=$TARGET
#cargo web test --all-features $FLAGS --target=$TARGET
elif [[ "$TARGET" == *"-linux-android"* ]]; then
elif [[ "$TARGET" == *"-linux-android"* ]]; then
export PATH=/usr/local/android-sdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin:$PATH
pushd linux-android
cargo build --no-default-features --target=$TARGET $FLAGS
@ -22,7 +43,7 @@ elif [[ "$TARGET" == *"-linux-android"* ]]; then
# Don't test, can't run android emulators successfully on travis currently
popd
elif [[ "$TARGET" == *"-apple-ios" || "$TARGET" == "wasm32-wasi" ]]; then
elif [[ "$TARGET" == *"-apple-ios" || "$TARGET" == "wasm32-wasi" ]]; then
cargo build --no-default-features --target=$TARGET $FLAGS
cargo build --target=$TARGET $FLAGS
#cargo build --all-features --target=$TARGET $FLAGS
@ -30,7 +51,7 @@ elif [[ "$TARGET" == *"-apple-ios" || "$TARGET" == "wasm32-wasi" ]]; then
# iOS simulator setup/teardown is complicated
# cargo-web doesn't support wasm32-wasi yet, nor can wasm-pack test specify a target
elif [[ "$TARGET" == *"-unknown-linux-gnueabihf" ]]; then
elif [[ "$TARGET" == *"-unknown-linux-gnueabihf" ]]; then
#sudo apt-get update
#sudo apt-get install -y gcc-arm-linux-gnueabihf g++-arm-linux-gnueabihf
pushd generic-cross
@ -40,16 +61,17 @@ elif [[ "$TARGET" == *"-unknown-linux-gnueabihf" ]]; then
# Don't test
popd
elif [[ "$TARGET" != "" ]]; then
elif [[ "$TARGET" != "" ]]; then
pushd generic-cross
cargo test --no-default-features --target=$TARGET $FLAGS
cargo test --target=$TARGET $FLAGS
#cargo test --all-features --target=$TARGET $FLAGS
popd
else
else
# Push nothing, target host CPU architecture
cargo test --no-default-features $FLAGS
cargo test $FLAGS
#cargo test --all-features $FLAGS
fi
fi