From cdaea7a4062c463e9536b3ca52207c013d8af408 Mon Sep 17 00:00:00 2001
From: Andreas Fischer <bantu@phpbb.com>
Date: Tue, 15 Oct 2013 16:28:59 +0200
Subject: [PATCH 1/2] [ticket/11920] Add MariaDB environment to Travis-CI.

PHPBB3-11920
---
 .travis.yml                       |  3 ++-
 travis/phpunit-mariadb-travis.xml | 41 +++++++++++++++++++++++++++++++
 travis/setup-mariadb.sh           | 26 ++++++++++++++++++++
 3 files changed, 69 insertions(+), 1 deletion(-)
 create mode 100644 travis/phpunit-mariadb-travis.xml
 create mode 100755 travis/setup-mariadb.sh

diff --git a/.travis.yml b/.travis.yml
index 5e2569dd22..03bc7fb945 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -7,13 +7,14 @@ php:
   - 5.5
 
 env:
+  - DB=mariadb
   - DB=mysql
   - DB=postgres
 
 before_script:
   - sh -c "if [ '$DB' = 'postgres' ]; then psql -c 'DROP DATABASE IF EXISTS phpbb_tests;' -U postgres; fi"
   - sh -c "if [ '$DB' = 'postgres' ]; then psql -c 'create database phpbb_tests;' -U postgres; fi"
-  - sh -c "if [ '$DB' = 'mysql' ]; then mysql -e 'create database IF NOT EXISTS phpbb_tests;'; fi"
+  - sh -c "if [ '$DB' = 'mysql' -o '$DB' = 'mariadb' ]; then mysql -e 'create database IF NOT EXISTS phpbb_tests;'; fi"
   - sh -c "if [ '$TRAVIS_PHP_VERSION' = '5.2' ]; then pear install --force phpunit/DbUnit; phpenv rehash; fi"
   - cd phpBB
   - sh -c "if [ '$TRAVIS_PHP_VERSION' != '5.2' ]; then php ../composer.phar install --dev --no-interaction --prefer-source; fi"
diff --git a/travis/phpunit-mariadb-travis.xml b/travis/phpunit-mariadb-travis.xml
new file mode 100644
index 0000000000..d49118b0f8
--- /dev/null
+++ b/travis/phpunit-mariadb-travis.xml
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<phpunit backupGlobals="true"
+         backupStaticAttributes="true"
+         colors="true"
+         convertErrorsToExceptions="true"
+         convertNoticesToExceptions="true"
+         convertWarningsToExceptions="true"
+         processIsolation="false"
+         stopOnFailure="false"
+         syntaxCheck="true"
+         strict="true"
+         verbose="true"
+         bootstrap="../tests/bootstrap.php">
+	<testsuites>
+		<testsuite name="phpBB Test Suite">
+			<directory suffix="_test.php">../tests/</directory>
+			<exclude>tests/functional</exclude>
+			<exclude>tests/lint_test.php</exclude>
+		</testsuite>
+		<testsuite name="phpBB Functional Tests">
+			<directory suffix="_test.php" phpVersion="5.3.19" phpVersionOperator=">=">../tests/functional</directory>
+		</testsuite>
+	</testsuites>
+
+	<groups>
+		<exclude>
+			<group>slow</group>
+		</exclude>
+	</groups>
+
+	<php>
+		<server name="PHPBB_TEST_DBMS" value="mysqli" />
+		<server name="PHPBB_TEST_DBHOST" value="0.0.0.0" />
+		<server name="PHPBB_TEST_DBPORT" value="3306" />
+		<server name="PHPBB_TEST_DBNAME" value="phpbb_tests" />
+		<server name="PHPBB_TEST_DBUSER" value="root" />
+		<server name="PHPBB_TEST_DBPASSWD" value="rootpasswd" />
+		<server name="PHPBB_TEST_TABLE_PREFIX" value="phpbb_"/>
+		<server name="PHPBB_FUNCTIONAL_URL" value="http://localhost/" />
+	</php>
+</phpunit>
diff --git a/travis/setup-mariadb.sh b/travis/setup-mariadb.sh
new file mode 100755
index 0000000000..68359e400a
--- /dev/null
+++ b/travis/setup-mariadb.sh
@@ -0,0 +1,26 @@
+#!/bin/bash
+#
+# @copyright (c) 2013 phpBB Group
+# @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
+#
+set -e
+
+# MariaDB Series
+VERSION='5.5'
+
+# Operating system codename, e.g. "precise"
+OS_CODENAME=$(lsb_release --codename --short)
+
+if ! which add-apt-repository > /dev/null
+then
+	sudo apt-get update -qq
+	sudo apt-get install -qq python-software-properties
+fi
+
+sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0xcbcb082a1bb943db
+sudo add-apt-repository "deb http://ftp.osuosl.org/pub/mariadb/repo/$VERSION/ubuntu $OS_CODENAME main"
+sudo apt-get update -qq
+
+sudo debconf-set-selections <<< "mariadb-server-$VERSION mysql-server/root_password password rootpasswd"
+sudo debconf-set-selections <<< "mariadb-server-$VERSION mysql-server/root_password_again password rootpasswd"
+sudo apt-get install -qq mariadb-server

From 55e24eb4f87523c83e74a7174555a48b2a90b7a7 Mon Sep 17 00:00:00 2001
From: Andreas Fischer <bantu@phpbb.com>
Date: Tue, 15 Oct 2013 16:57:16 +0200
Subject: [PATCH 2/2] [ticket/11920] Have to use empty root password otherwise
 db creation fails.

PHPBB3-11920
---
 travis/phpunit-mariadb-travis.xml | 2 +-
 travis/setup-mariadb.sh           | 7 +++++++
 2 files changed, 8 insertions(+), 1 deletion(-)

diff --git a/travis/phpunit-mariadb-travis.xml b/travis/phpunit-mariadb-travis.xml
index d49118b0f8..1eaee5b7d8 100644
--- a/travis/phpunit-mariadb-travis.xml
+++ b/travis/phpunit-mariadb-travis.xml
@@ -34,7 +34,7 @@
 		<server name="PHPBB_TEST_DBPORT" value="3306" />
 		<server name="PHPBB_TEST_DBNAME" value="phpbb_tests" />
 		<server name="PHPBB_TEST_DBUSER" value="root" />
-		<server name="PHPBB_TEST_DBPASSWD" value="rootpasswd" />
+		<server name="PHPBB_TEST_DBPASSWD" value="" />
 		<server name="PHPBB_TEST_TABLE_PREFIX" value="phpbb_"/>
 		<server name="PHPBB_FUNCTIONAL_URL" value="http://localhost/" />
 	</php>
diff --git a/travis/setup-mariadb.sh b/travis/setup-mariadb.sh
index 68359e400a..2e974da8eb 100755
--- a/travis/setup-mariadb.sh
+++ b/travis/setup-mariadb.sh
@@ -24,3 +24,10 @@ sudo apt-get update -qq
 sudo debconf-set-selections <<< "mariadb-server-$VERSION mysql-server/root_password password rootpasswd"
 sudo debconf-set-selections <<< "mariadb-server-$VERSION mysql-server/root_password_again password rootpasswd"
 sudo apt-get install -qq mariadb-server
+
+# Set root password to empty string.
+echo "
+USE mysql;
+UPDATE user SET Password = PASSWORD('') where User = 'root';
+FLUSH PRIVILEGES;
+" | mysql -u root -prootpasswd