| 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 | 
| Dean Troyer | a3b0255 | 2012-12-19 16:27:12 -0600 | [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 |