
Chectest.py wasn't able to catch bug [1] as it didn't take into consideration inheritance during the test discovery. The cause of the issue is the fact that chectest.py parsed python files by itself to discover the tests. This patch fixes this by using unittest library for test discovery instead. [1] https://review.opendev.org/c/osf/interop/+/806178 Story: 2009146 Task: 43097 Change-Id: I6e1b11eeb3ca1915ca41b6af88f9f568e6d674eb
120 lines
4.0 KiB
Bash
Executable File
120 lines
4.0 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# This script will run consistency checks for Tempest tests against
|
|
# the current and next interoperability guidelines. It can run in two
|
|
# modes.
|
|
#
|
|
# * If no arguments are specified, the script will check out Tempest and
|
|
# tempest plugins into a temporary directory, run the consistency checks,
|
|
# then delete temporary checkout.
|
|
#
|
|
# * If an argument is given, this script will assume that it is a
|
|
# user checked-out repository and run the consistency checks against
|
|
# that, and leave the directory unchanged on exit. This mode is useful
|
|
# for gate jobs and Tempest/tempest plugin development.
|
|
|
|
set -x
|
|
|
|
# Prints help
|
|
function usage {
|
|
SCRIPT_NAME="basename ${BASH_SOURCE[0]}"
|
|
echo "Usage: ${SCRIPT_NAME} [OPTION]..."
|
|
echo "Consistency check"
|
|
echo ""
|
|
echo " -h Print this usage message"
|
|
echo " -t Local Tempest directory"
|
|
echo " -d Local designate-tempest-plugin directory"
|
|
echo " -o Local heat-tempest-plugin directory"
|
|
echo " -s Local manila-tempest-plugin directory"
|
|
echo " -c Set if tempest and plugins directory should be removed after"
|
|
echo " the consistency check"
|
|
exit 1
|
|
}
|
|
|
|
while getopts t:d:o:s:ch FLAG; do
|
|
case ${FLAG} in
|
|
t)
|
|
TEMPESTDIR=${OPTARG}
|
|
;;
|
|
d)
|
|
DNSDIR=${OPTARG}
|
|
;;
|
|
o)
|
|
ORCHESTRATIONDIR=${OPTARG}
|
|
;;
|
|
s)
|
|
SFSDIR=${OPTARG}
|
|
;;
|
|
c)
|
|
CLEANTEMPEST=true
|
|
;;
|
|
h) #show help
|
|
usage
|
|
;;
|
|
\?) #unrecognized option - show help
|
|
echo -e \\n"Option -$OPTARG not allowed."
|
|
usage
|
|
;;
|
|
esac
|
|
done
|
|
|
|
# check if a local directory was given (for Tempest or one of the plugins),
|
|
# if not, create a temp dir and clone the project there
|
|
if [[ -z $TEMPESTDIR ]]; then
|
|
TEMPESTDIR=$(mktemp -d)
|
|
git clone https://opendev.org/openstack/tempest $TEMPESTDIR
|
|
fi
|
|
if [[ -z $DNSDIR ]]; then
|
|
DNSDIR=$(mktemp -d)
|
|
git clone https://opendev.org/openstack/designate-tempest-plugin $DNSDIR
|
|
fi
|
|
if [[ -z $ORCHESTRATIONDIR ]]; then
|
|
ORCHESTRATIONDIR=$(mktemp -d)
|
|
git clone https://opendev.org/openstack/heat-tempest-plugin $ORCHESTRATIONDIR
|
|
fi
|
|
if [[ -z $SFSDIR ]]; then
|
|
SFSDIR=$(mktemp -d)
|
|
git clone https://opendev.org/openstack/manila-tempest-plugin $SFSDIR
|
|
fi
|
|
|
|
pip install $TEMPESTDIR
|
|
pip install $DNSDIR
|
|
pip install $ORCHESTRATIONDIR
|
|
pip install $SFSDIR
|
|
|
|
export PYTHONPATH=$TEMPESTDIR:$DNSDIR:$ORCHESTRATIONDIR:$SFSDIR
|
|
|
|
python3 ./tools/checktests.py --guideline guidelines/next.json
|
|
exit_1=$?
|
|
# TODO(lpiwowar) The consistency check of designate_tempest_plugin is omitted until
|
|
# https://bugs.launchpad.net/designate/+bug/1943115 is fixed.
|
|
# python3 ./tools/checktests.py --guideline add-ons/guidelines/dns.next.json --testlib designate_tempest_plugin
|
|
# exit_2=$?
|
|
python3 ./tools/checktests.py --guideline add-ons/guidelines/shared_file_system.next.json --testlib manila_tempest_tests
|
|
exit_3=$?
|
|
# TODO(kopecmartin) consistency check of heat_tempest_plugin is omitted intentionally until we improve the
|
|
# checktests.py so that it detects ids of the heat_tempest_plugin.api tests which don't use decorator.idempotent_id
|
|
# call to track the id
|
|
# python3 ./tools/checktests.py --guideline add-ons/guidelines/orchestration.next.json --testlib heat_tempest_plugin
|
|
# exit_4=$?
|
|
|
|
python3 ./tools/checktests.py --guideline current_guideline
|
|
exit_5=$?
|
|
# python3 ./tools/checktests.py --guideline add-ons/dns_current_guideline --testlib designate_tempest_plugin
|
|
# exit_6=$?
|
|
python3 ./tools/checktests.py --guideline add-ons/shared_file_system_current_guideline --testlib manila_tempest_tests
|
|
exit_7=$?
|
|
# python3 ./tools/checktests.py --guideline add-ons/orchestration_current_guideline --testlib heat_tempest_plugin
|
|
# exit_8=$?
|
|
|
|
|
|
if [[ "${CLEANTEMPEST}" ]]; then
|
|
rm -rf $TEMPESTDIR
|
|
rm -rf $DNSDIR
|
|
rm -rf $ORCHESTRATIONDIR
|
|
rm -rf $SFSDIR
|
|
fi
|
|
|
|
#! (( $exit_1 || $exit_2 || $exit_3 || $exit_4 || $exit_5 || $exit_6 || $exit_7 || $exit_8 ))
|
|
! (( $exit_1 || $exit_3 || $exit_5 || $exit_7 ))
|