com php-src: fork test: ext/pdo_mysql/tests/pdo_mysql__ _construct_uri-win32.phpt ext/pdo_mysql/tests/pdo _mysql___construct_uri.phpt
| From: | Anatol Belski | Date: | Thu, 20 Aug 2015 11:32:29 +0000 |
| Subject: | com php-src: fork test: ext/pdo_mysql/tests/pdo_mysql__ _construct_uri-win32.phpt ext/pdo_mysql/tests/pdo _mysql___construct_uri.phpt | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-88704@lists.php.net to get a copy of this message | ||
Commit: 4ad0714d762bd5dbfa2540e776833eb317f21a1f
Author: Anatol Belski <ab@php.net> Thu, 20 Aug 2015 01:07:57 +0200
Parents: ef7d822c326fce0b657f637f2b5a7aff3b8d1406
Branches: master
Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=4ad0714d762bd5dbfa2540e776833eb317f21a1f
Log:
fork test
Changed paths:
A ext/pdo_mysql/tests/pdo_mysql___construct_uri-win32.phpt
M ext/pdo_mysql/tests/pdo_mysql___construct_uri.phpt
Diff:
diff --git a/ext/pdo_mysql/tests/pdo_mysql___construct_uri-win32.phpt
b/ext/pdo_mysql/tests/pdo_mysql___construct_uri-win32.phpt
new file mode 100644
index 0000000..b4609b1
--- /dev/null
+++ b/ext/pdo_mysql/tests/pdo_mysql___construct_uri-win32.phpt
@@ -0,0 +1,79 @@
+--TEST--
+MySQL PDO->__construct() - URI
+--SKIPIF--
+<?php
+if (substr(PHP_OS, 0, 3) != 'WIN') {
+ die('skip only for Windows');
+}
+require_once(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'skipif.inc');
+require_once(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'mysql_pdo_test.inc');
+MySQLPDOTest::skip();
+?>
+--FILE--
+<?php
+ require_once(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'mysql_pdo_test.inc');
+
+ try {
+
+ if ($tmp = MySQLPDOTest::getTempDir()) {
+
+ $file = $tmp . DIRECTORY_SEPARATOR . 'pdomuri.tst';
+ $dsn = MySQLPDOTest::getDSN();
+ $user = PDO_MYSQL_TEST_USER;
+ $pass = PDO_MYSQL_TEST_PASS;
+ $uri = sprintf('uri:file:%s', $file);
+
+ if ($fp = @fopen($file, 'w')) {
+ // ok, great we can create a file with a DSN in it
+ fwrite($fp, $dsn);
+ fclose($fp);
+ clearstatcache();
+ assert(file_exists($file));
+ try {
+ $db = new PDO($uri, $user, $pass);
+ } catch (PDOException $e) {
+ printf("[002] URI=%s, DSN=%s, File=%s (%d bytes, '%s'), %s\n",
+ $uri, $dsn,
+ $file, filesize($file), file_get_contents($file),
+ $e->getMessage());
+ }
+ unlink($file);
+ }
+
+ if ($fp = @fopen($file, 'w')) {
+ fwrite($fp, sprintf('mysql:dbname=letshopeinvalid;%s%s',
+ chr(0), $dsn));
+ fclose($fp);
+ clearstatcache();
+ assert(file_exists($file));
+ try {
+ $db = new PDO($uri, $user, $pass);
+ } catch (PDOException $e) {
+ printf("[003] URI=%s, DSN=%s, File=%s (%d bytes, '%s'), chr(0) test,
%s\n",
+ $uri, $dsn,
+ $file, filesize($file), file_get_contents($file),
+ $e->getMessage());
+ }
+ unlink($file);
+ }
+
+ }
+
+ /* TODO: safe mode */
+
+ } catch (PDOException $e) {
+ printf("[001] %s, [%s] %s\n",
+ $e->getMessage(),
+ (is_object($db)) ? $db->errorCode() : 'n/a',
+ (is_object($db)) ? implode(' ', $db->errorInfo()) : 'n/a');
+ }
+
+ print "done!";
+?>
+--EXPECTF--
+Warning: PDO::__construct(file:%spdomuri.tst): failed to open stream: Invalid argument in %s on
line %d
+[002] URI=uri:file:%spdomuri..tst, DSN=mysql%sdbname=%s, File=%spdomuri.tst (%d bytes,
'mysql%sdbname=%s'), invalid data source URI
+
+Warning: PDO::__construct(file:%spdomuri.tst): failed to open stream: Invalid argument in %s on
line %d
+[003] URI=uri:file:%spdomuri.tst, DSN=mysql%sdbname=%s, File=%spdomuri.tst (%d bytes,
'mysql%sdbname=letshopeinvalid%s'), chr(0) test, invalid data source URI
+done!
diff --git a/ext/pdo_mysql/tests/pdo_mysql___construct_uri.phpt
b/ext/pdo_mysql/tests/pdo_mysql___construct_uri.phpt
index d5dd3e6..0b1cf3f 100644
--- a/ext/pdo_mysql/tests/pdo_mysql___construct_uri.phpt
+++ b/ext/pdo_mysql/tests/pdo_mysql___construct_uri.phpt
@@ -2,6 +2,9 @@
MySQL PDO->__construct() - URI
--SKIPIF--
<?php
+if (substr(PHP_OS, 0, 3) == 'WIN') {
+ die('skip not for Windows');
+}
require_once(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'skipif.inc');
require_once(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'mysql_pdo_test.inc');
MySQLPDOTest::skip();