Update test tooling for manual testing

In https://review.openstack.org/520065 the lint tests
were updated to make use of the tests repo for all
linting. This works nicely within OpenStack-CI, but
fails when trying to do it by hand due to missing
packages on the hosts. It also requires the tester to
install some things beforehand.

To align this repo with the way the role tests run,
we implement the same mechanism as used in the roles
to prep the host using the run_tests.sh script and the
appropriate bindep entries.

Change-Id: Ia1c0a7374d8027d0f0772f393b462ee807ea2090
This commit is contained in:
Jesse Pretorius 2017-12-11 15:39:57 +00:00
parent 4c61f5d877
commit 503ba6a970
2 changed files with 83 additions and 7 deletions

View File

@ -2,22 +2,39 @@
# before the execution of any tests.
#
# See the following for details:
# - http://docs.openstack.org/infra/bindep/
# - https://git.openstack.org/openstack-infra/bindep
# - https://docs.openstack.org/infra/bindep/
# - https://git.openstack.org/cgit/openstack-infra/bindep
#
# Even if the role does not make use of this facility, it
# is better to have this file empty, otherwise OpenStack-CI
# will fall back to installing its default packages which
# will potentially be detrimental to the tests executed.
# Required for compressing collected log files in CI
gzip
# The gcc compiler
gcc
# Requirements for Paramiko 2.0
# Base requirements for Ubuntu
git-core [platform:dpkg]
libssl-dev [platform:dpkg]
libffi-dev [platform:dpkg]
python2.7 [platform:dpkg]
python-apt [platform:dpkg]
python-dev [platform:dpkg]
python3 [platform:dpkg]
python3-apt [platform:dpkg]
python3-dev [platform:dpkg]
# Base requirements for RPM distros
gcc-c++ [platform:rpm]
git [platform:rpm]
libffi-devel [platform:rpm]
openssl-devel [platform:rpm]
python-devel [platform:rpm]
python2-dnf [platform:fedora]
# For selinux
libselinux-python [platform:rpm]
# For SELinux
libselinux-python [platform:redhat]
libsemanage-python [platform:redhat]
# Required for compressing collected log files in CI
gzip

59
run_tests.sh Executable file
View File

@ -0,0 +1,59 @@
#!/usr/bin/env bash
# Copyright 2015, Rackspace US, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
# Note:
# This file is maintained in the openstack-ansible-tests repository.
# https://git.openstack.org/cgit/openstack/openstack-ansible-tests/tree/run_tests.sh
# If you need to modify this file, update the one in the openstack-ansible-tests
# repository and then update this file as well. The purpose of this file is to
# prepare the host and then execute all the tox tests.
#
## Shell Opts ----------------------------------------------------------------
set -xeu
## Vars ----------------------------------------------------------------------
export WORKING_DIR=${WORKING_DIR:-$(pwd)}
## Main ----------------------------------------------------------------------
source /etc/os-release || source /usr/lib/os-release
install_pkg_deps() {
pkg_deps="git"
# Prefer dnf over yum for CentOS.
which dnf &>/dev/null && RHT_PKG_MGR='dnf' || RHT_PKG_MGR='yum'
case ${ID,,} in
*suse*) pkg_mgr_cmd="zypper -n in" ;;
centos|rhel|fedora) pkg_mgr_cmd="${RHT_PKG_MGR} install -y" ;;
ubuntu|debian) pkg_mgr_cmd="apt-get install -y" ;;
*) echo "unsupported distribution: ${ID,,}"; exit 1 ;;
esac
eval sudo $pkg_mgr_cmd $pkg_deps
}
# Install the host distro package dependencies
install_pkg_deps
# Clone the tests repo for access to the common test script
source tests/tests-repo-clone.sh
# Execute the common test script
source tests/common/run_tests_common.sh