From 30f7ed1019841ef177bdeceebe62ce927f05c81a Mon Sep 17 00:00:00 2001 From: Palmer Dabbelt Date: Thu, 8 Jun 2017 09:58:00 -0700 Subject: Add a simple regression script --- regression.bash | 71 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100755 regression.bash (limited to 'regression.bash') diff --git a/regression.bash b/regression.bash new file mode 100755 index 0000000..da8bf10 --- /dev/null +++ b/regression.bash @@ -0,0 +1,71 @@ +#!/bin/bash + +unset board +unset manual +while [[ "$1" != "" ]] +do + case "$1" in + "--board") + board="$2" + shift + shift + ;; + "--manual") + manual="true" + shift + ;; + esac +done + +if [[ "$board" == "" ]] +then + echo "Specify a --board to test" >&2 + exit 1 +fi + +if [[ "$manual" == "true" ]] +then + echo "You're running in manual test mode. Please connect a $board to continue..." + read -p "Press ENTER to continue" +fi + +set -e + +find software -mindepth 1 -maxdepth 2 -type d | cut -d/ -f2 | while read program +do + # Allow examples to specify the boards on which they won't run. + if test -f software/$program/.unsupported-boards + then + if grep -q $board software/$program/.unsupported-boards + then + continue + fi + fi + + # Build the example. + make BOARD=$board PROGRAM=$program software + + # We require user interaction in order to verify the tests succeed. If the + # user hasn't specified the manual flag then don't bother running the tests. + if [[ "$manual" == "true" ]] + then + echo "We're about to run $program on $board, waiting 10 seconds" + sleep 1s + + echo "flashing $program" + make BOARD=$board PROGRAM=$program upload + + echo "$program has been flashed to your $board, please test it. GDB will open in 2 seconds" + urxvt -hold -e make BOARD=$board PROGRAM=$program run_openocd & + sleep 2s + urxvt -hold -e make BOARD=$board PROGRAM=$program run_gdb + + echo "Close the running OpenOCD" + wait + fi +done + +if [[ "$manual" != "true" ]] +then + echo "You haven't actually verified the tests run, please don't release!" >&2 +fi -- cgit v1.2.1-18-gbd029