| #!/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 - |