exerstack is a bash tool to test each of the python command line clients from the core OpenStack projects (glance, nova, swift, keystone, horizon)
exercise.sh [release] [tests]
will run all tests that exist in the exercises directory against the default release (as defined in the top of the exerstack.sh script), unless skipped in testmap.conf
will run all tests that exist in the exercises directory, unless skipped in testmap.conf
exercise.sh essex-final glance.sh
will run all glance tests that are valid for the essex-final release, unless skipped in testmap.conf
exercise.sh - main script
exercises/* - each script in here defines a set of tests for a particular client
exercises/include/* - supporting files for some of the tests
testmap.conf - defines the tests you would like to skip, and the conditions under which you want to skip them
openrc - defines global environment variables
localrc - (optional) defines your own overrides for environment variables in here - gets called by openrc
testmap.conf can skip entire test sets (an entire *.sh file in exercises/), or individual tests within a test set. Since OpenStack releases are alphabetical, it uses lexical comparison to see if a release is 'older than' or 'newer than' the one specified in the skip condition (ie diablo-final is 'older than' essex-e2 because d comes before e in the alphabet)
The structure of a skip condition is as follows:
[test_set:optional_test_name]="condition (<=>) release : message
[keystone-manage]="< essex-e4 : keystone-legacy was replaced with keystone-ksl in essex >= e4"
skips the entire keystone-manage.sh test set for any release that is 'newer than' essex-e4.
[glance:011_glance_delete-TOKEN]="< essex-e3 : glance token auth works on essex < e3"
skips the test '011_glance_delete-TOKEN' within the glance.sh test set, for any release that is 'newer than' essex-e3