2016-03-08 07:13:49 +08:00
|
|
|
# `script` phase: you usually build, test and generate docs in this phase
|
|
|
|
|
|
|
|
set -ex
|
|
|
|
|
2016-04-14 05:48:57 +08:00
|
|
|
# NOTE Workaround for rust-lang/rust#31907 - disable doc tests when cross compiling
|
|
|
|
# This has been fixed in the nightly channel but it would take a while to reach the other channels
|
|
|
|
disable_cross_doctests() {
|
|
|
|
local host
|
|
|
|
case "$TRAVIS_OS_NAME" in
|
|
|
|
linux)
|
|
|
|
host=x86_64-unknown-linux-gnu
|
|
|
|
;;
|
|
|
|
osx)
|
|
|
|
host=x86_64-apple-darwin
|
|
|
|
;;
|
|
|
|
esac
|
2016-03-08 21:57:35 +08:00
|
|
|
|
2016-04-14 05:48:57 +08:00
|
|
|
if [ "$host" != "$TARGET" ] && [ "$CHANNEL" != "nightly" ]; then
|
|
|
|
if [ "$TRAVIS_OS_NAME" = "osx" ]; then
|
|
|
|
brew install gnu-sed --default-names
|
|
|
|
fi
|
|
|
|
|
|
|
|
find src -name '*.rs' -type f | xargs sed -i -e 's:\(//.\s*```\):\1 ignore,:g'
|
2016-03-08 21:57:35 +08:00
|
|
|
fi
|
2016-04-14 05:48:57 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
run_test_suite() {
|
2016-05-09 07:26:33 +08:00
|
|
|
# Extra test without default features to avoid bitrot. We only test on a single target (but with
|
|
|
|
# all the channels) to avoid significantly increasing the build times
|
|
|
|
if [ $TARGET = x86_64-unknown-linux-gnu ]; then
|
|
|
|
cargo build --target $TARGET --no-default-features --verbose
|
|
|
|
cargo test --target $TARGET --no-default-features --verbose
|
|
|
|
cargo clean
|
|
|
|
fi
|
|
|
|
|
2016-04-14 05:48:57 +08:00
|
|
|
cargo build --target $TARGET --verbose
|
|
|
|
cargo test --target $TARGET --verbose
|
|
|
|
}
|
2016-03-08 21:57:35 +08:00
|
|
|
|
2016-04-14 05:48:57 +08:00
|
|
|
main() {
|
|
|
|
disable_cross_doctests
|
|
|
|
run_test_suite
|
|
|
|
}
|
2016-03-08 21:57:35 +08:00
|
|
|
|
2016-04-14 05:48:57 +08:00
|
|
|
main
|