blob: d1975bc12b8f57790ed81b86a4b64a0e5f6b4622 [file] [log] [blame]
#!/usr/bin/env bash
# Copyright The Rusted Firmware-A Contributors.
#
# SPDX-License-Identifier: BSD-3-Clause
# Make sure `cargo vet` and `cargo clippy` are clean, and everything builds,
# before `git push`.
set -o errexit
set -o errtrace
set -o nounset
set -o pipefail
shopt -s extdebug
vet=$(cargo --list | awk '$1 == "vet" { print $1 }')
if [[ "$vet" != "vet" ]]; then
cargo install cargo-vet
fi
clippy=$(cargo --list | awk '$1 == "clippy" { print $1 }')
if [[ "$clippy" != "clippy" ]]; then
rustup component add clippy-preview
fi
must() {
if ! $@; then
echo -- "$@" > /dev/stderr
exit 1
fi
}
must cargo test
must make clippy-test
declare -a all_platforms=($(make --silent list_platforms))
for platform in "${all_platforms[@]}"; do
for debug in 1 0; do
IFS=" " read -a all_features <<< "$(make PLAT="$platform" --silent list_features)"
for features in "${all_features[@]}"; do
features=$(echo $features | sed "s/'//g")
echo "platform: $platform, debug: $debug, features: $features"
must make FEATURES=$features DEBUG="$debug" PLAT="$platform" build
done
done
must make PLAT="$platform" clippy
done
must cargo vet
must cargo fmt
cd secure_test_framework
must cargo fmt
cd -