#!/usr/bin/env bash # # run_tests # export PATH="$PATH:$( cd "$(dirname "${BASH_SOURCE[0]}")" ; pwd -P )" export PATH="$PATH:./buildroot/bin" # exit on first failure set -e exec_test () { printf "\n\033[0;32m[Test $2] \033[0m$3...\n" if platformio run --project-dir $1 -e $2 --silent; then printf "\033[0;32mPassed\033[0m\n" return 0 else git reset --hard HEAD printf "\033[0;31mFailed!\033[0m\n" return 1 fi } export -f exec_test printf "Running \033[0;32m$2\033[0m Tests\n" if [[ $2 = "ALL" ]]; then dir_list=("$(dirname "${BASH_SOURCE[0]}")"/*) declare -a tests=(${dir_list[@]/*run_tests/}) for f in "${tests[@]}"; do testenv=$(basename $f | cut -d"-" -f1) printf "Running \033[0;32m$f\033[0m Tests\n" exec_test $1 "$testenv --target clean" "Setup Build Environment" $f $1 $testenv git reset --hard HEAD done else exec_test $1 "$2 --target clean" "Setup Build Environment" $2-tests $1 $2 git reset --hard HEAD fi printf "\033[0;32mAll tests completed successfully\033[0m\n"