summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.testr.conf5
-rw-r--r--test-requirements.txt2
-rwxr-xr-xtests/setup_gate.sh14
-rw-r--r--tests/test_images.py50
-rwxr-xr-xtools/build-docker-image2
-rwxr-xr-xtools/setup_docker.sh (renamed from tests/setup_docker.sh)0
-rw-r--r--tox.ini5
7 files changed, 59 insertions, 19 deletions
diff --git a/.testr.conf b/.testr.conf
index cff5dee05..db65e3944 100644
--- a/.testr.conf
+++ b/.testr.conf
@@ -1,4 +1,7 @@
[DEFAULT]
-test_command=python -m subunit.run discover tests $LISTOPT $IDOPTION
+test_command=OS_STDOUT_CAPTURE=${OS_STDOUT_CAPTURE:-1} \
+ OS_STDERR_CAPTURE=${OS_STDERR_CAPTURE:-1} \
+ OS_TEST_TIMEOUT=${OS_TEST_TIMEOUT:-7200} \
+ ${PYTHON:-python} -m subunit.run discover ${OS_TEST_PATH:-./tests} $LISTOPT $IDOPTION
test_id_option=--load-list $IDFILE
test_list_option=--list
diff --git a/test-requirements.txt b/test-requirements.txt
index 2a1b03794..f88e88f0a 100644
--- a/test-requirements.txt
+++ b/test-requirements.txt
@@ -1,3 +1,5 @@
+oslo.log>=1.0.0 # Apache-2.0
+oslotest>=1.5.1 # Apache-2.0
PyYAML
python-barbicanclient>=3.0.1
python-ceilometerclient>=1.0.6
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)
diff --git a/tools/build-docker-image b/tools/build-docker-image
index 2aec82236..0bf24eea5 100755
--- a/tools/build-docker-image
+++ b/tools/build-docker-image
@@ -27,7 +27,7 @@ EOF
[ -f $TOPDIR/.buildconf ] && . $TOPDIR/.buildconf
[ -f $IMGDIR/.buildconf ] && . $IMGDIR/.buildconf
-ARGS=$(getopt -o hn:t:pN -l help,namespace:,push,release,tag:,no-cache,no-use-released-parent -- "$@") || { usage >&2; exit 2; }
+ARGS=$(getopt -o hn:t:pN -l help,namespace:,push,pull,release,tag:,no-cache,no-use-released-parent -- "$@") || { usage >&2; exit 2; }
eval set -- "$ARGS"
diff --git a/tests/setup_docker.sh b/tools/setup_docker.sh
index ba84a35e7..ba84a35e7 100755
--- a/tests/setup_docker.sh
+++ b/tools/setup_docker.sh
diff --git a/tox.ini b/tox.ini
index fbbd700b8..bda27a849 100644
--- a/tox.ini
+++ b/tox.ini
@@ -22,16 +22,17 @@ commands =
[testenv:setupenv]
whitelist_externals = bash
-commands = bash -c tests/setup_docker.sh
+commands = bash -c tests/setup_gate.sh
[testenv:images]
deps = -r{toxinidir}/test-requirements.txt
whitelist_externals = find
bash
+ sudo
commands =
find . -type f -name "*.pyc" -delete
bash -c "if [ ! -d .testrepository ]; then testr init; fi"
- testr run ^(test_images).*
+ sudo -g dockerroot testr run ^(test_images).*
[testenv:startenv]
whitelist_externals = bash