blob: 15f264f4f8c8638f4b67885b30308f0374e87e04 [file] [log] [blame]
Todd Willey2599b312011-11-04 10:31:37 -04001#!/usr/bin/env bash
2
Dean Troyer27e32692012-03-16 16:16:56 -05003# **exercise.sh**
4
5# Keep track of the current devstack directory.
6TOP_DIR=$(cd $(dirname "$0") && pwd)
7
8# Load local configuration
9source $TOP_DIR/stackrc
10
Todd Willey2599b312011-11-04 10:31:37 -040011# Run everything in the exercises/ directory that isn't explicitly disabled
12
13# comma separated list of script basenames to skip
14# to refrain from exercising euca.sh use SKIP_EXERCISES=euca
15SKIP_EXERCISES=${SKIP_EXERCISES:-""}
16
Todd Willey9e9132d2011-11-04 12:09:54 -040017# Locate the scripts we should run
Todd Willey2599b312011-11-04 10:31:37 -040018EXERCISE_DIR=$(dirname "$0")/exercises
Todd Willey0367cf12011-11-05 10:46:56 -040019basenames=$(for b in `ls $EXERCISE_DIR/*.sh`; do basename $b .sh; done)
Todd Willey2599b312011-11-04 10:31:37 -040020
Todd Willey9e9132d2011-11-04 12:09:54 -040021# Track the state of each script
22passes=""
23failures=""
24skips=""
25
26# Loop over each possible script (by basename)
Todd Willey0367cf12011-11-05 10:46:56 -040027for script in $basenames; do
Todd Willey2599b312011-11-04 10:31:37 -040028 if [[ "$SKIP_EXERCISES" =~ $script ]] ; then
Todd Willey9e9132d2011-11-04 12:09:54 -040029 skips="$skips $script"
Todd Willey2599b312011-11-04 10:31:37 -040030 else
Dean Troyer27e32692012-03-16 16:16:56 -050031 echo "====================================================================="
Todd Willey2599b312011-11-04 10:31:37 -040032 echo Running $script
Dean Troyer27e32692012-03-16 16:16:56 -050033 echo "====================================================================="
Todd Willey9e9132d2011-11-04 12:09:54 -040034 $EXERCISE_DIR/$script.sh
Chmouel Boudjnah408b0092012-03-15 23:21:55 +000035 exitcode=$?
36 if [[ $exitcode == 55 ]]; then
37 skips="$skips $script"
38 elif [[ $exitcode -ne 0 ]] ; then
Todd Willey9e9132d2011-11-04 12:09:54 -040039 failures="$failures $script"
Todd Willey2599b312011-11-04 10:31:37 -040040 else
Todd Willey9e9132d2011-11-04 12:09:54 -040041 passes="$passes $script"
Todd Willey2599b312011-11-04 10:31:37 -040042 fi
43 fi
44done
Todd Willey9e9132d2011-11-04 12:09:54 -040045
46# output status of exercise run
Dean Troyer27e32692012-03-16 16:16:56 -050047echo "====================================================================="
Todd Willey0367cf12011-11-05 10:46:56 -040048for script in $skips; do
Todd Willey9e9132d2011-11-04 12:09:54 -040049 echo SKIP $script
50done
Todd Willey0367cf12011-11-05 10:46:56 -040051for script in $passes; do
Todd Willey9e9132d2011-11-04 12:09:54 -040052 echo PASS $script
53done
Todd Willey0367cf12011-11-05 10:46:56 -040054for script in $failures; do
Todd Willey9e9132d2011-11-04 12:09:54 -040055 echo FAILED $script
56done
Dean Troyer27e32692012-03-16 16:16:56 -050057echo "====================================================================="
James E. Blairc639ef02011-11-10 15:11:28 -080058
59if [ -n "$failures" ] ; then
60 exit 1
61fi