Todd Willey | 2599b31 | 2011-11-04 10:31:37 -0400 | [diff] [blame] | 1 | #!/usr/bin/env bash |
| 2 | |
Dean Troyer | 27e3269 | 2012-03-16 16:16:56 -0500 | [diff] [blame] | 3 | # **exercise.sh** |
| 4 | |
| 5 | # Keep track of the current devstack directory. |
| 6 | TOP_DIR=$(cd $(dirname "$0") && pwd) |
| 7 | |
Dean Troyer | 05530ca | 2012-07-06 15:09:10 -0500 | [diff] [blame] | 8 | # Import common functions |
| 9 | source $TOP_DIR/functions |
| 10 | |
Dean Troyer | 27e3269 | 2012-03-16 16:16:56 -0500 | [diff] [blame] | 11 | # Load local configuration |
| 12 | source $TOP_DIR/stackrc |
| 13 | |
Todd Willey | 2599b31 | 2011-11-04 10:31:37 -0400 | [diff] [blame] | 14 | # Run everything in the exercises/ directory that isn't explicitly disabled |
| 15 | |
| 16 | # comma separated list of script basenames to skip |
| 17 | # to refrain from exercising euca.sh use SKIP_EXERCISES=euca |
| 18 | SKIP_EXERCISES=${SKIP_EXERCISES:-""} |
| 19 | |
Todd Willey | 9e9132d | 2011-11-04 12:09:54 -0400 | [diff] [blame] | 20 | # Locate the scripts we should run |
Todd Willey | 2599b31 | 2011-11-04 10:31:37 -0400 | [diff] [blame] | 21 | EXERCISE_DIR=$(dirname "$0")/exercises |
Todd Willey | 0367cf1 | 2011-11-05 10:46:56 -0400 | [diff] [blame] | 22 | 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] | 23 | |
Todd Willey | 9e9132d | 2011-11-04 12:09:54 -0400 | [diff] [blame] | 24 | # Track the state of each script |
| 25 | passes="" |
| 26 | failures="" |
| 27 | skips="" |
| 28 | |
| 29 | # Loop over each possible script (by basename) |
Todd Willey | 0367cf1 | 2011-11-05 10:46:56 -0400 | [diff] [blame] | 30 | for script in $basenames; do |
Todd Willey | 2599b31 | 2011-11-04 10:31:37 -0400 | [diff] [blame] | 31 | if [[ "$SKIP_EXERCISES" =~ $script ]] ; then |
Todd Willey | 9e9132d | 2011-11-04 12:09:54 -0400 | [diff] [blame] | 32 | skips="$skips $script" |
Todd Willey | 2599b31 | 2011-11-04 10:31:37 -0400 | [diff] [blame] | 33 | else |
Dean Troyer | 27e3269 | 2012-03-16 16:16:56 -0500 | [diff] [blame] | 34 | echo "=====================================================================" |
Todd Willey | 2599b31 | 2011-11-04 10:31:37 -0400 | [diff] [blame] | 35 | echo Running $script |
Dean Troyer | 27e3269 | 2012-03-16 16:16:56 -0500 | [diff] [blame] | 36 | echo "=====================================================================" |
Todd Willey | 9e9132d | 2011-11-04 12:09:54 -0400 | [diff] [blame] | 37 | $EXERCISE_DIR/$script.sh |
Chmouel Boudjnah | 408b009 | 2012-03-15 23:21:55 +0000 | [diff] [blame] | 38 | exitcode=$? |
| 39 | if [[ $exitcode == 55 ]]; then |
| 40 | skips="$skips $script" |
| 41 | elif [[ $exitcode -ne 0 ]] ; then |
Todd Willey | 9e9132d | 2011-11-04 12:09:54 -0400 | [diff] [blame] | 42 | failures="$failures $script" |
Todd Willey | 2599b31 | 2011-11-04 10:31:37 -0400 | [diff] [blame] | 43 | else |
Todd Willey | 9e9132d | 2011-11-04 12:09:54 -0400 | [diff] [blame] | 44 | passes="$passes $script" |
Todd Willey | 2599b31 | 2011-11-04 10:31:37 -0400 | [diff] [blame] | 45 | fi |
| 46 | fi |
| 47 | done |
Todd Willey | 9e9132d | 2011-11-04 12:09:54 -0400 | [diff] [blame] | 48 | |
| 49 | # output status of exercise run |
Dean Troyer | 27e3269 | 2012-03-16 16:16:56 -0500 | [diff] [blame] | 50 | echo "=====================================================================" |
Todd Willey | 0367cf1 | 2011-11-05 10:46:56 -0400 | [diff] [blame] | 51 | for script in $skips; do |
Todd Willey | 9e9132d | 2011-11-04 12:09:54 -0400 | [diff] [blame] | 52 | echo SKIP $script |
| 53 | done |
Todd Willey | 0367cf1 | 2011-11-05 10:46:56 -0400 | [diff] [blame] | 54 | for script in $passes; do |
Todd Willey | 9e9132d | 2011-11-04 12:09:54 -0400 | [diff] [blame] | 55 | echo PASS $script |
| 56 | done |
Todd Willey | 0367cf1 | 2011-11-05 10:46:56 -0400 | [diff] [blame] | 57 | for script in $failures; do |
Todd Willey | 9e9132d | 2011-11-04 12:09:54 -0400 | [diff] [blame] | 58 | echo FAILED $script |
| 59 | done |
Dean Troyer | 27e3269 | 2012-03-16 16:16:56 -0500 | [diff] [blame] | 60 | echo "=====================================================================" |
James E. Blair | c639ef0 | 2011-11-10 15:11:28 -0800 | [diff] [blame] | 61 | |
| 62 | if [ -n "$failures" ] ; then |
| 63 | exit 1 |
| 64 | fi |