List:Commits« Previous MessageNext Message »
From:uwendel Date:January 10 2008 5:02pm
Subject:PHP mysqlnd svn commit: r1207 - trunk/tests/ext/pdo_mysql
View as plain text  
Author: uwendel
Date: 2008-01-10 18:02:55 +0100 (Thu, 10 Jan 2008)
New Revision: 1207

Added:
   trunk/tests/ext/pdo_mysql/pdo_mysql_attr_driver_name.phpt
   trunk/tests/ext/pdo_mysql/pdo_mysql_attr_max_buffer_size.phpt
Log:
Adding one, moving one.


Added: trunk/tests/ext/pdo_mysql/pdo_mysql_attr_driver_name.phpt
===================================================================
--- trunk/tests/ext/pdo_mysql/pdo_mysql_attr_driver_name.phpt	                        (rev
0)
+++ trunk/tests/ext/pdo_mysql/pdo_mysql_attr_driver_name.phpt	2008-01-10 17:02:55 UTC (rev
1207)
@@ -0,0 +1,43 @@
+--TEST--
+PDO::ATTR_DRIVER_NAME
+--SKIPIF--
+<?php
+require_once('skipif.inc');
+require_once('mysql_pdo_test.inc');
+MySQLPDOTest::skip();
+$db = MySQLPDOTest::factory();
+if (false == MySQLPDOTest::detect_transactional_mysql_engine($db))
+	die("skip Transactional engine not found");
+?>
+--FILE--
+<?php
+	require_once('mysql_pdo_test.inc');
+	$db = MySQLPDOTest::factory();
+
+	assert(('' == $db->errorCode()) || ('00000' == $db->errorCode()));
+
+	var_dump($db->getAttribute(PDO::ATTR_DRIVER_NAME));
+
+	if (false !== $db->setAttribute(PDO::ATTR_DRIVER_NAME, 'mydriver'))
+		printf("[001] Wonderful, I can create new PDO drivers!\n");
+
+	$code = $db->errorCode();
+	$info = $db->errorInfo();
+
+	if ($info[0] !== $code)
+	printf("[005] errorCode() returns '%s', errorInfo() returns '%s'\n",
+		$code, $info[0]);
+
+	if ('IM001' !== $code)
+		printf("[006] Expecting error code 'IM001' got '%s'\n", $code);
+	if ('' == $info[1])
+		printf("[007] No driver-specific error code set\n");
+	if ('' == $info[2])
+		printf("[008] No driver-specific error message set\n");
+
+	print "done!";
+--EXPECTF--
+string(5) "mysql"
+
+Warning: [FOR EXAMPLE] [TODO] The PDO attribute xyz is read only
+done!
\ No newline at end of file

Added: trunk/tests/ext/pdo_mysql/pdo_mysql_attr_max_buffer_size.phpt
===================================================================
--- trunk/tests/ext/pdo_mysql/pdo_mysql_attr_max_buffer_size.phpt	                       
(rev 0)
+++ trunk/tests/ext/pdo_mysql/pdo_mysql_attr_max_buffer_size.phpt	2008-01-10 17:02:55 UTC
(rev 1207)
@@ -0,0 +1,67 @@
+--TEST--
+MySQL PDO->__construct(), PDO::MYSQL_ATTR_MAX_BUFFER_SIZE
+--SKIPIF--
+<?php
+require_once('skipif.inc');
+require_once('mysql_pdo_test.inc');
+MySQLPDOTest::skip();
+?>
+--FILE--
+<?php
+	require_once('mysql_pdo_test.inc');
+
+	function try_buffer_size($offset, $buffer_size) {
+
+		try {
+
+			$dsn = MySQLPDOTest::getDSN();
+			$user = PDO_MYSQL_TEST_USER;
+			$pass = PDO_MYSQL_TEST_PASS;
+
+			/* unsigned overflow possible ? */
+			$db = new PDO($dsn, $user, $pass,
+			array(
+				PDO::MYSQL_ATTR_MAX_BUFFER_SIZE => $buffer_size,
+				/* buffer is only relevant with native PS */
+				PDO::MYSQL_ATTR_DIRECT_QUERY => 0,
+				PDO::ATTR_EMULATE_PREPARES => 0,
+			));
+
+			$db->exec('DROP TABLE IF EXISTS test');
+			$db->exec(sprintf('CREATE TABLE test(id INT, val LONGBLOB) ENGINE = %s',
PDO_MYSQL_TEST_ENGINE));
+
+			// 10 * (10 * 1024) = 10 * (10 * 1k) = 100k
+			$db->exec('INSERT INTO test(id, val) VALUES (1, REPEAT("01234567890", 10240))');
+
+			$stmt = $db->prepare('SELECT id, val FROM test');
+			$stmt->execute();
+
+			$id = $val = NULL;
+			$stmt->bindColumn(1, $id);
+			$stmt->bindColumn(2, $val);
+			while ($row = $stmt->fetch(PDO::FETCH_BOUND)) {
+				printf("[%03d] id = %d, val = %s... (length: %d)\n",
+					$offset, $id, substr($val, 0, 10), strlen($val));
+			}
+
+		} catch (PDOException $e) {
+			printf("[%03d] %s, [%s] %s\n",
+				$e->getMessage(),
+				(is_object($db)) ? $db->errorCode() : 'n/a',
+				(is_object($db)) ? implode(' ', $db->errorInfo()) : 'n/a');
+		}
+	}
+
+	try_buffer_size(1, -1);
+	try_buffer_size(2, 1000);
+	try_buffer_size(3, NULL);
+	try_buffer_size(4, 2000);
+
+	print "done!";
+--EXPECTF--
+Warning buffer size of -1 adjusted
+[001] id = 1, val = 0123456789... (length: %d)
+[002] id = 1, val = 0123456789... (length: 1000)
+[003] id = 1, val = 0123456789... (length: %d)
+[004] id = 1, val = 0123456789... (length: 2000)
+done!
\ No newline at end of file

Thread
PHP mysqlnd svn commit: r1207 - trunk/tests/ext/pdo_mysqluwendel10 Jan