summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2015-05-29 01:13:24 +0000
committerGerrit Code Review <review@openstack.org>2015-05-29 01:13:24 +0000
commitd929069824850a2e0e6299f76d9c85f730401e74 (patch)
tree9d510366ddcd08e10abe52e37f99c98296485544 /tests
parentf2bb8e433edfaf8cf46d102070c84460d01a73b5 (diff)
parent7d48398d4f87ad68698a9c3cd7a8bc2a3c7b1226 (diff)
downloadkolla-d2acb1894f28dcb64060c47ac2548d37c6fb99e5.tar.gz
kolla-d2acb1894f28dcb64060c47ac2548d37c6fb99e5.zip
Merge "Clean up the image functional test" into stable/kilokilo-eol
Diffstat (limited to 'tests')
-rwxr-xr-xtests/setup_docker.sh47
-rwxr-xr-xtests/setup_gate.sh14
-rw-r--r--tests/test_images.py50
3 files changed, 49 insertions, 62 deletions
diff --git a/tests/setup_docker.sh b/tests/setup_docker.sh
deleted file mode 100755
index ba84a35e7..000000000
--- a/tests/setup_docker.sh
+++ /dev/null
@@ -1,47 +0,0 @@
-#!/bin/bash
-#
-# This script is used to setup Kolla Docker environment,
-# after running this script, you can run Kolla functional test.
-# NOTE: This script was only tested on redhat/debian/suse platform families.
-#
-
-set -xeu
-
-DOCKER_MIN_VERSION=1.6.0
-
-function check_platform() {
- if [ "$OSTYPE" != "linux-gnu" ]; then
- echo Platform not supported
- exit 255
- fi
-}
-
-function check_docker_version() {
- local docker_version
- local result
- if which docker &>/dev/null; then
- docker_version=$(docker --version 2>/dev/null | awk -F"[ ,]" '{print $3}')
- result=$(awk 'BEGIN{print '$docker_version' >= '$DOCKER_MIN_VERSION'}')
- if [ $result = 1 ]; then
- return 0
- fi
- fi
- return 1
-}
-
-function start_docker() {
- pkill -9 docker || true
- if check_docker_version; then
- docker -d &>/dev/null &
- else
- curl -sSL https://get.docker.com/builds/Linux/x86_64/docker-$DOCKER_MIN_VERSION -o /usr/local/bin/docker
- chmod +x /usr/local/bin/docker
- /usr/local/bin/docker -d &>/dev/null &
- fi
-}
-
-## Check platfrom
-check_platfrom
-
-## Start Docker service
-start_docker
diff --git a/tests/setup_gate.sh b/tests/setup_gate.sh
new file mode 100755
index 000000000..43b4e41b8
--- /dev/null
+++ b/tests/setup_gate.sh
@@ -0,0 +1,14 @@
+#!/bin/bash
+
+set -e
+
+sudo yum install -y libffi-devel openssl-devel docker
+sudo /usr/sbin/usermod -a -G dockerroot ${SUDO_USER:-$USER}
+sudo systemctl start docker
+sleep 1
+
+group_str="jenkins ALL=(:dockerroot) NOPASSWD: ALL"
+sudo grep -x "$group_str" /etc/sudoers > /dev/null || sudo bash -c "echo \"$group_str\" >> /etc/sudoers"
+sudo chown root:dockerroot /var/run/docker.sock
+
+echo "Completed $0."
diff --git a/tests/test_images.py b/tests/test_images.py
index f0e45368d..b3821fcf5 100644
--- a/tests/test_images.py
+++ b/tests/test_images.py
@@ -10,33 +10,53 @@
# License for the specific language governing permissions and limitations
# under the License.
-import testtools
-from subprocess import check_output
+from oslo_log import fixture as log_fixture
+from oslo_log import log as logging
+from oslotest import base
-class ImagesTest(testtools.TestCase):
+from subprocess import Popen, PIPE, STDOUT
+
+LOG = logging.getLogger(__name__)
+
+class ImagesTest(base.BaseTestCase):
def setUp(self):
super(ImagesTest, self).setUp()
+ self.useFixture(log_fixture.SetLogLevel([__name__],
+ logging.logging.INFO))
def test_builds(self):
- build_output = check_output(["tools/build-all-docker-images",
- "--release",
- "--pull",
- "--testmode"])
+ proc = Popen(['tools/build-all-docker-images',
+ '--testmode'],
+ stdout=PIPE, stderr=STDOUT, bufsize=1)
+ with proc.stdout:
+ for line in iter(proc.stdout.readline, b''):
+ LOG.info(line.strip())
+ proc.wait()
# these are images that are known to not build properly
- excluded_images = ["kollaglue/centos-rdo-swift-proxy-server",
+ excluded_images = ["kollaglue/centos-rdo-swift-base",
+ "kollaglue/centos-rdo-swift-object",
+ "kollaglue/centos-rdo-swift-proxy-server",
"kollaglue/centos-rdo-swift-container",
- "kollaglue/centos-rdo-swift-base",
"kollaglue/centos-rdo-swift-account",
- "kollaglue/centos-rdo-swift-object",
- "kollaglue/centos-rdo-barbican",
- "kollaglue/fedora-rdo-base",
+ "kollaglue/centos-rdo-zaqar",
"kollaglue/centos-rdo-rhel-osp-base"]
- results = eval(build_output.splitlines()[-1])
+ results = eval(line)
+ failures = 0
for image, result in results.iteritems():
if image in excluded_images:
- self.assertEqual(result, 'fail')
+ if result is 'fail':
+ continue
+ failures = failures + 1
+ LOG.warning(">>> Expected image '%s' to fail, please update"
+ " the excluded_images in source file above if the"
+ " image build has been fixed." % image)
else:
- self.assertNotEqual(result, 'fail')
+ if result is not 'fail':
+ continue
+ failures = failures + 1
+ LOG.critical(">>> Expected image '%s' to succeed!" % image)
+
+ self.assertEqual(failures, 0, "%d failure(s) occurred" % failures)