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_mysql | uwendel | 10 Jan |