Todd Willey | 2599b31 | 2011-11-04 10:31:37 -0400 | [diff] [blame] | 1 | #!/usr/bin/env bash |
| 2 | |
James E. Blair | c639ef0 | 2011-11-10 15:11:28 -0800 | [diff] [blame] | 3 | source ./stackrc |
Todd Willey | 2599b31 | 2011-11-04 10:31:37 -0400 | [diff] [blame] | 4 | # Run everything in the exercises/ directory that isn't explicitly disabled |
| 5 | |
| 6 | # comma separated list of script basenames to skip |
| 7 | # to refrain from exercising euca.sh use SKIP_EXERCISES=euca |
| 8 | SKIP_EXERCISES=${SKIP_EXERCISES:-""} |
| 9 | |
Todd Willey | 9e9132d | 2011-11-04 12:09:54 -0400 | [diff] [blame] | 10 | # Locate the scripts we should run |
Todd Willey | 2599b31 | 2011-11-04 10:31:37 -0400 | [diff] [blame] | 11 | EXERCISE_DIR=$(dirname "$0")/exercises |
Todd Willey | 0367cf1 | 2011-11-05 10:46:56 -0400 | [diff] [blame] | 12 | basenames=$(for b in `ls $EXERCISE_DIR/*.sh`; do basename $b .sh; done) |
Todd Willey | 2599b31 | 2011-11-04 10:31:37 -0400 | [diff] [blame] | 13 | |
Todd Willey | 9e9132d | 2011-11-04 12:09:54 -0400 | [diff] [blame] | 14 | # Track the state of each script |
| 15 | passes="" |
| 16 | failures="" |
| 17 | skips="" |
| 18 | |
| 19 | # Loop over each possible script (by basename) |
Todd Willey | 0367cf1 | 2011-11-05 10:46:56 -0400 | [diff] [blame] | 20 | for script in $basenames; do |
Todd Willey | 2599b31 | 2011-11-04 10:31:37 -0400 | [diff] [blame] | 21 | if [[ "$SKIP_EXERCISES" =~ $script ]] ; then |
Todd Willey | 9e9132d | 2011-11-04 12:09:54 -0400 | [diff] [blame] | 22 | skips="$skips $script" |
Todd Willey | 2599b31 | 2011-11-04 10:31:37 -0400 | [diff] [blame] | 23 | else |
Todd Willey | 9e9132d | 2011-11-04 12:09:54 -0400 | [diff] [blame] | 24 | echo ========================= |
Todd Willey | 2599b31 | 2011-11-04 10:31:37 -0400 | [diff] [blame] | 25 | echo Running $script |
Todd Willey | 9e9132d | 2011-11-04 12:09:54 -0400 | [diff] [blame] | 26 | echo ========================= |
| 27 | $EXERCISE_DIR/$script.sh |
Todd Willey | 2599b31 | 2011-11-04 10:31:37 -0400 | [diff] [blame] | 28 | if [[ $? -ne 0 ]] ; then |
Todd Willey | 9e9132d | 2011-11-04 12:09:54 -0400 | [diff] [blame] | 29 | failures="$failures $script" |
Todd Willey | 2599b31 | 2011-11-04 10:31:37 -0400 | [diff] [blame] | 30 | else |
Todd Willey | 9e9132d | 2011-11-04 12:09:54 -0400 | [diff] [blame] | 31 | passes="$passes $script" |
Todd Willey | 2599b31 | 2011-11-04 10:31:37 -0400 | [diff] [blame] | 32 | fi |
| 33 | fi |
| 34 | done |
Todd Willey | 9e9132d | 2011-11-04 12:09:54 -0400 | [diff] [blame] | 35 | |
| 36 | # output status of exercise run |
| 37 | echo ========================= |
| 38 | echo ========================= |
Todd Willey | 0367cf1 | 2011-11-05 10:46:56 -0400 | [diff] [blame] | 39 | for script in $skips; do |
Todd Willey | 9e9132d | 2011-11-04 12:09:54 -0400 | [diff] [blame] | 40 | echo SKIP $script |
| 41 | done |
Todd Willey | 0367cf1 | 2011-11-05 10:46:56 -0400 | [diff] [blame] | 42 | for script in $passes; do |
Todd Willey | 9e9132d | 2011-11-04 12:09:54 -0400 | [diff] [blame] | 43 | echo PASS $script |
| 44 | done |
Todd Willey | 0367cf1 | 2011-11-05 10:46:56 -0400 | [diff] [blame] | 45 | for script in $failures; do |
Todd Willey | 9e9132d | 2011-11-04 12:09:54 -0400 | [diff] [blame] | 46 | echo FAILED $script |
| 47 | done |
James E. Blair | c639ef0 | 2011-11-10 15:11:28 -0800 | [diff] [blame] | 48 | |
| 49 | if [ -n "$failures" ] ; then |
| 50 | exit 1 |
| 51 | fi |