List:Commits« Previous MessageNext Message »
From:uwendel Date:April 14 2008 12:13pm
Subject:PHP mysqlnd svn commit: r1439 - trunk/tests/ext/pdo_mysql
View as plain text  
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_mysqluwendel14 Apr