Files
wasmtime/cranelift/test-all.sh
Jakob Stoklund Olesen 479ff156c1 Add conditional branch encodings for RISC-V.
Not all br_icmp opcodes are present in the ISA. The missing ones can be
reached by commuting operands.

Don't attempt to encode EBB offsets yet. For now just emit an EBB
relocation for the branch instruction.
2017-04-03 15:16:25 -07:00

85 lines
2.4 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.
#
# Rustfmt is still immature enough that its formatting decisions can change
# between versions. This makes it difficult to enforce a certain style in a
# test script since not all developers will upgrade rustfmt at the same time.
# To work around this, we only verify formatting when a specific version of
# rustfmt is installed.
#
# This version should always be bumped to the newest version available.
RUSTFMT_VERSION="0.8.0"
if cargo install --list | grep -q "^rustfmt v$RUSTFMT_VERSION"; then
banner "Rust formatting"
$topdir/format-all.sh --write-mode=diff
elif [ -n "$TRAVIS" ]; then
# We're running under Travis CI.
# Install rustfmt, it will be cached for the next build.
echo "Installing rustfmt v$RUSTFMT_VERSION."
cargo install --force --vers="$RUSTFMT_VERSION" rustfmt
$topdir/format-all.sh --write-mode=diff
else
echo "Please install rustfmt v$RUSTFMT_VERSION to verify formatting."
echo "If a newer version of rustfmt is available, update this script."
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
banner "OK"