diff options
-rwxr-xr-x | ext/mysql/tests/001.phpt | 16 | ||||
-rwxr-xr-x | ext/mysql/tests/002.phpt | 40 | ||||
-rwxr-xr-x | ext/mysql/tests/003.phpt | 77 | ||||
-rwxr-xr-x | ext/mysql/tests/connect.inc | 66 | ||||
-rwxr-xr-x | ext/mysql/tests/skipif.inc | 9 |
5 files changed, 159 insertions, 49 deletions
diff --git a/ext/mysql/tests/001.phpt b/ext/mysql/tests/001.phpt index 4f79ae3efa..de39571904 100755 --- a/ext/mysql/tests/001.phpt +++ b/ext/mysql/tests/001.phpt @@ -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 diff --git a/ext/mysql/tests/002.phpt b/ext/mysql/tests/002.phpt index 64da4fa0d9..3c628c4116 100755 --- a/ext/mysql/tests/002.phpt +++ b/ext/mysql/tests/002.phpt @@ -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 diff --git a/ext/mysql/tests/003.phpt b/ext/mysql/tests/003.phpt index 81a63f3fc8..a113a043e7 100755 --- a/ext/mysql/tests/003.phpt +++ b/ext/mysql/tests/003.phpt @@ -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 diff --git a/ext/mysql/tests/connect.inc b/ext/mysql/tests/connect.inc index aa1d30a17e..1585e826a8 100755 --- a/ext/mysql/tests/connect.inc +++ b/ext/mysql/tests/connect.inc @@ -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 diff --git a/ext/mysql/tests/skipif.inc b/ext/mysql/tests/skipif.inc index 735be482c7..ab720c2d3d 100755 --- a/ext/mysql/tests/skipif.inc +++ b/ext/mysql/tests/skipif.inc @@ -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); - ?> |