90d1c48143
It's nearly 2020. This should be the default now. Change-Id: Ia43fb5bf3c7eede7a8f1cf254cd6de8dace25bd8 Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
43 lines
1.2 KiB
Bash
Executable File
43 lines
1.2 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# oslo_debug_helper - Script that allows for debugging tests
|
|
#
|
|
# oslo_debug_helper [-t <test_directory>] [<tests_to_run>]
|
|
#
|
|
# <tests_to_run> - may be a test suite, class, or function, if no value is
|
|
# passed, then all tests are run.
|
|
# -t <test_directory> - the name of the directory that houses the tests
|
|
# relative to the project directory. If no value is passed, it is assumed
|
|
# to be packagename/tests.
|
|
|
|
PYTHON=${PYTHON:-python3}
|
|
|
|
TMP_DIR=`mktemp -d debug-$$-XXX` || exit 1
|
|
trap "rm -rf $TMP_DIR" EXIT
|
|
|
|
ALL_TESTS=$TMP_DIR/all_tests
|
|
TESTS_TO_RUN=$TMP_DIR/tests_to_run
|
|
|
|
# Default to packagename/tests, i.e., keystone/tests
|
|
PACKAGENAME=$(${PYTHON} setup.py --name)
|
|
TEST_DIR=./$PACKAGENAME/tests
|
|
|
|
# If a specific path is passed, use that one
|
|
while getopts ":t:" opt; do
|
|
case $opt in
|
|
t) TEST_DIR=$OPTARG;;
|
|
esac
|
|
done
|
|
|
|
${PYTHON} -m testtools.run discover -t ./ $TEST_DIR --list > $ALL_TESTS
|
|
|
|
# getopts friendly way of determining if a positional arg has been passed
|
|
ARG1=${@:$OPTIND:1}
|
|
if [ "$ARG1" ]; then
|
|
grep "$ARG1" < $ALL_TESTS > $TESTS_TO_RUN
|
|
else
|
|
mv $ALL_TESTS $TESTS_TO_RUN
|
|
fi
|
|
|
|
${PYTHON} -m testtools.run discover --load-list $TESTS_TO_RUN
|