Files
wasmtime/test-all.sh
Jakob Stoklund Olesen a29ea664e2 Install rustfmt as a separate Travis install step.
- Add a check-rustfmt.sh script which checks if the right version of
  rustfmt is installed.
- Run check-rustfmt.sh --install as an install step under travis_wait.

This is to work around the issue where cargo takes forever to build
rustfmt, causing Travis to terminate the build because it hasn't
produced any output for 10 minutes.
2017-04-27 13:55:13 -07:00

66 lines
1.5 KiB
Bash
Executable File

#!/bin/bash
# This is the top-level test script:
#
# - Build documentation for Rust code in 'src/tools/target/doc'.
# - Run unit tests for all Rust crates.
# - Make a debug build of all crates.
# - Make a release build of cton-util.
# - Run file-level tests with the release build of cton-util.
#
# All tests run by this script should be passing at all times.
# Exit immediately on errors.
set -e
# Repository top-level directory.
cd $(dirname "$0")
topdir=$(pwd)
function banner() {
echo "====== $@ ======"
}
# Run rustfmt if we have it.
if $topdir/check-rustfmt.sh; then
banner "Rust formatting"
$topdir/format-all.sh --write-mode=diff
fi
# Check if any Python files have changed since we last checked them.
tsfile=$topdir/target/meta-checked
if [ -f $tsfile ]; then
needcheck=$(find $topdir/lib/cretonne/meta -name '*.py' -newer $tsfile)
else
needcheck=yes
fi
if [ -n "$needcheck" ]; then
banner $(python --version 2>&1)
$topdir/lib/cretonne/meta/check.sh
touch $tsfile || echo no target directory
fi
PKGS="cretonne cretonne-reader cretonne-tools filecheck"
cd "$topdir"
for PKG in $PKGS
do
banner "Rust $PKG unit tests"
cargo test -p $PKG
done
# Build cton-util for parser testing.
cd "$topdir"
banner "Rust documentation"
echo "open $topdir/target/doc/cretonne/index.html"
cargo doc
banner "Rust release build"
cargo build --release
export CTONUTIL="$topdir/target/release/cton-util"
cd "$topdir"
banner "File tests"
"$CTONUTIL" test filetests docs
banner "OK"