From e00db6a064cae6a7bedc05fd9b447dea3904c33b Mon Sep 17 00:00:00 2001 From: David Stanek Date: Fri, 19 Dec 2014 16:17:09 +0000 Subject: [PATCH] Use bashate to run_tests.sh Change-Id: I542cae190845cbb98c030423aa6e2a747dc07263 --- run_tests.sh | 162 +++++++++++++++++++++++++-------------------------- tox.ini | 2 +- 2 files changed, 81 insertions(+), 83 deletions(-) diff --git a/run_tests.sh b/run_tests.sh index f2086d519f..46fcf4d594 100755 --- a/run_tests.sh +++ b/run_tests.sh @@ -17,41 +17,41 @@ set -eu function usage { - echo "Usage: $0 [OPTION]..." - echo "Run Keystone's test suite(s)" - echo "" - echo " -V, --virtual-env Always use virtualenv. Install automatically if not present" - echo " -N, --no-virtual-env Don't use virtualenv. Run tests in local environment" - echo " -x, --stop Stop running tests after the first error or failure." - echo " -f, --force Force a clean re-build of the virtual environment. Useful when dependencies have been added." - echo " -u, --update Update the virtual environment with any newer package versions" - echo " -p, --pep8 Just run flake8" - echo " -8, --8 Just run flake8, don't show PEP8 text for each error" - echo " -P, --no-pep8 Don't run flake8" - echo " -c, --coverage Generate coverage report" - echo " -h, --help Print this usage message" - echo "" - echo "Note: with no options specified, the script will try to run the tests in a virtual environment," - echo " If no virtualenv is found, the script will ask if you would like to create one. If you " - echo " prefer to run tests NOT in a virtual environment, simply pass the -N option." - exit + echo "Usage: $0 [OPTION]..." + echo "Run Keystone's test suite(s)" + echo "" + echo " -V, --virtual-env Always use virtualenv. Install automatically if not present" + echo " -N, --no-virtual-env Don't use virtualenv. Run tests in local environment" + echo " -x, --stop Stop running tests after the first error or failure." + echo " -f, --force Force a clean re-build of the virtual environment. Useful when dependencies have been added." + echo " -u, --update Update the virtual environment with any newer package versions" + echo " -p, --pep8 Just run flake8" + echo " -8, --8 Just run flake8, don't show PEP8 text for each error" + echo " -P, --no-pep8 Don't run flake8" + echo " -c, --coverage Generate coverage report" + echo " -h, --help Print this usage message" + echo "" + echo "Note: with no options specified, the script will try to run the tests in a virtual environment," + echo " If no virtualenv is found, the script will ask if you would like to create one. If you " + echo " prefer to run tests NOT in a virtual environment, simply pass the -N option." + exit } function process_option { - case "$1" in - -h|--help) usage;; - -V|--virtual-env) always_venv=1; never_venv=0;; - -N|--no-virtual-env) always_venv=0; never_venv=1;; - -x|--stop) failfast=1;; - -f|--force) force=1;; - -u|--update) update=1;; - -p|--pep8) just_flake8=1;; - -8|--8) short_flake8=1;; - -P|--no-pep8) no_flake8=1;; - -c|--coverage) coverage=1;; - -*) testropts="$testropts $1";; - *) testrargs="$testrargs $1" - esac + case "$1" in + -h|--help) usage;; + -V|--virtual-env) always_venv=1; never_venv=0;; + -N|--no-virtual-env) always_venv=0; never_venv=1;; + -x|--stop) failfast=1;; + -f|--force) force=1;; + -u|--update) update=1;; + -p|--pep8) just_flake8=1;; + -8|--8) short_flake8=1;; + -P|--no-pep8) no_flake8=1;; + -c|--coverage) coverage=1;; + -*) testropts="$testropts $1";; + *) testrargs="$testrargs $1" + esac } venv=.venv @@ -70,7 +70,7 @@ coverage=0 update=0 for arg in "$@"; do - process_option $arg + process_option $arg done TESTRTESTS="python setup.py testr" @@ -81,57 +81,55 @@ if [ $coverage -eq 1 ]; then fi function run_tests { - set -e - echo ${wrapper} - if [ $failfast -eq 1 ]; then - testrargs="$testrargs -- --failfast" - fi - ${wrapper} $TESTRTESTS --testr-args="$testropts $testrargs" | \ - ${wrapper} subunit-2to1 | \ - ${wrapper} tools/colorizer.py + set -e + echo ${wrapper} + if [ $failfast -eq 1 ]; then + testrargs="$testrargs -- --failfast" + fi + ${wrapper} $TESTRTESTS --testr-args="$testropts $testrargs" | \ + ${wrapper} subunit-2to1 | \ + ${wrapper} tools/colorizer.py } function run_flake8 { - FLAGS=--show-pep8 - if [ $# -gt 0 ] && [ 'short' == ''$1 ] - then - FLAGS='' - fi + FLAGS=--show-pep8 + if [ $# -gt 0 ] && [ 'short' == ''$1 ]; then + FLAGS='' + fi - echo "Running flake8 ..." - # Just run flake8 in current environment - echo ${wrapper} flake8 $FLAGS | tee pep8.txt - ${wrapper} flake8 $FLAGS | tee pep8.txt + echo "Running flake8 ..." + # Just run flake8 in current environment + echo ${wrapper} flake8 $FLAGS | tee pep8.txt + ${wrapper} flake8 $FLAGS | tee pep8.txt } -if [ $never_venv -eq 0 ] -then - # Remove the virtual environment if --force used - if [ $force -eq 1 ]; then - echo "Cleaning virtualenv..." - rm -rf ${venv} - fi - if [ $update -eq 1 ]; then - echo "Updating virtualenv..." - python tools/install_venv.py - fi - if [ -e ${venv} ]; then - wrapper="${with_venv}" - else - if [ $always_venv -eq 1 ]; then - # Automatically install the virtualenv - python tools/install_venv.py - wrapper="${with_venv}" - else - echo -e "No virtual environment found...create one? (Y/n) \c" - read use_ve - if [ "x$use_ve" = "xY" -o "x$use_ve" = "x" -o "x$use_ve" = "xy" ]; then - # Install the virtualenv and run the test suite in it - python tools/install_venv.py - wrapper=${with_venv} - fi +if [ $never_venv -eq 0 ]; then + # Remove the virtual environment if --force used + if [ $force -eq 1 ]; then + echo "Cleaning virtualenv..." + rm -rf ${venv} + fi + if [ $update -eq 1 ]; then + echo "Updating virtualenv..." + python tools/install_venv.py + fi + if [ -e ${venv} ]; then + wrapper="${with_venv}" + else + if [ $always_venv -eq 1 ]; then + # Automatically install the virtualenv + python tools/install_venv.py + wrapper="${with_venv}" + else + echo -e "No virtual environment found...create one? (Y/n) \c" + read use_ve + if [ "x$use_ve" = "xY" -o "x$use_ve" = "x" -o "x$use_ve" = "xy" ]; then + # Install the virtualenv and run the test suite in it + python tools/install_venv.py + wrapper=${with_venv} + fi + fi fi - fi fi # Delete old coverage data from previous runs @@ -145,8 +143,8 @@ if [ $just_flake8 -eq 1 ]; then fi if [ $short_flake8 -eq 1 ]; then - run_flake8 short - exit + run_flake8 short + exit fi @@ -157,7 +155,7 @@ run_tests # distinguish between options (testropts), which begin with a '-', and arguments # (testrargs). if [ -z "$testrargs" ]; then - if [ $no_flake8 -eq 0 ]; then - run_flake8 - fi + if [ $no_flake8 -eq 0 ]; then + run_flake8 + fi fi diff --git a/tox.ini b/tox.ini index dace50ea7b..f570bd85e2 100644 --- a/tox.ini +++ b/tox.ini @@ -74,7 +74,7 @@ commands = flake8 {posargs} # Run bash8 during pep8 runs to ensure violations are caught by # the check and gate queues - bashate examples/pki/gen_pki.sh + bashate run_tests.sh examples/pki/gen_pki.sh # Check that .po and .pot files are valid. bash -c "find keystone -type f -regex '.*\.pot?' -print0| \ xargs -0 -n 1 msgfmt --check-format -o /dev/null"