[prev in list] [next in list] [prev in thread] [next in thread]
List: pecl-cvs
Subject: [PECL-CVS] =?utf-8?q?svn:_/pecl/mysqlnd=5Fms/trunk/tests/_mysqlnd=5Fms=5Fcharsets=5Fpdo=5Ffail.phpt?
From: Ulf_Wendel <uw () php ! net>
Date: 2013-01-30 16:34:12
Message-ID: svn-uw-1359563652-329374-879945189 () svn ! php ! net
[Download RAW message or body]
uw Wed, 30 Jan 2013 16:34:12 +0000
Revision: http://svn.php.net/viewvc?view=revision&revision=329374
Log:
PDO and invalid charset bug 63886
Bug: https://bugs.php.net/63886 (Assigned) PHP crashes when quoting string with PDO \
and using mysqlnd_ms
Changed paths:
A pecl/mysqlnd_ms/trunk/tests/mysqlnd_ms_charsets_pdo_fail.phpt
Added: pecl/mysqlnd_ms/trunk/tests/mysqlnd_ms_charsets_pdo_fail.phpt
===================================================================
--- pecl/mysqlnd_ms/trunk/tests/mysqlnd_ms_charsets_pdo_fail.phpt \
(rev 0)
+++ pecl/mysqlnd_ms/trunk/tests/mysqlnd_ms_charsets_pdo_fail.phpt 2013-01-30 16:34:12 \
UTC (rev 329374) @@ -0,0 +1,82 @@
+--TEST--
+Charsets, invalid using PDO
+--SKIPIF--
+<?php
+require_once('skipif.inc');
+require_once("connect.inc");
+
+_skipif_check_extensions(array("mysqli"));
+_skipif_connect($master_host_only, $user, $passwd, $db, $master_port, \
$master_socket); +_skipif_connect($slave_host_only, $user, $passwd, $db, $slave_port, \
$slave_socket); +
+$settings = array(
+ "myapp" => array(
+ 'master' => array($master_host),
+ 'slave' => array($slave_host),
+ ),
+);
+if ($error = mst_create_config("test_mysqlnd_ms_charsets_pdo_fail.ini", $settings))
+ die(sprintf("SKIP %s\n", $error));
+
+function test_for_charset($host, $user, $passwd, $db, $port, $socket) {
+ if (!$link = mst_mysqli_connect($host, $user, $passwd, $db, $port, $socket))
+ die(sprintf("skip Cannot connect, [%d] %s", mysqli_connect_errno(), \
mysqli_connect_error())); +
+ if (!($res = mysqli_query($link, 'SELECT version() AS server_version')) ||
+ !($tmp = mysqli_fetch_assoc($res))) {
+ mysqli_close($link);
+ die(sprintf("skip Cannot check server version, [%d] %s\n",
+ mysqli_errno($link), mysqli_error($link)));
+ }
+ mysqli_free_result($res);
+ $version = explode('.', $tmp['server_version']);
+ if (empty($version)) {
+ mysqli_close($link);
+ die(sprintf("skip Cannot check server version, based on '%s'",
+ $tmp['server_version']));
+ }
+
+ if ($version[0] <= 4 && $version[1] < 1) {
+ mysqli_close($link);
+ die(sprintf("skip Requires MySQL Server 4.1+\n"));
+ }
+
+ if (($res = mysqli_query($link, 'SHOW CHARACTER SET LIKE "pleasenot"', \
MYSQLI_STORE_RESULT)) && (mysqli_num_rows($res) == 1)) { + die(sprintf("skip WOW, \
server has charset 'pleasenot'!\n")); + }
+
+ if (!$res = mysqli_query($link, 'SELECT @@character_set_connection AS charset'))
+ die(sprintf("skip Cannot select current charset, [%d] %s\n", $link->errno, \
$link->error)); +
+ if (!$row = mysqli_fetch_assoc($res))
+ die(sprintf("skip Cannot detect current charset, [%d] %s\n", $link->errno, \
$link->error)); +
+ return $row['charset'];
+}
+
+test_for_charset($master_host_only, $user, $passwd, $db, $master_port, \
$master_socket); +test_for_charset($slave_host_only, $user, $passwd, $db, \
$slave_port, $slave_socket); +?>
+--INI--
+mysqlnd_ms.enable=1
+mysqlnd_ms.config_file=test_mysqlnd_ms_charsets_pdo_fail.ini
+--FILE--
+<?php
+ require_once("connect.inc");
+ require_once("util.inc");
+
+ $pdo = new PDO("mysql:host=myapp;dbname=" . $db . ";charset=pleasenot", $user, \
$passwd); +var_dump($pdo->quote("a"));
+ print "done!";
+
+?>
+--CLEAN--
+<?php
+ if (!unlink("test_mysqlnd_ms_charsets_pdo_fail.ini"))
+ printf("[clean] Cannot unlink ini file \
'test_mysqlnd_ms_charsets_pdo_fail.ini'.\n"); +?>
+--XFAIL--
+Bug 63886 is the root cause, ms crash is a follow-up, waiting for mysqlnd fix
+--EXPECTF--
+connect error
+done!
\ No newline at end of file
--
PECL CVS Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic