diff options
author | Morris Jobke <hey@morrisjobke.de> | 2015-02-11 01:06:07 +0100 |
---|---|---|
committer | Thomas Müller <thomas.mueller@tmit.eu> | 2015-10-20 14:45:16 +0200 |
commit | 2577a624c0b1ce157a2ed52820dfa6a2db1662d4 (patch) | |
tree | a9550568b0c0ef84ffaff74c8c059b2d8ee8dca4 /apps | |
parent | ad08cfbc5f670f5cc874bdc107c9662f68d566b3 (diff) | |
download | nextcloud-server-2577a624c0b1ce157a2ed52820dfa6a2db1662d4.tar.gz nextcloud-server-2577a624c0b1ce157a2ed52820dfa6a2db1662d4.zip |
[files_external] swift tests
Diffstat (limited to 'apps')
-rw-r--r-- | apps/files_external/tests/backends/swift.php | 9 | ||||
-rwxr-xr-x | apps/files_external/tests/env/start-swift-morrisjobke.sh | 66 | ||||
-rwxr-xr-x | apps/files_external/tests/env/stop-swift-morrisjobke.sh | 36 |
3 files changed, 106 insertions, 5 deletions
diff --git a/apps/files_external/tests/backends/swift.php b/apps/files_external/tests/backends/swift.php index 2e6670f84f8..4ca2d1db7bd 100644 --- a/apps/files_external/tests/backends/swift.php +++ b/apps/files_external/tests/backends/swift.php @@ -32,18 +32,17 @@ class Swift extends Storage { protected function setUp() { parent::setUp(); - $this->config = include('files_external/tests/config.php'); - if (!is_array($this->config) or !isset($this->config['swift']) - or !$this->config['swift']['run']) { + $this->config = include('files_external/tests/config.swift.php'); + if (!is_array($this->config) or !$this->config['run']) { $this->markTestSkipped('OpenStack Object Storage backend not configured'); } - $this->instance = new \OC\Files\Storage\Swift($this->config['swift']); + $this->instance = new \OC\Files\Storage\Swift($this->config); } protected function tearDown() { if ($this->instance) { $connection = $this->instance->getConnection(); - $container = $connection->getContainer($this->config['swift']['bucket']); + $container = $connection->getContainer($this->config['bucket']); $objects = $container->objectList(); while($object = $objects->next()) { diff --git a/apps/files_external/tests/env/start-swift-morrisjobke.sh b/apps/files_external/tests/env/start-swift-morrisjobke.sh new file mode 100755 index 00000000000..d6cd0d22e9d --- /dev/null +++ b/apps/files_external/tests/env/start-swift-morrisjobke.sh @@ -0,0 +1,66 @@ +#!/bin/bash +# +# ownCloud +# +# This script start a docker container to test the files_external tests +# against. It will also change the files_external config to use the docker +# container as testing environment. This is reverted in the stop step.W +# +# Set environment variable DEBUG to print config file +# +# @author Morris Jobke +# @copyright 2015 Morris Jobke <hey@morrisjobke.de> +# + +if ! command -v docker >/dev/null 2>&1; then + echo "No docker executable found - skipped docker setup" + exit 0; +fi + +echo "Docker executable found - setup docker" + +echo "Fetch recent morrisjobke/docker-swift-onlyone docker image" +docker pull morrisjobke/docker-swift-onlyone + +# retrieve current folder to place the config in the parent folder +thisFolder=`echo $0 | replace "env/start-swift-morrisjobke.sh" ""` + +if [ -z "$thisFolder" ]; then + thisFolder="." +fi; + +container=`docker run -d -e SWIFT_SET_PASSWORDS=true morrisjobke/docker-swift-onlyone` + +host=`docker inspect $container | grep IPAddress | cut -d '"' -f 4` + + +echo "swift container: $container" + +# put container IDs into a file to drop them after the test run (keep in mind that multiple tests run in parallel on the same host) +echo $container >> $thisFolder/dockerContainerMorrisJobke.$EXECUTOR_NUMBER.swift + +# TODO find a way to determine the successful initialization inside the docker container +echo "Waiting 15 seconds for swift initialization ... " +sleep 15 + +user=test:tester +password=`docker logs $container | grep "user_test_tester " | cut -d " " -f3` + +cat > $thisFolder/config.swift.php <<DELIM +<?php + +return array( + 'run'=>true, + 'url'=>'http://$host:8080/auth/v1.0', + 'user'=>'$user', + 'key'=>'$password', + 'bucket'=>'swift', + 'region' => 'DFW', +); + +DELIM + +if [ -n "$DEBUG" ]; then + cat $thisFolder/config.swift.php + cat $thisFolder/dockerContainerMorrisJobke.$EXECUTOR_NUMBER.swift +fi diff --git a/apps/files_external/tests/env/stop-swift-morrisjobke.sh b/apps/files_external/tests/env/stop-swift-morrisjobke.sh new file mode 100755 index 00000000000..f1660e65854 --- /dev/null +++ b/apps/files_external/tests/env/stop-swift-morrisjobke.sh @@ -0,0 +1,36 @@ +#!/bin/bash +# +# ownCloud +# +# This script stops the docker container the files_external tests were run +# against. It will also revert the config changes done in start step. +# +# @author Morris Jobke +# @copyright 2015 Morris Jobke <hey@morrisjobke.de> +# + +if ! command -v docker >/dev/null 2>&1; then + echo "No docker executable found - skipped docker stop" + exit 0; +fi + +echo "Docker executable found - stop and remove docker containers" + +# retrieve current folder to remove the config from the parent folder +thisFolder=`echo $0 | replace "env/stop-swift-morrisjobke.sh" ""` + +if [ -z "$thisFolder" ]; then + thisFolder="." +fi; + +# stopping and removing docker containers +for container in `cat $thisFolder/dockerContainerMorrisJobke.$EXECUTOR_NUMBER.swift`; do + echo "Stopping and removing docker container $container" + # kills running container and removes it + docker rm -f $container +done; + +# cleanup +rm $thisFolder/config.swift.php +rm $thisFolder/dockerContainerMorrisJobke.$EXECUTOR_NUMBER.swift + |