language: rust cache: cargo rust: - nightly os: - linux - osx before_script: # mac os weirdness (https://github.com/travis-ci/travis-ci/issues/6307) - curl -sSL https://rvm.io/mpapis.asc | gpg --import - - rvm get stable # in a cronjob, use latest (not pinned) nightly - if [ "$TRAVIS_EVENT_TYPE" = cron ]; then rustup override set nightly; fi # prepare - export PATH=$HOME/.local/bin:$PATH - rustup target add i686-unknown-linux-gnu - rustup target add i686-pc-windows-gnu - rustup target add i686-pc-windows-msvc - rustup component add rust-src - cargo install xargo || echo "skipping xargo install" script: - set -e - | # Test and install plain miri cargo build --release --all-features && cargo test --release --all-features && cargo install --all-features --force - | # test that the rustc_tests binary compiles cd rustc_tests && cargo build --release && cd .. - | # get ourselves a MIR-full libstd xargo/build.sh && export MIRI_SYSROOT=~/.xargo/HOST - | # Test `cargo miri` cd cargo-miri-test && if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then cargo miri -q -- -Zmiri-start-fn else cargo miri -q -- -Zmiri-start-fn >stdout.real 2>stderr.real && cat stdout.real stderr.real && # Test `cargo miri` output. Not on mac because output redirecting doesn't # work. There is no error. It just stops CI. diff -u stdout.ref stdout.real && diff -u stderr.ref stderr.real fi && # Test `cargo miri test` cargo miri test && cd .. - | # and run all tests with full mir cargo test --release --all-features notifications: email: on_success: never branches: only: - master env: global: - RUST_TEST_NOCAPTURE=1 - TRAVIS_CARGO_NIGHTLY_FEATURE=""