Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
D
doctrine-dbal
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Tomáš Trávníček
doctrine-dbal
Commits
1f84cc8f
Unverified
Commit
1f84cc8f
authored
Aug 18, 2020
by
Sergei Morozov
Committed by
GitHub
Aug 18, 2020
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #4209 from morozov/issues/4122
Test MySQLi connection via TLS on Travis
parents
47684963
9093b7b8
Changes
9
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
95 additions
and
9 deletions
+95
-9
.travis.yml
.travis.yml
+3
-0
AbstractDriverTest.php
...trine/Tests/DBAL/Functional/Driver/AbstractDriverTest.php
+4
-3
ConnectionTest.php
...ne/Tests/DBAL/Functional/Driver/Mysqli/ConnectionTest.php
+6
-0
DriverTest.php
...ine/Tests/DBAL/Functional/Driver/PDOSqlsrv/DriverTest.php
+6
-0
SchemaManagerFunctionalTestCase.php
...BAL/Functional/Schema/SchemaManagerFunctionalTestCase.php
+4
-3
SqliteSchemaManagerTest.php
.../Tests/DBAL/Functional/Schema/SqliteSchemaManagerTest.php
+4
-3
TestUtil.php
tests/Doctrine/Tests/TestUtil.php
+16
-0
docker-run-mysql-or-mariadb.sh
tests/travis/docker-run-mysql-or-mariadb.sh
+8
-0
mysqli-tls.docker.travis.xml
tests/travis/mysqli-tls.docker.travis.xml
+44
-0
No files found.
.travis.yml
View file @
1f84cc8f
...
...
@@ -185,6 +185,9 @@ jobs:
-
stage
:
Test
php
:
7.4
env
:
DB=mysqli.docker IMAGE=mysql:8.0
-
stage
:
Test
php
:
7.4
env
:
DB=mysqli-tls.docker IMAGE=mysql:8.0 TLS=yes
-
stage
:
Test
php
:
7.4
env
:
DB=mariadb.docker IMAGE=mariadb:10.3
...
...
tests/Doctrine/Tests/DBAL/Functional/Driver/AbstractDriverTest.php
View file @
1f84cc8f
...
...
@@ -28,10 +28,11 @@ abstract class AbstractDriverTest extends DbalFunctionalTestCase
$params
=
$this
->
connection
->
getParams
();
unset
(
$params
[
'dbname'
]);
$user
=
$params
[
'user'
]
??
null
;
$password
=
$params
[
'password'
]
??
null
;
$user
=
$params
[
'user'
]
??
null
;
$password
=
$params
[
'password'
]
??
null
;
$driverOptions
=
$params
[
'driverOptions'
]
??
[];
$connection
=
$this
->
driver
->
connect
(
$params
,
$user
,
$password
);
$connection
=
$this
->
driver
->
connect
(
$params
,
$user
,
$password
,
$driverOptions
);
self
::
assertInstanceOf
(
DriverConnection
::
class
,
$connection
);
}
...
...
tests/Doctrine/Tests/DBAL/Functional/Driver/Mysqli/ConnectionTest.php
View file @
1f84cc8f
...
...
@@ -8,6 +8,8 @@ use Doctrine\DBAL\Driver\Mysqli\MysqliException;
use
Doctrine\Tests\DbalFunctionalTestCase
;
use
Doctrine\Tests\TestUtil
;
use
function
array_merge
;
use
const
MYSQLI_OPT_CONNECT_TIMEOUT
;
/**
...
...
@@ -54,6 +56,10 @@ class ConnectionTest extends DbalFunctionalTestCase
{
$params
=
TestUtil
::
getConnectionParams
();
if
(
isset
(
$params
[
'driverOptions'
]))
{
$driverOptions
=
array_merge
(
$params
[
'driverOptions'
],
$driverOptions
);
}
return
new
MysqliConnection
(
$params
,
$params
[
'user'
]
??
''
,
...
...
tests/Doctrine/Tests/DBAL/Functional/Driver/PDOSqlsrv/DriverTest.php
View file @
1f84cc8f
...
...
@@ -9,6 +9,8 @@ use Doctrine\Tests\DBAL\Functional\Driver\AbstractDriverTest;
use
Doctrine\Tests\TestUtil
;
use
PDO
;
use
function
array_merge
;
/**
* @requires extension pdo_sqlsrv
*/
...
...
@@ -42,6 +44,10 @@ class DriverTest extends AbstractDriverTest
{
$params
=
TestUtil
::
getConnectionParams
();
if
(
isset
(
$params
[
'driverOptions'
]))
{
$driverOptions
=
array_merge
(
$params
[
'driverOptions'
],
$driverOptions
);
}
return
$this
->
connection
->
getDriver
()
->
connect
(
$params
,
$params
[
'user'
]
??
''
,
...
...
tests/Doctrine/Tests/DBAL/Functional/Schema/SchemaManagerFunctionalTestCase.php
View file @
1f84cc8f
...
...
@@ -114,10 +114,11 @@ abstract class SchemaManagerFunctionalTestCase extends DbalFunctionalTestCase
$params
[
'dbname'
]
=
'test_drop_database'
;
}
$user
=
$params
[
'user'
]
??
null
;
$password
=
$params
[
'password'
]
??
null
;
$user
=
$params
[
'user'
]
??
null
;
$password
=
$params
[
'password'
]
??
null
;
$driverOptions
=
$params
[
'driverOptions'
]
??
[];
$connection
=
$this
->
connection
->
getDriver
()
->
connect
(
$params
,
$user
,
$password
);
$connection
=
$this
->
connection
->
getDriver
()
->
connect
(
$params
,
$user
,
$password
,
$driverOptions
);
self
::
assertInstanceOf
(
Connection
::
class
,
$connection
);
...
...
tests/Doctrine/Tests/DBAL/Functional/Schema/SqliteSchemaManagerTest.php
View file @
1f84cc8f
...
...
@@ -43,10 +43,11 @@ class SqliteSchemaManagerTest extends SchemaManagerFunctionalTestCase
$params
=
$this
->
connection
->
getParams
();
$params
[
'dbname'
]
=
'test_drop_database'
;
$user
=
$params
[
'user'
]
??
null
;
$password
=
$params
[
'password'
]
??
null
;
$user
=
$params
[
'user'
]
??
null
;
$password
=
$params
[
'password'
]
??
null
;
$driverOptions
=
$params
[
'driverOptions'
]
??
[];
$connection
=
$this
->
connection
->
getDriver
()
->
connect
(
$params
,
$user
,
$password
);
$connection
=
$this
->
connection
->
getDriver
()
->
connect
(
$params
,
$user
,
$password
,
$driverOptions
);
self
::
assertInstanceOf
(
Connection
::
class
,
$connection
);
...
...
tests/Doctrine/Tests/TestUtil.php
View file @
1f84cc8f
...
...
@@ -8,6 +8,9 @@ use PHPUnit\Framework\Assert;
use
function
explode
;
use
function
extension_loaded
;
use
function
strlen
;
use
function
strpos
;
use
function
substr
;
use
function
unlink
;
/**
...
...
@@ -175,6 +178,11 @@ class TestUtil
'dbname'
,
'port'
,
'server'
,
'ssl_key'
,
'ssl_cert'
,
'ssl_ca'
,
'ssl_capath'
,
'ssl_cipher'
,
'unix_socket'
,
]
as
$parameter
)
{
...
...
@@ -185,6 +193,14 @@ class TestUtil
$parameters
[
$parameter
]
=
$configuration
[
$prefix
.
$parameter
];
}
foreach
(
$configuration
as
$param
=>
$value
)
{
if
(
strpos
(
$param
,
$prefix
.
'driver_option_'
)
!==
0
)
{
continue
;
}
$parameters
[
'driverOptions'
][
substr
(
$param
,
strlen
(
$prefix
.
'driver_option_'
))]
=
$value
;
}
return
$parameters
;
}
...
...
tests/travis/docker-run-mysql-or-mariadb.sh
View file @
1f84cc8f
...
...
@@ -40,3 +40,11 @@ while true; do
;;
esac
done
if
[[
"
$TLS
"
==
"yes"
]]
then
for
file
in
"ca.pem"
"client-cert.pem"
"client-key.pem"
do
docker
cp
"rdbms:/var/lib/mysql/
$file
"
.
done
fi
tests/travis/mysqli-tls.docker.travis.xml
0 → 100644
View file @
1f84cc8f
<?xml version="1.0" encoding="utf-8"?>
<phpunit
xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation=
"../../vendor/phpunit/phpunit/phpunit.xsd"
colors=
"true"
beStrictAboutOutputDuringTests=
"true"
beStrictAboutTodoAnnotatedTests=
"true"
failOnRisky=
"true"
failOnWarning=
"true"
>
<php>
<var
name=
"db_driver"
value=
"mysqli"
/>
<var
name=
"db_host"
value=
"127.0.0.1"
/>
<var
name=
"db_port"
value=
"33306"
/>
<var
name=
"db_ssl_ca"
value=
"ca.pem"
/>
<var
name=
"db_ssl_cert"
value=
"client-cert.pem"
/>
<var
name=
"db_ssl_key"
value=
"client-key.pem"
/>
<!-- Use MYSQLI_CLIENT_SSL_DONT_VERIFY_SERVER_CERT since there's no way to generate a certificate
with a proper common name (CN) on Travis. This flag must be not used in production settings. -->
<var
name=
"db_driver_option_flags"
value=
"64"
/>
<var
name=
"db_user"
value=
"root"
/>
<var
name=
"db_dbname"
value=
"doctrine_tests"
/>
</php>
<testsuites>
<testsuite
name=
"Doctrine DBAL Test Suite"
>
<directory>
../Doctrine/Tests/DBAL
</directory>
</testsuite>
</testsuites>
<filter>
<whitelist>
<directory
suffix=
".php"
>
../../lib/Doctrine
</directory>
</whitelist>
</filter>
<groups>
<exclude>
<group>
performance
</group>
<group>
locking_functional
</group>
</exclude>
</groups>
</phpunit>
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment