Author: uwendel
Date: 2008-04-14 14:13:13 +0200 (Mon, 14 Apr 2008)
New Revision: 1439
Added:
trunk/tests/ext/pdo_mysql/pdo_mysql___construct_options_libmysql.phpt
Modified:
trunk/tests/ext/pdo_mysql/pdo_mysql___construct_options.phpt
trunk/tests/ext/pdo_mysql/pdo_mysql_attr_init_command.phpt
Log:
Fixing test - some options are not supported by mysqlnd
Modified: trunk/tests/ext/pdo_mysql/pdo_mysql___construct_options.phpt
===================================================================
--- trunk/tests/ext/pdo_mysql/pdo_mysql___construct_options.phpt 2008-04-14 11:41:47 UTC
(rev 1438)
+++ trunk/tests/ext/pdo_mysql/pdo_mysql___construct_options.phpt 2008-04-14 12:13:13 UTC
(rev 1439)
@@ -45,15 +45,9 @@
PDO::MYSQL_ATTR_USE_BUFFERED_QUERY => 'PDO::MYSQL_ATTR_USE_BUFFERED_QUERY',
PDO::MYSQL_ATTR_LOCAL_INFILE => 'PDO::MYSQL_ATTR_LOCAL_INFILE',
- PDO::MYSQL_ATTR_INIT_COMMAND => 'PDO::MYSQL_ATTR_INIT_COMMAND',
- PDO::MYSQL_ATTR_READ_DEFAULT_FILE => 'PDO::MYSQL_ATTR_READ_DEFAULT_FILE',
- PDO::MYSQL_ATTR_READ_DEFAULT_GROUP => 'PDO::MYSQL_ATTR_READ_DEFAULT_GROUP',
PDO::MYSQL_ATTR_DIRECT_QUERY => 'PDO::MYSQL_ATTR_DIRECT_QUERY',
);
- if (!MySQLPDOTest::isPDOMySQLnd())
- $valid_options[PDO::MYSQL_ATTR_MAX_BUFFER_SIZE] = 'PDO::MYSQL_ATTR_MAX_BUFFER_SIZE';
-
$defaults = array(
PDO::ATTR_PERSISTENT => false,
PDO::ATTR_AUTOCOMMIT => 1,
@@ -64,16 +58,9 @@
/* TODO getAttribute() does not handle it */
PDO::MYSQL_ATTR_LOCAL_INFILE => false,
/* TODO getAttribute() does not handle it */
- PDO::MYSQL_ATTR_INIT_COMMAND => '',
- /* TODO getAttribute() does not handle it */
- PDO::MYSQL_ATTR_READ_DEFAULT_FILE => false,
- PDO::MYSQL_ATTR_READ_DEFAULT_GROUP => false,
PDO::MYSQL_ATTR_DIRECT_QUERY => 1,
);
- if (!MySQLPDOTest::isPDOMySQLnd())
- $defaults[PDO::MYSQL_ATTR_MAX_BUFFER_SIZE] = 1048576;
-
if (NULL !== ($db = @new PDO($dsn, $user, $pass, 'wrong type')))
printf("[001] Expecting NULL got %s/%s\n", gettype($db), $db);
@@ -153,32 +140,6 @@
set_option_and_check(21, PDO::MYSQL_ATTR_LOCAL_INFILE, true,
'PDO::MYSQL_ATTR_LOCAL_INFILE');
set_option_and_check(22, PDO::MYSQL_ATTR_LOCAL_INFILE, false,
'PDO::MYSQL_ATTR_LOCAL_INFILE');
- set_option_and_check(23, PDO::MYSQL_ATTR_INIT_COMMAND, 'SET @a=1',
'PDO::MYSQL_ATTR_INIT_COMMAND');
- set_option_and_check(24, PDO::MYSQL_ATTR_INIT_COMMAND, '',
'PDO::MYSQL_ATTR_INIT_COMMAND');
- set_option_and_check(25, PDO::MYSQL_ATTR_INIT_COMMAND, 'INSERT INTO
nonexistent(invalid) VALUES (1)', 'PDO::MYSQL_ATTR_INIT_COMMAND');
- /*
- TODO - AFAIK reconnect flag cannot be set
- Command to execute when connecting to the MySQL server. Will automatically be
re-executed when reconnecting.
- */
-
- set_option_and_check(26, PDO::MYSQL_ATTR_READ_DEFAULT_FILE, true,
'PDO::MYSQL_ATTR_READ_DEFAULT_FILE');
- set_option_and_check(27, PDO::MYSQL_ATTR_READ_DEFAULT_FILE, false,
'PDO::MYSQL_ATTR_READ_DEFAULT_FILE');
- /* TODO
- Read options from the named option file instead of from my.cnf. --> mixed string/int
- set_option_and_check(28, PDO::MYSQL_ATTR_READ_DEFAULT_FILE, 'doihavethis.cnf',
'PDO::MYSQL_ATTR_READ_DEFAULT_FILE'); */
-
- set_option_and_check(28, PDO::MYSQL_ATTR_READ_DEFAULT_GROUP, true,
'PDO::MYSQL_ATTR_READ_DEFAULT_GROUP');
- set_option_and_check(29, PDO::MYSQL_ATTR_READ_DEFAULT_GROUP, false,
'PDO::MYSQL_ATTR_READ_DEFAULT_GROUP');
- /* TODO
- Read options from the named group from my.cnf or the file specified with
MYSQL_READ_DEFAULT_FILE. -> miyed string/int
- Files without the group
- */
- if (!MySQLPDOTest::isPDOMySQLnd()) {
- set_option_and_check(30, PDO::MYSQL_ATTR_MAX_BUFFER_SIZE, -1,
'PDO::MYSQL_ATTR_MAX_BUFFER_SIZE');
- set_option_and_check(31, PDO::MYSQL_ATTR_MAX_BUFFER_SIZE, PHP_INT_MAX,
'PDO::MYSQL_ATTR_MAX_BUFFER_SIZE');
- set_option_and_check(32, PDO::MYSQL_ATTR_MAX_BUFFER_SIZE, 1,
'PDO::MYSQL_ATTR_MAX_BUFFER_SIZE');
- }
-
set_option_and_check(33, PDO::MYSQL_ATTR_DIRECT_QUERY, 1,
'PDO::MYSQL_ATTR_DIRECT_QUERY');
set_option_and_check(34, PDO::MYSQL_ATTR_DIRECT_QUERY, 0,
'PDO::MYSQL_ATTR_DIRECT_QUERY');
@@ -191,15 +152,10 @@
print "done!";
--BUGFREE_EXPECTF--
-[024] SQLSTATE[42000] [1065] Query was empty
-[025] SQLSTATE[42S02] [1146] Table '%s' doesn't exist
-[030] Negative buffer size should bail
-[032] 1 is not a sensible buffer size as well
done!
--EXPECTF--
[003] [TODO][CHANGEREQUEST] Please, lets not ignore invalid options and bail out!
[003a] Expecting default value for 'PDO::ATTR_EMULATE_PREPARES' of '1'/integer,
getAttribute() reports setting ''/boolean
-[003a] Expecting default value for 'PDO::MYSQL_ATTR_INIT_COMMAND' of ''/string,
getAttribute() reports setting ''/boolean
Warning: PDO::getAttribute(): SQLSTATE[IM001]: Driver does not support this function:
driver does not support that attribute in %s on line %d
[010] [TODO][CHANGEREQUEST] ATTR_EMULATE_PREPARES should be on
@@ -213,9 +169,4 @@
Warning: PDO::getAttribute(): SQLSTATE[IM001]: Driver does not support this function:
driver does not support that attribute in %s on line %d
[018] PDO::MYSQL_ATTR_DIRECT_QUERY should be off
[021] Execting '1'/boolean got ''/boolean' for options 'PDO::MYSQL_ATTR_LOCAL_INFILE'
-[023] Execting 'SET @a=1'/string got ''/boolean' for options
'PDO::MYSQL_ATTR_INIT_COMMAND'
-[024] SQLSTATE[42000] [1065] Query was empty
-[025] SQLSTATE[42S02] [1146] Table 'phptest.nonexistent' doesn't exist
-[026] Execting '1'/boolean got ''/boolean' for options
'PDO::MYSQL_ATTR_READ_DEFAULT_FILE'
-[028] Execting '1'/boolean got ''/boolean' for options
'PDO::MYSQL_ATTR_READ_DEFAULT_GROUP'
done!
\ No newline at end of file
Added: trunk/tests/ext/pdo_mysql/pdo_mysql___construct_options_libmysql.phpt
===================================================================
--- trunk/tests/ext/pdo_mysql/pdo_mysql___construct_options_libmysql.phpt
(rev 0)
+++ trunk/tests/ext/pdo_mysql/pdo_mysql___construct_options_libmysql.phpt 2008-04-14
12:13:13 UTC (rev 1439)
@@ -0,0 +1,94 @@
+--TEST--
+MySQL PDO->__construct(), libmysql only options
+--SKIPIF--
+<?php
+require_once('skipif.inc');
+require_once('mysql_pdo_test.inc');
+if (MySQLPDOTest::isPDOMySQLnd())
+ die("skip libmysql only options")
+?>
+--FILE--
+<?php
+ require_once('mysql_pdo_test.inc');
+
+ function set_option_and_check($offset, $option, $value, $option_desc) {
+
+ $dsn = MySQLPDOTest::getDSN();
+ $user = PDO_MYSQL_TEST_USER;
+ $pass = PDO_MYSQL_TEST_PASS;
+
+ try {
+ $db = new PDO($dsn, $user, $pass, array($option => $value));
+ if (!is_object($db) || ($value !== ($tmp = @$db->getAttribute($option))))
+ printf("[%03d] Execting '%s'/%s got '%s'/%s' for options '%s'\n",
+ $offset,
+ $value, gettype($value),
+ $tmp, gettype($tmp),
+ $option_desc);
+ } catch (PDOException $e) {
+ printf("[%03d] %s\n", $offset, $e->getMessage());
+ }
+
+ }
+
+ try {
+
+ $dsn = MySQLPDOTest::getDSN();
+ $user = PDO_MYSQL_TEST_USER;
+ $pass = PDO_MYSQL_TEST_PASS;
+
+ $valid_options = array();
+ $valid_options[PDO::MYSQL_ATTR_MAX_BUFFER_SIZE] = 'PDO::MYSQL_ATTR_MAX_BUFFER_SIZE';
+ $valid_options[PDO::MYSQL_ATTR_INIT_COMMAND] = 'PDO::MYSQL_ATTR_INIT_COMMAND';
+ $valid_options[PDO::MYSQL_ATTR_READ_DEFAULT_FILE] =
'PDO::MYSQL_ATTR_READ_DEFAULT_FILE';
+ $valid_options[PDO::MYSQL_ATTR_READ_DEFAULT_GROUP] =
'PDO::MYSQL_ATTR_READ_DEFAULT_GROUP';
+
+ $defaults[PDO::MYSQL_ATTR_MAX_BUFFER_SIZE] = 1048576;
+ /* TODO getAttribute() does not handle it */
+ $defaults[PDO::MYSQL_ATTR_INIT_COMMAND] = '';
+ $defaults[PDO::MYSQL_ATTR_READ_DEFAULT_FILE] = false;
+ $defaults[PDO::MYSQL_ATTR_READ_DEFAULT_GROUP] = false;
+
+ $db = new PDO($dsn, $user, $pass);
+ foreach ($valid_options as $option => $name) {
+ /* TODO getAttribute() is pretty poor in supporting the options, suppress errors */
+ $tmp = @$db->getAttribute($option);
+ if ($tmp !== $defaults[$option])
+ printf("[001] Expecting default value for '%s' of '%s'/%s, getAttribute() reports
setting '%s'/%s\n",
+ $name, $defaults[$option], gettype($defaults[$option]),
+ $tmp, gettype($tmp));
+ }
+
+ set_option_and_check(23, PDO::MYSQL_ATTR_INIT_COMMAND, 'SET @a=1',
'PDO::MYSQL_ATTR_INIT_COMMAND');
+ set_option_and_check(24, PDO::MYSQL_ATTR_INIT_COMMAND, '',
'PDO::MYSQL_ATTR_INIT_COMMAND');
+ set_option_and_check(25, PDO::MYSQL_ATTR_INIT_COMMAND, 'INSERT INTO
nonexistent(invalid) VALUES (1)', 'PDO::MYSQL_ATTR_INIT_COMMAND');
+
+ set_option_and_check(26, PDO::MYSQL_ATTR_READ_DEFAULT_FILE, true,
'PDO::MYSQL_ATTR_READ_DEFAULT_FILE');
+ set_option_and_check(27, PDO::MYSQL_ATTR_READ_DEFAULT_FILE, false,
'PDO::MYSQL_ATTR_READ_DEFAULT_FILE');
+
+ set_option_and_check(30, PDO::MYSQL_ATTR_MAX_BUFFER_SIZE, -1,
'PDO::MYSQL_ATTR_MAX_BUFFER_SIZE');
+ set_option_and_check(31, PDO::MYSQL_ATTR_MAX_BUFFER_SIZE, PHP_INT_MAX,
'PDO::MYSQL_ATTR_MAX_BUFFER_SIZE');
+ set_option_and_check(32, PDO::MYSQL_ATTR_MAX_BUFFER_SIZE, 1,
'PDO::MYSQL_ATTR_MAX_BUFFER_SIZE');
+
+
+ } 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!";
+--BUGFREE_EXPECTF--
+[024] SQLSTATE[42000] [1065] Query was empty
+[025] SQLSTATE[42S02] [1146] Table '%s' doesn't exist
+[030] Negative buffer size should bail
+[032] 1 is not a sensible buffer size as well
+done!
+--EXPECTF--
+[001] Expecting default value for 'PDO::MYSQL_ATTR_INIT_COMMAND' of ''/string,
getAttribute() reports setting ''/boolean
+[023] Execting 'SET @a=1'/string got ''/boolean' for options
'PDO::MYSQL_ATTR_INIT_COMMAND'
+[024] SQLSTATE[42000] [1065] Query was empty
+[025] SQLSTATE[42S02] [1146] Table 'phptest.nonexistent' doesn't exist
+[026] Execting '1'/boolean got ''/boolean' for options
'PDO::MYSQL_ATTR_READ_DEFAULT_FILE'
+done!
\ No newline at end of file
Modified: trunk/tests/ext/pdo_mysql/pdo_mysql_attr_init_command.phpt
===================================================================
--- trunk/tests/ext/pdo_mysql/pdo_mysql_attr_init_command.phpt 2008-04-14 11:41:47 UTC
(rev 1438)
+++ trunk/tests/ext/pdo_mysql/pdo_mysql_attr_init_command.phpt 2008-04-14 12:13:13 UTC
(rev 1439)
@@ -6,6 +6,8 @@
require_once('mysql_pdo_test.inc');
MySQLPDOTest::skip();
$db = MySQLPDOTest::factory();
+if (MySQLPDOTest::isPDOMySQLnd())
+ die("skip PDO::MYSQL_ATTR_MAX_INIT_COMMAND not supported with mysqlnd");
?>
--INI--
error_reporting=E_ALL
| Thread |
|---|
| • PHP mysqlnd svn commit: r1439 - trunk/tests/ext/pdo_mysql | uwendel | 14 Apr |