summaryrefslogtreecommitdiff
path: root/ext/mysql/tests/mysql_client_encoding.phpt
diff options
context:
space:
mode:
authorLorry Tar Creator <lorry-tar-importer@baserock.org>2013-03-14 05:42:27 +0000
committer <>2013-04-03 16:25:08 +0000
commitc4dd7a1a684490673e25aaf4fabec5df138854c4 (patch)
tree4d57c44caae4480efff02b90b9be86f44bf25409 /ext/mysql/tests/mysql_client_encoding.phpt
downloadphp2-master.tar.gz
Imported from /home/lorry/working-area/delta_php2/php-5.4.13.tar.bz2.HEADphp-5.4.13master
Diffstat (limited to 'ext/mysql/tests/mysql_client_encoding.phpt')
-rw-r--r--ext/mysql/tests/mysql_client_encoding.phpt70
1 files changed, 70 insertions, 0 deletions
diff --git a/ext/mysql/tests/mysql_client_encoding.phpt b/ext/mysql/tests/mysql_client_encoding.phpt
new file mode 100644
index 0000000..8aa67a0
--- /dev/null
+++ b/ext/mysql/tests/mysql_client_encoding.phpt
@@ -0,0 +1,70 @@
+--TEST--
+mysql_client_encoding()
+--SKIPIF--
+<?php
+require_once('skipif.inc');
+require_once('skipifconnectfailure.inc');
+?>
+--FILE--
+<?php
+include_once "connect.inc";
+
+$tmp = NULL;
+$link = NULL;
+
+if (!$link = my_mysql_connect($host, $user, $passwd, $db, $port, $socket))
+ printf("[002] Cannot connect to the server using host=%s, user=%s, passwd=***, dbname=%s, port=%s, socket=%s\n",
+ $host, $user, $db, $port, $socket);
+
+$default_link_enc = mysql_client_encoding();
+$link_enc = mysql_client_encoding($link);
+
+if ($default_link_enc !== $link_enc)
+ printf("[003] %s != %s, [%d] %s\n", $default_link_enc, $link_enc, mysql_errno($link), mysql_error($link));
+
+if (!$res = mysql_query('SELECT version() AS server_version', $link))
+ printf("[004] [%d] %s\n", mysql_errno($link), mysql_error($link));
+$tmp = mysql_fetch_assoc($res);
+mysql_free_result($res);
+$version = explode('.', $tmp['server_version']);
+if (empty($version))
+ printf("[005] Cannot determine server version, need MySQL Server 4.1+ for the test!\n");
+
+if ($version[0] <= 4 && $version[1] < 1)
+ printf("[006] Need MySQL Server 4.1+ for the test!\n");
+
+if (!$res = mysql_query('SELECT @@character_set_connection AS charset, @@collation_connection AS collation', $link))
+ printf("[007] [%d] %s\n", mysql_errno($link), mysql_error($link));
+$tmp = mysql_fetch_assoc($res);
+mysql_free_result($res);
+if (!$tmp['charset'])
+ printf("[008] Cannot determine current character set and collation\n");
+
+if ($link_enc !== $tmp['charset']) {
+ if ($link_enc === $tmp['collation']) {
+ printf("[009] Known bug, collation instead of chatset returned, http://bugs.mysql.com/bug.php?id=7923\n");
+ } else {
+ printf("[009] Check manually, watch out for unicode and others\n");
+ var_dump($link_enc);
+ var_dump($tmp);
+ }
+}
+
+if ((version_compare(PHP_VERSION, '5.9.9', '>') == 1) && function_exists('is_unicode')) {
+// unicode mode
+ if (!is_unicode($default_link_enc) || !is_unicode($link_enc)) {
+ printf("[010] No unicode returned!\n");
+ var_dump($default_link_enc);
+ var_dump($link_enc);
+ }
+}
+
+mysql_close($link);
+
+if (false !== ($tmp = @mysql_client_encoding($link)))
+ printf("[012] Expecting boolean/false, got %s/%s\n", gettype($tmp), $tmp);
+
+print "done!";
+?>
+--EXPECTF--
+done!