uw Mon Jul 23 12:34:09 2007 UTC
Added files:
/php-src/ext/mysqli/tests mysqli_driver_unclonable.phpt
mysqli_result_unclonable.phpt
mysqli_stmt_unclonable.phpt
mysqli_unclonable.phpt
mysqli_warning_unclonable.phpt
Log:
Tests which verify that you really cannot clone any of the mysqli
objects. Technically it might be possible to tweak ext/mysqli and make
the objects cloneable - tough, we haven't checked in depth.
So, if one is interested, raise a discussion.
http://cvs.php.net/viewvc.cgi/php-src/ext/mysqli/tests/mysqli_driver_unclonable.phpt?view=markup&rev=1.1
Index: php-src/ext/mysqli/tests/mysqli_driver_unclonable.phpt
+++ php-src/ext/mysqli/tests/mysqli_driver_unclonable.phpt
--TEST--
Trying to clone mysqli_driver object
--SKIPIF--
<?php require_once('skipif.inc'); ?>
<?php require_once('skipifemb.inc'); ?>
--FILE--
<?php
$driver = new mysqli_driver;
$driver_clone = clone $driver;
print "done!";
?>
--EXPECTF--
Fatal error: Trying to clone an uncloneable object of class mysqli_driver in %s
on line %d
http://cvs.php.net/viewvc.cgi/php-src/ext/mysqli/tests/mysqli_result_unclonable.phpt?view=markup&rev=1.1
Index: php-src/ext/mysqli/tests/mysqli_result_unclonable.phpt
+++ php-src/ext/mysqli/tests/mysqli_result_unclonable.phpt
--TEST--
Trying to clone mysqli_result object
--SKIPIF--
<?php require_once('skipif.inc'); ?>
<?php require_once('skipifemb.inc'); ?>
--FILE--
<?php
include "connect.inc";
if (!$link = mysqli_connect($host, $user, $passwd, $db, $port, $socket))
printf("[001] Cannot connect to the server using host=%s,
user=%s, passwd=***, dbname=%s, port=%s, socket=%s\n",
$host, $user, $db, $port, $socket);
if (!($res = mysqli_query($link, "SELECT 'good' AS morning")))
printf("[002] [%d] %s\n", mysqli_errno($link),
mysqli_error($link));
$res_clone = clone $res;
print "done!";
?>
--EXPECTF--
Fatal error: Trying to clone an uncloneable object of class mysqli_result in %s
on line %d
http://cvs.php.net/viewvc.cgi/php-src/ext/mysqli/tests/mysqli_stmt_unclonable.phpt?view=markup&rev=1.1
Index: php-src/ext/mysqli/tests/mysqli_stmt_unclonable.phpt
+++ php-src/ext/mysqli/tests/mysqli_stmt_unclonable.phpt
--TEST--
Trying to clone mysqli_stmt object
--SKIPIF--
<?php require_once('skipif.inc'); ?>
<?php require_once('skipifemb.inc'); ?>
--FILE--
<?php
include "connect.inc";
if (!$link = mysqli_connect($host, $user, $passwd, $db, $port, $socket))
printf("[001] Cannot connect to the server using host=%s,
user=%s, passwd=***, dbname=%s, port=%s, socket=%s\n",
$host, $user, $db, $port, $socket);
if (!$stmt = mysqli_stmt_init($link))
printf("[002] [%d] %s\n", mysqli_errno($link),
mysqli_error($link));
/* no, still bails out */
$stmt_clone = clone $stmt;
print "done!";
?>
--EXPECTF--
Fatal error: Trying to clone an uncloneable object of class mysqli_stmt in %s
on line %d
http://cvs.php.net/viewvc.cgi/php-src/ext/mysqli/tests/mysqli_unclonable.phpt?view=markup&rev=1.1
Index: php-src/ext/mysqli/tests/mysqli_unclonable.phpt
+++ php-src/ext/mysqli/tests/mysqli_unclonable.phpt
--TEST--
Trying to clone mysqli object
--SKIPIF--
<?php require_once('skipif.inc'); ?>
<?php require_once('skipifemb.inc'); ?>
--FILE--
<?php
include "connect.inc";
if (!$link = mysqli_connect($host, $user, $passwd, $db, $port, $socket))
printf("[001] Cannot connect to the server using host=%s,
user=%s, passwd=***, dbname=%s, port=%s, socket=%s\n",
$host, $user, $db, $port, $socket);
$link_clone = clone $link;
mysqli_close($link);
print "done!";
?>
--EXPECTF--
Fatal error: Trying to clone an uncloneable object of class mysqli in %s on
line %d
http://cvs.php.net/viewvc.cgi/php-src/ext/mysqli/tests/mysqli_warning_unclonable.phpt?view=markup&rev=1.1
Index: php-src/ext/mysqli/tests/mysqli_warning_unclonable.phpt
+++ php-src/ext/mysqli/tests/mysqli_warning_unclonable.phpt
--TEST--
Trying to clone mysqli_warning object
--SKIPIF--
<?php
require_once('skipif.inc');
require_once('skipifemb.inc');
require_once('connect.inc');
if (!$TEST_EXPERIMENTAL)
die("skip - experimental (= unsupported) feature");
?>
--FILE--
<?php
include "connect.inc";
if (!$link = mysqli_connect($host, $user, $passwd, $db, $port, $socket))
printf("[001] Cannot connect to the server using host=%s,
user=%s, passwd=***, dbname=%s, port=%s, socket=%s\n",
$host, $user, $db, $port, $socket);
if (!mysqli_query($link, "DROP TABLE IF EXISTS test"))
printf("[002] [%d] %s\n", mysqli_errno($link),
mysqli_error($link));
if (!mysqli_query($link, "CREATE TABLE test (id SMALLINT)"))
printf("[003] [%d] %s\n", mysqli_errno($link),
mysqli_error($link));
if (!mysqli_query($link, "INSERT INTO test (id) VALUES (1000000)"))
printf("[004] [%d] %s\n", mysqli_errno($link),
mysqli_error($link));
if (!is_object($warning = mysqli_get_warnings($link)) ||
'mysqli_warning' != get_class($warning)) {
printf("[005] Expecting object/mysqli_warning, got %s/%s\n",
gettype($tmp), (is_object($tmp) ? var_dump($tmp, true) : $tmp));
}
$warning_clone = clone $warning;
print "done!";
?>
--EXPECTF--
Fatal error: Trying to clone an uncloneable object of class mysqli_warning in
%s on line %d
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php