diff --git a/.drone.yml b/.drone.yml index 385138d6c86..614c0dc40c2 100644 --- a/.drone.yml +++ b/.drone.yml @@ -596,6 +596,7 @@ pipeline: image: nextcloudci/php7.0:php7.0-19 commands: - phpenmod xdebug + - ./tests/drone-wait-objectstore.sh - TEST_SELECTION=PRIMARY-${OBJECT_STORE} ./autotest.sh sqlite - wget https://codecov.io/bash -O codecov.sh - sh -c "if [ '$DRONE_BUILD_EVENT' = 'pull_request' ]; then bash codecov.sh -B $DRONE_BRANCH -C $DRONE_COMMIT -P $DRONE_PULL_REQUEST -t 117641e2-a9e8-4b7b-984b-ae872d9b05f5 -f tests/autotest-clover-sqlite.xml; fi" @@ -743,6 +744,8 @@ matrix: - TESTS: carddavtester-old-endpoint - TESTS: object-store OBJECT_STORE: s3 + - TESTS: object-store + OBJECT_STORE: swift - TESTS: sqlite-php7.0-samba-native - TESTS: sqlite-php7.0-samba-non-native - TEST: memcache-memcached @@ -838,6 +841,14 @@ services: when: matrix: OBJECT_STORE: s3 + dockswift: + image: icewind1991/dockswift + environment: + - INITIALIZE=yes + - IPADDRESS=dockswift + when: + matrix: + OBJECT_STORE: swift selenium: image: selenium/standalone-firefox:2.53.1-beryllium environment: diff --git a/autotest.sh b/autotest.sh index 7a91b077193..ff59386e1bc 100755 --- a/autotest.sh +++ b/autotest.sh @@ -369,6 +369,9 @@ function execute_tests { if [ "$TEST_SELECTION" == "PRIMARY-s3" ]; then GROUP='--group PRIMARY-s3' fi + if [ "$TEST_SELECTION" == "PRIMARY-swift" ]; then + GROUP='--group PRIMARY-swift' + fi COVER='' if [ -z "$NOCOVERAGE" ]; then diff --git a/tests/drone-wait-objectstore.sh b/tests/drone-wait-objectstore.sh new file mode 100755 index 00000000000..1e5a13ee55e --- /dev/null +++ b/tests/drone-wait-objectstore.sh @@ -0,0 +1,10 @@ +#!/bin/bash + +if [ "$OBJECT_STORE" == "swift" ]; then + echo "waiting for swift" + until curl -I http://dockswift:5000/v3 + do + sleep 2 + done + sleep 30 +fi diff --git a/tests/lib/Files/ObjectStore/SwiftTest.php b/tests/lib/Files/ObjectStore/SwiftTest.php index f2aeace769c..1ea55a84628 100644 --- a/tests/lib/Files/ObjectStore/SwiftTest.php +++ b/tests/lib/Files/ObjectStore/SwiftTest.php @@ -23,6 +23,9 @@ namespace Test\Files\ObjectStore; use OC\Files\ObjectStore\Swift; +/** + * @group PRIMARY-swift + */ class SwiftTest extends ObjectStoreTest { /** * @return \OCP\Files\ObjectStore\IObjectStore diff --git a/tests/preseed-config.php b/tests/preseed-config.php index 7c080038734..5fbdc565417 100644 --- a/tests/preseed-config.php +++ b/tests/preseed-config.php @@ -34,3 +34,19 @@ if (getenv('OBJECT_STORE') === 's3') { ) ]; } +if (getenv('OBJECT_STORE') === 'swift') { + $swiftHost = getenv('DRONE') === 'true' ? 'dockswift' : 'localhost'; + $CONFIG['objectstore'] = [ + 'class' => 'OC\\Files\\ObjectStore\\Swift', + 'arguments' => array( + 'autocreate' => true, + 'username' => 'swift', + 'tenantName' => 'service', + 'password' => 'swift', + 'serviceName' => 'swift', + 'region' => 'regionOne', + 'url' => "http://$swiftHost:5000/v2.0", + 'bucket' => 'nextcloud' + ) + ]; +}