]> granicus.if.org Git - php/commitdiff
Trying to fix broken tests. The last set of files committed a few weeks ago
authorUlf Wendel <uw@php.net>
Wed, 11 Jul 2007 11:12:10 +0000 (11:12 +0000)
committerUlf Wendel <uw@php.net>
Wed, 11 Jul 2007 11:12:10 +0000 (11:12 +0000)
broke almost all tests. I'll try to merge the CVS with a working set of
tests from the mysqlnd development repository. With this first set of
changes most tests should run (and pass) again.

Note the additional environment variables in connect.inc that you can
use to control a test run.

More changes to come.

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
ext/mysql/tests/table.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..341ce6eff59a73ea89499454d4a40cb34a56bca6 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 "test" 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");
 ?>
index 735be482c7a0b5d0ccb45741b901d8c07c3e7ae8..cd070cb74e68f9a3cec5c8baec55ebca2c5f7803 100755 (executable)
@@ -1,11 +1,6 @@
 <?php
-
-include 'connect.inc';
+require_once('connect.inc');
 if (!extension_loaded("mysql")) {
     die('skip mysql extension not available');
 }
-$link = @mysql_connect($host, $user, $passwd);
-if (!$link) die('skip cannot connect');
-mysql_close($link);
-
 ?>
index 5327f94f871cffc5e433ecc7d7828b0628b844c5..0fcc4ebaff70c3bdb419fa48d387eb6da57b5940 100644 (file)
@@ -1,4 +1,4 @@
-<?PHP 
+<?PHP
 require_once('connect.inc');
 
 // connect + select_db
@@ -6,19 +6,19 @@ if (!$link = my_mysql_connect($host, $user, $passwd, $db, $port, $socket)) {
     printf("Cannot connect to the server using host=%s/%s, user=%s, passwd=***, dbname=%s, port=%s, socket=%s\n",
         $host, $myhost, $user, $db, $port, $socket);
     exit(1);
-}   
+}
 
 if (!mysql_query('DROP TABLE IF EXISTS test', $link)) {
     printf("Failed to drop old test table: [%d] %s\n", mysql_errno($link), mysql_error($link));
     exit(1);
-}        
-        
+}
+
 if (!mysql_query('CREATE TABLE test(id INT, label CHAR(1), PRIMARY KEY(id)) ENGINE=' . $engine, $link)) {
     printf("Failed to create test table: [%d] %s\n", mysql_errno($link), mysql_error($link));
     exit(1);
 }
 
 if (!mysql_query('INSERT INTO test(id, label) VALUES (1, "a"), (2, "b"), (3, "c"), (4, "d"), (5, "e"), (6, "f")', $link)) {
-    printf("[%d] %s\n",  mysql_errno($link), mysql_error($link));        
+    printf("[%d] %s\n",  mysql_errno($link), mysql_error($link));
 }
 ?>
\ No newline at end of file