1
0
mirror of https://github.com/php/php-src.git synced 2026-04-26 01:18:19 +02:00

bring tests up-to-date with 5_1 branch

#few are failing and will stop failing when bugfixes are upmerged from 5_1
This commit is contained in:
Andrey Hristov
2006-01-04 23:04:06 +00:00
parent 9be53ac7a5
commit 94dffc55ac
20 changed files with 218 additions and 16 deletions
+2 -2
View File
@@ -7,9 +7,9 @@ mysqli connect
include "connect.inc";
/*** test mysqli_connect 127.0.0.1 ***/
$link = mysqli_connect($host, $user, $passwd);
$link = mysqli_connect($host, $user, $passwd, "test");
mysqli_select_db($link, "test");
mysqli_query($link, "SET sql_mode=''");
mysqli_query($link,"DROP TABLE IF EXISTS test_bind_result");
mysqli_query($link,"CREATE TABLE test_bind_result(c1 date, c2 time,
+30 -7
View File
@@ -14,16 +14,21 @@ mysqli fetch char/text
mysqli_query($link,"DROP TABLE IF EXISTS test_bind_fetch");
mysqli_query($link,"CREATE TABLE test_bind_fetch(c1 char(10), c2 text)");
mysqli_query($link, "INSERT INTO test_bind_fetch VALUES ('1234567890', 'this is a test')");
mysqli_query($link, "INSERT INTO test_bind_fetch VALUES ('1234567890', 'this is a test0')");
mysqli_query($link, "INSERT INTO test_bind_fetch VALUES ('1234567891', 'this is a test1')");
mysqli_query($link, "INSERT INTO test_bind_fetch VALUES ('1234567892', 'this is a test2')");
mysqli_query($link, "INSERT INTO test_bind_fetch VALUES ('1234567893', 'this is a test3')");
$stmt = mysqli_prepare($link, "SELECT * FROM test_bind_fetch");
$stmt = mysqli_prepare($link, "SELECT * FROM test_bind_fetch ORDER BY c1");
mysqli_bind_result($stmt, $c1, $c2);
mysqli_execute($stmt);
mysqli_fetch($stmt);
$i=4;
while ($i--) {
mysqli_fetch($stmt);
$test = array($c1,$c2);
var_dump($test);
}
$test = array($c1,$c2);
var_dump($test);
mysqli_stmt_close($stmt);
mysqli_close($link);
@@ -33,5 +38,23 @@ array(2) {
[0]=>
string(10) "1234567890"
[1]=>
string(14) "this is a test"
string(15) "this is a test0"
}
array(2) {
[0]=>
string(10) "1234567891"
[1]=>
string(15) "this is a test1"
}
array(2) {
[0]=>
string(10) "1234567892"
[1]=>
string(15) "this is a test2"
}
array(2) {
[0]=>
string(10) "1234567893"
[1]=>
string(15) "this is a test3"
}
+1
View File
@@ -10,6 +10,7 @@ mysqli fetch long values
$link = mysqli_connect($host, $user, $passwd);
mysqli_select_db($link, "test");
mysqli_query($link, "SET sql_mode=''");
mysqli_query($link,"DROP TABLE IF EXISTS test_bind_fetch");
mysqli_query($link,"CREATE TABLE test_bind_fetch(c1 int unsigned,
+1
View File
@@ -10,6 +10,7 @@ mysqli fetch short values
$link = mysqli_connect($host, $user, $passwd);
mysqli_select_db($link, "test");
mysqli_query($link, "SET sql_mode=''");
mysqli_query($link,"DROP TABLE IF EXISTS test_bind_fetch");
mysqli_query($link,"CREATE TABLE test_bind_fetch(c1 smallint unsigned,
+1
View File
@@ -10,6 +10,7 @@ mysqli fetch tinyint values
$link = mysqli_connect($host, $user, $passwd);
mysqli_select_db($link, "test");
mysqli_query($link, "SET sql_mode=''");
mysqli_query($link,"DROP TABLE IF EXISTS test_bind_fetch");
mysqli_query($link,"CREATE TABLE test_bind_fetch(c1 tinyint,
+22 -2
View File
@@ -1,5 +1,5 @@
--TEST--
mysqli fetch bigint values
mysqli fetch bigint values (ok to fail with 4.1.x)
--SKIPIF--
<?php
if (PHP_INT_SIZE == 8) {
@@ -16,6 +16,7 @@ mysqli fetch bigint values
$link = mysqli_connect($host, $user, $passwd);
mysqli_select_db($link, "test");
mysqli_query($link, "SET sql_mode=''");
mysqli_query($link,"DROP TABLE IF EXISTS test_bind_fetch");
mysqli_query($link,"CREATE TABLE test_bind_fetch(c1 bigint default 5,
@@ -38,8 +39,25 @@ mysqli fetch bigint values
var_dump($test);
mysqli_stmt_close($stmt);
mysqli_query($link,"DROP TABLE IF EXISTS test_bind_fetch_uint");
mysqli_query($link,"CREATE TABLE test_bind_fetch_uint(c1 integer unsigned, c2 integer unsigned)");
mysqli_query($link, "INSERT INTO test_bind_fetch_uint (c1,c2) VALUES (20123456, 3123456789)");
$stmt = mysqli_prepare($link, "SELECT * FROM test_bind_fetch_uint");
mysqli_bind_result($stmt, $c1, $c2);
mysqli_execute($stmt);
$rc = mysqli_fetch($stmt);
echo $c1, "\n", $c2, "\n";
mysqli_stmt_close($stmt);
mysqli_close($link);
?>
--EXPECT--
array(7) {
[0]=>
@@ -53,7 +71,9 @@ array(7) {
[4]=>
int(0)
[5]=>
string(13) "-333333333333"
int(0)
[6]=>
int(100)
}
20123456
3123456789
+1
View File
@@ -12,6 +12,7 @@ precision=12
$link = mysqli_connect($host, $user, $passwd);
mysqli_select_db($link, "test");
mysqli_query($link, "SET sql_mode=''");
mysqli_query($link,"DROP TABLE IF EXISTS test_bind_fetch");
+10 -5
View File
@@ -25,7 +25,7 @@ mysqli fetch mixed / mysql_query
$stmt = mysqli_prepare($link, "SELECT * FROM test_bind_result");
$c = array(0,0,0,0,0,0,0,0);
mysqli_bind_result($stmt, $c[0], $c[1], $c[2], $c[3], $c[4], $c[5], $c[6], $c[7]);
$b_res= mysqli_bind_result($stmt, $c[0], $c[1], $c[2], $c[3], $c[4], $c[5], $c[6], $c[7]);
mysqli_execute($stmt);
mysqli_fetch($stmt);
mysqli_fetch($stmt);
@@ -38,10 +38,15 @@ mysqli fetch mixed / mysql_query
$test = "";
for ($i=0; $i < count($c); $i++)
$test .= ($c[0] == $d[0]) ? "1" : "0";
var_dump($test);
if ($test == "11111111")
echo "ok";
else if ($b_res == FALSE && mysqli_get_client_version() > 40100 && mysqli_get_client_version() < 50000 &&
mysqli_get_server_version($link) > 50000)
echo "error (4.1 library with 5.x server)";
else
echo "error";
mysqli_close($link);
?>
--EXPECT--
string(8) "11111111"
--EXPECTF--
ok
+1
View File
@@ -10,6 +10,7 @@ mysqli bind_param/bind_result date
$link = mysqli_connect($host, $user, $passwd);
mysqli_select_db($link, "test");
mysqli_query($link, "SET sql_mode=''");
mysqli_query($link,"DROP TABLE IF EXISTS test_bind_result");
mysqli_query($link,"CREATE TABLE test_bind_result(c1 date, c2 time,
+1
View File
@@ -10,6 +10,7 @@ mysqli bind_param/bind_prepare fetch long values
$link = mysqli_connect($host, $user, $passwd);
mysqli_select_db($link, "test");
mysqli_query($link, "SET sql_mode=''");
mysqli_query($link,"DROP TABLE IF EXISTS test_bind_fetch");
mysqli_query($link,"CREATE TABLE test_bind_fetch(c1 int unsigned,
+1
View File
@@ -10,6 +10,7 @@ mysqli bind_param/bind_result short values
$link = mysqli_connect($host, $user, $passwd);
mysqli_select_db($link, "test");
mysqli_query($link, "SET sql_mode=''");
mysqli_query($link,"DROP TABLE IF EXISTS test_bind_fetch");
mysqli_query($link,"CREATE TABLE test_bind_fetch(c1 smallint unsigned,
+1
View File
@@ -10,6 +10,7 @@ mysqli bind_param/bind_result tinyint values
$link = mysqli_connect($host, $user, $passwd);
mysqli_select_db($link, "test");
mysqli_query($link, "SET sql_mode=''");
mysqli_query($link,"DROP TABLE IF EXISTS test_bind_fetch");
mysqli_query($link,"CREATE TABLE test_bind_fetch(c1 tinyint,
+1
View File
@@ -10,6 +10,7 @@ mysqli bind_param/bind_result with send_long_data
$link = mysqli_connect($host, $user, $passwd);
mysqli_select_db($link, "test");
mysqli_query($link, "SET sql_mode=''");
mysqli_query($link,"DROP TABLE IF EXISTS test_bind_fetch");
mysqli_query($link,"CREATE TABLE test_bind_fetch(c1 varchar(10), c2 text)");
+1
View File
@@ -10,6 +10,7 @@ mysqli_fetch_object
$link = mysqli_connect($host, $user, $passwd);
mysqli_select_db($link, "test");
mysqli_query($link, "SET sql_mode=''");
mysqli_query($link,"DROP TABLE IF EXISTS test_bind_fetch");
mysqli_query($link,"CREATE TABLE test_bind_fetch(c1 smallint unsigned,
+1
View File
@@ -16,6 +16,7 @@ mysqli_fetch_object with classes
$link = mysqli_connect($host, $user, $passwd);
mysqli_select_db($link, "test");
mysqli_query($link, "SET sql_mode=''");
mysqli_query($link,"DROP TABLE IF EXISTS test_fetch");
mysqli_query($link,"CREATE TABLE test_fetch(c1 smallint unsigned,
+1
View File
@@ -12,6 +12,7 @@ if (!function_exists('mysqli_set_charset')) {
include "connect.inc";
$mysql = new mysqli($host, $user, $passwd);
mysqli_query($mysql, "SET sql_mode=''");
$esc_str = chr(0xbf) . chr(0x5c);
+1
View File
@@ -9,6 +9,7 @@ Bug #32405
/*** test mysqli_connect 127.0.0.1 ***/
$link = mysqli_connect($host, $user, $passwd);
mysqli_select_db($link, "test");
mysqli_query($link, "SET sql_mode=''");
/* two fields are needed. the problem does not occur with 1 field only selected. */
$link->query("CREATE TABLE test_users(user_id int(10) unsigned NOT NULL auto_increment, login varchar(50) default '', PRIMARY KEY (user_id))");
+68
View File
@@ -0,0 +1,68 @@
--TEST--
bug #35103 Bad handling of unsigned bigint
--SKIPIF--
<?php require_once('skipif.inc'); ?>
--FILE--
<?php
$drop = <<<EOSQL
DROP TABLE test_bint;
DROP TABLE test_buint;
EOSQL;
include "connect.inc";
$mysql = new mysqli($host, $user, $passwd, "test");
$mysql->query("DROP TABLE IF EXISTS test_bint");
$mysql->query("CREATE TABLE test_bint (a bigint(20) default NULL) ENGINE=MYISAM");
$mysql->query("INSERT INTO test_bint VALUES (9223372036854775807),(-9223372036854775808),(-2147483648),(-2147483649),(-2147483647),(2147483647),(2147483648),(2147483649)");
$mysql->query("DROP TABLE IF EXISTS test_buint");
$mysql->query("CREATE TABLE test_buint (a bigint(20) unsigned default NULL)");
$mysql->query("INSERT INTO test_buint VALUES (18446744073709551615),(9223372036854775807),(9223372036854775808),(2147483647),(2147483649),(4294967295)");
$stmt = $mysql->prepare("SELECT a FROM test_bint ORDER BY a");
$stmt->bind_result($v);
$stmt->execute();
$i=0;
echo "BIG INT SIGNED, TEST\n";
while ($i++ < 8) {
$stmt->fetch();
echo $v, "\n";
}
$stmt->close();
echo str_repeat("-", 20), "\n";
$stmt = $mysql->prepare("SELECT a FROM test_buint ORDER BY a");
$stmt->bind_result($v2);
$stmt->execute();
$j=0;
echo "BIG INT UNSIGNED TEST\n";
while ($j++ < 6) {
$stmt->fetch();
echo $v2, "\n";
}
$stmt->close();
$mysql->multi_query($drop);
$mysql->close();
?>
--EXPECT--
BIG INT SIGNED, TEST
-9223372036854775808
-2147483649
-2147483648
-2147483647
2147483647
2147483648
2147483649
9223372036854775807
--------------------
BIG INT UNSIGNED TEST
2147483647
2147483649
4294967295
9223372036854775807
9223372036854775808
18446744073709551615
+29
View File
@@ -0,0 +1,29 @@
--TEST--
Bug #35517 mysqli_stmt_fetch returns NULL
--SKIPIF--
<?php require_once('skipif.inc'); ?>
--FILE--
<?php
include "connect.inc";
$mysql = new mysqli($host, $user, $passwd, "test");
$mysql->query("CREATE TABLE temp (id INT UNSIGNED NOT NULL)");
$mysql->query("INSERT INTO temp (id) VALUES (3000000897),(3800001532),(3900002281),(3100059612)");
$stmt = $mysql->prepare("SELECT id FROM temp");
$stmt->execute();
$stmt->bind_result($id);
while ($stmt->fetch()) {
var_dump($id);
}
$stmt->close();
$mysql->query("DROP TABLE temp");
$mysql->close();
?>
--EXPECTF--
string(10) "3000000897"
string(10) "3800001532"
string(10) "3900002281"
string(10) "3100059612"
+44
View File
@@ -0,0 +1,44 @@
--TEST--
bug #35759 : mysqli_stmt_bind_result() makes huge allocation when column empty
--SKIPIF--
<?php require_once('skipif.inc'); ?>
--FILE--
<?php
$sql=<<<EOSQL
CREATE TABLE blobby (
a1 MEDIUMBLOB NOT NULL,
EOSQL;
include "connect.inc";
$col_num= 1000;
$mysql = new mysqli($host, $user, $passwd, "test");
$mysql->query("DROP TABLE IF EXISTS blobby");
$create = "CREATE TABLE blobby (a0 MEDIUMBLOB NOT NULL DEFAULT ''";
$i= 0;
while (++$i < $col_num) {
$create .= ", a$i MEDIUMBLOB NOT NULL DEFAULT ''";
}
$create .= ")";
$mysql->query($create);
$mysql->query("INSERT INTO blobby (a0) VALUES ('')");
$stmt = $mysql->prepare("SELECT * FROM blobby");
$stmt->execute();
$stmt->store_result();
$params= array_pad(array(), $col_num, "");
call_user_func_array(array($stmt, "bind_result"), $params);
$stmt->fetch();
$stmt->close();
$mysql->query("DROP TABLE blobby");
$mysql->close();
echo "OK\n";
?>
--EXPECT--
OK