]> granicus.if.org Git - php/commitdiff
Starting to merge the latest set of tests from the mysqlnd development
authorUlf Wendel <uw@php.net>
Wed, 10 Oct 2007 09:47:21 +0000 (09:47 +0000)
committerUlf Wendel <uw@php.net>
Wed, 10 Oct 2007 09:47:21 +0000 (09:47 +0000)
tree into the PHP 5_3 tree.

ext/mysql/tests/001.phpt
ext/mysql/tests/002.phpt
ext/mysql/tests/003.phpt
ext/mysql/tests/connect.inc
ext/mysql/tests/skipif.inc

index 4f79ae3efa53883def203505bf0dd94988372ef1..de3957190437d7186d021f380bee09b2a72f0d00 100755 (executable)
@@ -4,22 +4,30 @@ mysql connect
 <?php include 'skipif.inc'; ?>
 --FILE--
 <?php
-
-include 'connect.inc';
+require_once('connect.inc');
 $test = '';
 
+if ($socket)
+       $host = sprintf("%s:%s", $host, $socket);
+else if ($port)
+       $host = sprintf("%s:%s", $host, $port);
+
 /*** test mysql_connect localhost ***/
 $db = mysql_connect($host, $user, $passwd);
 $test .= ($db) ? '1' : '0';
 mysql_close($db);
 
 /*** test mysql_connect localhost:port ***/
-$db = mysql_connect("{$host}:3306", $user, $passwd, '');
+$db = mysql_connect($host, $user, $passwd, true);
 $test .= ($db) ? '1' : '0';
 mysql_close($db);
 
 var_dump($test);
-
+print "done!";
 ?>
 --EXPECT--
 string(2) "11"
+done!
+--UEXPECTF--
+unicode(2) "11"
+done!
\ No newline at end of file
index 64da4fa0d9776474e9d2ef3597826346e7ef44f0..3c628c4116ac56d37cf45f9254311793cd03b197 100755 (executable)
@@ -4,14 +4,13 @@ mysql_fetch_array
 <?php include 'skipif.inc'; ?>
 --FILE--
 <?php
+require_once('connect.inc');
 
-include 'connect.inc';
+if (!$link = my_mysql_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);
 
-$db = mysql_connect($host, $user, $passwd);
-
-var_dump($db);
-
-var_dump(mysql_select_db('test'));
+var_dump($link);
 
 var_dump(mysql_query('DROP TABLE IF EXISTS test'));
 
@@ -25,15 +24,16 @@ while ($data = mysql_fetch_array($res, MYSQL_ASSOC)) {
        var_dump($data);
 }
 
-mysql_close($db);
+mysql_free_result($res);
+mysql_close($link);
 
+print "done!";
 ?>
 --EXPECTF--
 resource(%d) of type (mysql link)
 bool(true)
 bool(true)
 bool(true)
-bool(true)
 resource(%d) of type (mysql result)
 array(3) {
   ["col1"]=>
@@ -51,3 +51,27 @@ array(3) {
   ["col3"]=>
   string(3) "bar"
 }
+done!
+--UEXPECTF--
+resource(%d) of type (mysql link)
+bool(true)
+bool(true)
+bool(true)
+resource(%d) of type (mysql result)
+array(3) {
+  [u"col1"]=>
+  unicode(1) "1"
+  [u"col2"]=>
+  unicode(3) "foo"
+  [u"col3"]=>
+  unicode(3) "bar"
+}
+array(3) {
+  [u"col1"]=>
+  unicode(1) "2"
+  [u"col2"]=>
+  unicode(3) "foo"
+  [u"col3"]=>
+  unicode(3) "bar"
+}
+done!
\ No newline at end of file
index 81a63f3fc8854e65abb73c5c8c5093f8b8303e61..a113a043e7d4b3eb30da3c6e81e5e4203b74a7db 100755 (executable)
@@ -4,8 +4,7 @@ mysql_fetch_object
 <?php include 'skipif.inc'; ?>
 --FILE--
 <?php
-
-include 'connect.inc';
+include_once('connect.inc');
 
 class class24 {
        function __construct() {
@@ -13,45 +12,44 @@ class class24 {
        }
 }
 
-$data = array(
-       "one",
-       "two",
-       "three"
-       );
-
-$db = mysql_connect($host, $user, $passwd);
+$data = array("one", "two", "three");
 
-mysql_select_db("test");
+if (!$link = my_mysql_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);
 
-mysql_query('DROP TABLE IF EXISTS test');
+if (!mysql_query('DROP TABLE IF EXISTS test', $link))
+       printf("[002] [%d] %s\n", mysql_errno($link), mysql_error($link));
 
-mysql_query("CREATE TABLE test(a varchar(10))");
+if (!mysql_query("CREATE TABLE test(a varchar(10))", $link))
+       printf("[003] [%d] %s\n", mysql_errno($link), mysql_error($link));
 
 foreach ($data as $str) {
-       mysql_query("INSERT INTO test VALUES('$str')");
-       var_dump($str);
+       if (!mysql_query(sprintf("INSERT INTO test VALUES('%s')", $str), $link))
+               printf("[004 - %s] [%d] %s\n", $str, mysql_errno($link), mysql_error($link));
 }
 
 echo "==stdClass==\n";
-$res = mysql_query("SELECT a FROM test");
+if (!$res = mysql_query("SELECT a FROM test", $link))
+       printf("[005] [%d] %s\n", mysql_errno($link), mysql_error($link));
+
 while ($obj = mysql_fetch_object($res)) {
        var_dump($obj);
 }
+mysql_free_result($res);
 
 echo "==class24==\n";
-$res = mysql_query("SELECT a FROM test");
+if (!$res = mysql_query("SELECT a FROM test", $link))
+    printf("[006] [%d] %s\n", mysql_errno($link), mysql_error($link));
+
 while ($obj = mysql_fetch_object($res, 'class24')) {
        var_dump($obj);
 }
-
-mysql_close($db);
-
+mysql_free_result($res);
+mysql_close($link);
+print "done!";
 ?>
-==DONE==
 --EXPECTF--
-string(3) "one"
-string(3) "two"
-string(5) "three"
 ==stdClass==
 object(stdClass)#%d (1) {
   ["a"]=>
@@ -81,4 +79,35 @@ object(class24)#%d (1) {
   ["a"]=>
   string(5) "three"
 }
-==DONE==
+done!
+--UEXPECTF--
+==stdClass==
+object(stdClass)#%d (1) {
+  [u"a"]=>
+  unicode(3) "one"
+}
+object(stdClass)#%d (1) {
+  [u"a"]=>
+  unicode(3) "two"
+}
+object(stdClass)#%d (1) {
+  [u"a"]=>
+  unicode(5) "three"
+}
+==class24==
+class24::__construct
+object(class24)#%d (1) {
+  [u"a"]=>
+  unicode(3) "one"
+}
+class24::__construct
+object(class24)#%d (1) {
+  [u"a"]=>
+  unicode(3) "two"
+}
+class24::__construct
+object(class24)#%d (1) {
+  [u"a"]=>
+  unicode(5) "three"
+}
+done!
\ No newline at end of file
index aa1d30a17eac44c90ada2668a56198d17f4accea..1585e826a82fca22d6bdd52c398322a747d2d44c 100755 (executable)
@@ -1,10 +1,64 @@
 <?php
+if (!function_exists('sys_get_temp_dir')) {
+       function sys_get_temp_dir() {
 
-  /* default values are localhost, root and empty password 
-     Change the values if you use another configuration   */
+               if (!empty($_ENV['TMP']))
+                       return realpath( $_ENV['TMP'] );
+               if (!empty($_ENV['TMPDIR']))
+                       return realpath( $_ENV['TMPDIR'] );
+               if (!empty($_ENV['TEMP']))
+                       return realpath( $_ENV['TEMP'] );
 
-       $host = "localhost";
-       $user = "root";
-       $passwd = "";
+               $temp_file = tempnam(md5(uniqid(rand(), TRUE)), '');
+               if ($temp_file) {
+                       $temp_dir = realpath(dirname($temp_file));
+                       unlink($temp_file);
+                       return $temp_dir;
+               }
+               return FALSE;
+       }
+}
 
-?>
+/* wrapper to simplify test porting */
+function my_mysql_connect($host, $user, $passwd, $db, $port, $socket) {
+
+       if ($socket)
+               $host = sprintf("%s:%s", $host, $socket);
+       else if ($port)
+               $host = sprintf("%s:%s", $host, $port);
+
+       if (!$link = mysql_connect($host, $user, $passwd, true)) {
+               printf("[000-a] Cannot connect using host '%s', user '%s', password '****', [%d] %s\n",
+                       $host, $user, $passwd,
+                       mysql_errno(), mysql_error());
+               return false;
+       }
+
+       if (!mysql_select_db($db, $link)) {
+               printf("[000-b] [%d] %s\n", mysql_errno($link), mysql_error($link));
+               return false;
+       }
+
+       return $link;
+}
+
+/*
+Default values are "localhost", "root", database "phptest" and empty password.
+Change the MYSQL_TEST_* environment values if you want to use another configuration.
+*/
+
+$host          = getenv("MYSQL_TEST_HOST")     ? getenv("MYSQL_TEST_HOST")     : "localhost";
+$port          = getenv("MYSQL_TEST_PORT")     ? getenv("MYSQL_TEST_PORT")     : 3306;
+$user          = getenv("MYSQL_TEST_USER")     ? getenv("MYSQL_TEST_USER")     : "root";
+$passwd        = getenv("MYSQL_TEST_PASSWD")   ? getenv("MYSQL_TEST_PASSWD")   : "";
+$db                    = getenv("MYSQL_TEST_DB")       ? getenv("MYSQL_TEST_DB")       : "test";
+$engine        = getenv("MYSQL_TEST_ENGINE")   ? getenv("MYSQL_TEST_ENGINE")   : "MyISAM";
+$socket        = getenv("MYSQL_TEST_SOCKET")   ? getenv("MYSQL_TEST_SOCKET")   : null;
+
+/* Development setting: test experimal features and/or feature requests that never worked before? */
+$TEST_EXPERIMENTAL = (in_array(getenv("MYSQL_TEST_EXPERIMENTAL"), array(0, 1))) ?
+       ((1 == getenv("MYSQL_TEST_EXPERIMENTAL")) ? true : false) :
+       false;
+
+$IS_MYSQLND = stristr(mysql_get_client_info(), "mysqlnd");
+?>
\ No newline at end of file
index 735be482c7a0b5d0ccb45741b901d8c07c3e7ae8..ab720c2d3d62c9c8c17b3cc6ada3d28750e2f896 100755 (executable)
@@ -1,11 +1,6 @@
 <?php
-
-include 'connect.inc';
+require_once('connect.inc');
 if (!extension_loaded("mysql")) {
-    die('skip mysql extension not available');
+       die('skip mysql extension not available');
 }
-$link = @mysql_connect($host, $user, $passwd);
-if (!$link) die('skip cannot connect');
-mysql_close($link);
-
 ?>