echo "Integration tests for: ${INTEGRATION}"
cargo fmt -- --version
+# Checks that:
+#
+# * `cargo fmt --all` succeeds without any warnings or errors
+# * `cargo fmt --all -- --check` after formatting returns success
+# * `cargo test -all` still passes (formatting did not break the build)
function check_fmt {
- touch rustfmt.toml
- cargo fmt --all -v 2>&1 | tee rustfmt_output
+ cargo test --all
if [[ $? != 0 ]]; then
+ return 0
+ fi
+ touch rustfmt.toml
+ cargo fmt --all -v |& tee rustfmt_output
+ if [[ ${PIPESTATUS[0]} != 0 ]]; then
cat rustfmt_output
return 1
fi
if [[ $? != 0 ]]; then
return 1
fi
+ cargo fmt --all -- --check |& tee rustfmt_check_output
+ if [[ ${PIPESTATUS[0]} != 0 ]]; then
+ cat rustfmt_check_output
+ return 1
+ fi
cargo test --all
if [[ $? != 0 ]]; then
return $?
check_fmt
cd -
;;
- failure)
- git clone --depth=1 https://github.com/rust-lang-nursery/${INTEGRATION}.git
- cd ${INTEGRATION}/failure-1.X
- check_fmt
- cd -
- ;;
*)
git clone --depth=1 https://github.com/rust-lang-nursery/${INTEGRATION}.git
cd ${INTEGRATION}