diff options
Diffstat (limited to 'ext/mysqli')
-rw-r--r-- | ext/mysqli/tests/010.phpt | 12 | ||||
-rw-r--r-- | ext/mysqli/tests/011.phpt | 4 | ||||
-rw-r--r-- | ext/mysqli/tests/012.phpt | 4 | ||||
-rw-r--r-- | ext/mysqli/tests/bug67839.phpt | 58 | ||||
-rw-r--r-- | ext/mysqli/tests/mysqli_change_user.phpt | 28 | ||||
-rw-r--r-- | ext/mysqli/tests/mysqli_change_user_old.phpt | 10 | ||||
-rw-r--r-- | ext/mysqli/tests/mysqli_change_user_oo.phpt | 7 | ||||
-rw-r--r-- | ext/mysqli/tests/mysqli_real_escape_string_gbk.phpt | 2 | ||||
-rw-r--r-- | ext/mysqli/tests/table.inc | 7 |
9 files changed, 116 insertions, 16 deletions
diff --git a/ext/mysqli/tests/010.phpt b/ext/mysqli/tests/010.phpt index 60ff8eac1..83a43e06b 100644 --- a/ext/mysqli/tests/010.phpt +++ b/ext/mysqli/tests/010.phpt @@ -62,18 +62,18 @@ mysqli_close($link); --EXPECT-- array(7) { [0]=> - float(3.14159274101) + float(3.141593) [1]=> - float(-9.99999997475E-7) + float(-1.0E-6) [2]=> float(0) [3]=> - float(999999995904) + float(1.0E+12) [4]=> - float(0.564642488956) + float(0.5646425) [5]=> float(1) [6]=> - float(8.88888914608E+14) + float(8.888889E+14) } -done!
\ No newline at end of file +done! diff --git a/ext/mysqli/tests/011.phpt b/ext/mysqli/tests/011.phpt index db03abac8..b14516ff7 100644 --- a/ext/mysqli/tests/011.phpt +++ b/ext/mysqli/tests/011.phpt @@ -67,7 +67,7 @@ array(8) { [3]=> int(4999999) [4]=> - float(2345.60009766) + float(2345.6) [5]=> float(5678.89563) [6]=> @@ -75,4 +75,4 @@ array(8) { [7]=> %unicode|string%(11) "mysql rulez" } -done!
\ No newline at end of file +done! diff --git a/ext/mysqli/tests/012.phpt b/ext/mysqli/tests/012.phpt index 7cc34b0c0..91abae485 100644 --- a/ext/mysqli/tests/012.phpt +++ b/ext/mysqli/tests/012.phpt @@ -66,7 +66,7 @@ array(8) { [3]=> int(54) [4]=> - float(2.59999990463) + float(2.6) [5]=> float(58.89) [6]=> @@ -74,4 +74,4 @@ array(8) { [7]=> %unicode|string%(3) "6.7" } -done!
\ No newline at end of file +done! diff --git a/ext/mysqli/tests/bug67839.phpt b/ext/mysqli/tests/bug67839.phpt new file mode 100644 index 000000000..b2821a21b --- /dev/null +++ b/ext/mysqli/tests/bug67839.phpt @@ -0,0 +1,58 @@ +--TEST-- +mysqli_float_handling - ensure 4 byte float is handled correctly +--SKIPIF-- +<?php + require_once('skipif.inc'); + require_once('skipifemb.inc'); + require_once('skipifconnectfailure.inc'); +?> +--FILE-- +<?php + require('connect.inc'); + if (!$link = my_mysqli_connect($host, $user, $passwd, $db, $port, $socket)) { + printf("[001] [%d] %s\n", mysqli_connect_errno(), mysqli_connect_error()); + die(); + } + + + if (!mysqli_query($link, "DROP TABLE IF EXISTS test")) { + printf("[002] [%d] %s\n", mysqli_errno($link), mysqli_error($link)); + die(); + } + + if (!mysqli_query($link, "CREATE TABLE test(id INT PRIMARY KEY, fp4 FLOAT, fp8 DOUBLE) ENGINE = InnoDB")) { + printf("[003] [%d] %s\n", mysqli_errno($link), mysqli_error($link)); + die(); + } + + // Insert via string to make sure the real floating number gets to the DB + if (!mysqli_query($link, "INSERT INTO test(id, fp4, fp8) VALUES (1, 9.9999, 9.9999)")) { + printf("[004] [%d] %s\n", mysqli_errno($link), mysqli_error($link)); + die(); + } + + if (!($stmt = mysqli_prepare($link, "SELECT id, fp4, fp8 FROM test"))) { + printf("[005] [%d] %s\n", mysqli_errno($link), mysqli_error($link)); + die(); + } + + if (!mysqli_stmt_execute($stmt)) { + printf("[006] [%d] %s\n", mysqli_errno($link), mysqli_error($link)); + die(); + } + + + if (!($result = mysqli_stmt_get_result($stmt))) { + printf("[007] [%d] %s\n", mysqli_errno($link), mysqli_error($link)); + die(); + } + + $data = mysqli_fetch_assoc($result); + print $data['id'] . ": " . $data['fp4'] . ": " . $data['fp8'] . "\n"; +?> +--CLEAN-- +<?php + require_once("clean_table.inc"); +?> +--EXPECTF-- +1: 9.9999: 9.9999 diff --git a/ext/mysqli/tests/mysqli_change_user.phpt b/ext/mysqli/tests/mysqli_change_user.phpt index 7a4530f0d..09009a136 100644 --- a/ext/mysqli/tests/mysqli_change_user.phpt +++ b/ext/mysqli/tests/mysqli_change_user.phpt @@ -42,10 +42,34 @@ require_once('skipifconnectfailure.inc'); if (false !== ($tmp = @mysqli_change_user($link, $user, $passwd . '_unknown_really', $db))) printf("[009] Expecting false, got %s/%s\n", gettype($tmp), $tmp); + // Reconnect because after 3 failed change_user attempts, the server blocks you off. if (!$link = my_mysqli_connect($host, $user, $passwd, $db, $port, $socket)) - printf("[010] Cannot connect to the server using host=%s, user=%s, passwd=***, dbname=%s, port=%s, socket=%s\n", + printf("[009a] 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, 'SET @mysqli_change_user_test_var=1')) + printf("[010] Failed to set test variable: [%d] %s\n", mysqli_errno($link), mysqli_error($link)); + + if (!$res = mysqli_query($link, 'SELECT @mysqli_change_user_test_var AS test_var')) + printf("[011] [%d] %s\n", mysqli_errno($link), mysqli_error($link)); + $tmp = mysqli_fetch_assoc($res); + mysqli_free_result($res); + if (1 != $tmp['test_var']) + printf("[012] Cannot set test variable\n"); + + if (true !== ($tmp = mysqli_change_user($link, $user, $passwd, $db))) + printf("[013] Expecting true, got %s/%s\n", gettype($tmp), $tmp); + + if (!$res = mysqli_query($link, 'SELECT database() AS dbname, user() AS user')) + printf("[014] [%d] %s\n", mysqli_errno($link), mysqli_error($link)); + $tmp = mysqli_fetch_assoc($res); + mysqli_free_result($res); + + if (substr($tmp['user'], 0, strlen($user)) !== $user) + printf("[015] Expecting user %s, got user() %s\n", $user, $tmp['user']); + if ($tmp['dbname'] != $db) + printf("[016] Expecting database %s, got database() %s\n", $db, $tmp['dbname']); + if (false !== ($tmp = @mysqli_change_user($link, $user, $passwd, $db . '_unknown_really'))) printf("[011] Expecting false, got %s/%s\n", gettype($tmp), $tmp); @@ -121,4 +145,4 @@ require_once('skipifconnectfailure.inc'); print "done!"; ?> --EXPECTF-- -done!
\ No newline at end of file +done! diff --git a/ext/mysqli/tests/mysqli_change_user_old.phpt b/ext/mysqli/tests/mysqli_change_user_old.phpt index ddb49cd18..96357ebf5 100644 --- a/ext/mysqli/tests/mysqli_change_user_old.phpt +++ b/ext/mysqli/tests/mysqli_change_user_old.phpt @@ -48,6 +48,14 @@ if (mysqli_get_server_version($link) >= 50600) if (false !== ($tmp = mysqli_change_user($link, $user, $passwd, $db . '_unknown_really'))) printf("[009] Expecting false, got %s/%s\n", gettype($tmp), $tmp); + // Reconnect because Percona and MariaDB block any commands after 3 failed + // change_user commands + mysqli_close($link); + + if (!$link = my_mysqli_connect($host, $user, $passwd, $db, $port, $socket)) { + printf("[020] 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, 'SET @mysqli_change_user_test_var=1')) printf("[010] Failed to set test variable: [%d] %s\n", mysqli_errno($link), mysqli_error($link)); @@ -116,4 +124,4 @@ if (mysqli_get_server_version($link) >= 50600) print "done!"; ?> --EXPECTF-- -done!
\ No newline at end of file +done! diff --git a/ext/mysqli/tests/mysqli_change_user_oo.phpt b/ext/mysqli/tests/mysqli_change_user_oo.phpt index 7ed2d0893..34a3e51bb 100644 --- a/ext/mysqli/tests/mysqli_change_user_oo.phpt +++ b/ext/mysqli/tests/mysqli_change_user_oo.phpt @@ -46,6 +46,11 @@ if (mysqli_get_server_version($link) >= 50600) if (false !== ($tmp = $mysqli->change_user($user, $passwd, $db . '_unknown_really'))) printf("[008] Expecting false, got %s/%s\n", gettype($tmp), $tmp); + // Reconnect because after 3 failed change_user attempts, the server blocks you off. + if (!$mysqli = new my_mysqli($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('SET @mysqli_change_user_test_var=1')) printf("[009] Failed to set test variable: [%d] %s\n", $mysqli->errno, $mysqli->error); @@ -84,4 +89,4 @@ if (mysqli_get_server_version($link) >= 50600) print "done!"; ?> --EXPECTF-- -done!
\ No newline at end of file +done! diff --git a/ext/mysqli/tests/mysqli_real_escape_string_gbk.phpt b/ext/mysqli/tests/mysqli_real_escape_string_gbk.phpt index 2fd1121a7..991d3c345 100644 --- a/ext/mysqli/tests/mysqli_real_escape_string_gbk.phpt +++ b/ext/mysqli/tests/mysqli_real_escape_string_gbk.phpt @@ -36,7 +36,7 @@ $port, $socket, mysqli_connect_errno(), mysqli_connect_error()); mysqli_error($link)); } - if (!mysqli_query($link, 'CREATE TABLE test(id INT, label CHAR(1), PRIMARY + if (!mysqli_query($link, 'CREATE TABLE test(id INT, label CHAR(3), PRIMARY KEY(id)) ENGINE=' . $engine . " DEFAULT CHARSET=gbk")) { printf("Failed to create test table: [%d] %s\n", mysqli_errno($link), mysqli_error($link)); diff --git a/ext/mysqli/tests/table.inc b/ext/mysqli/tests/table.inc index cb089bb95..e0d7a06c5 100644 --- a/ext/mysqli/tests/table.inc +++ b/ext/mysqli/tests/table.inc @@ -12,6 +12,11 @@ if (!mysqli_query($link, 'DROP TABLE IF EXISTS test')) { exit(1); } +if (!mysqli_query($link, 'SET SESSION sql_mode=\'\'')) { + printf("Failed to drop old test table: [%d] %s\n", mysqli_errno($link), mysqli_error($link)); + exit(1); +} + if (!mysqli_query($link, 'CREATE TABLE test(id INT DEFAULT 0, label CHAR(1), PRIMARY KEY(id)) ENGINE=' . $engine)) { printf("Failed to create test table: [%d] %s\n", mysqli_errno($link), mysqli_error($link)); exit(1); @@ -20,4 +25,4 @@ if (!mysqli_query($link, 'CREATE TABLE test(id INT DEFAULT 0, label CHAR(1), PRI if (!mysqli_query($link, "INSERT INTO test(id, label) VALUES (1, 'a'), (2, 'b'), (3, 'c'), (4, 'd'), (5, 'e'), (6, 'f')")) { printf("[%d] %s\n", mysqli_errno($link), mysqli_error($link)); } -?>
\ No newline at end of file +?> |