From 503ba6a9705d9050010529fac0e1611c0c2d8631 Mon Sep 17 00:00:00 2001 From: Jesse Pretorius Date: Mon, 11 Dec 2017 15:39:57 +0000 Subject: [PATCH] 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 --- bindep.txt | 31 ++++++++++++++++++++------- run_tests.sh | 59 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 83 insertions(+), 7 deletions(-) create mode 100755 run_tests.sh diff --git a/bindep.txt b/bindep.txt index ab85caa3e9..9d0711133e 100644 --- a/bindep.txt +++ b/bindep.txt @@ -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 diff --git a/run_tests.sh b/run_tests.sh new file mode 100755 index 0000000000..4b72d3fac3 --- /dev/null +++ b/run_tests.sh @@ -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 +