uw Wed Jul 11 14:11:19 2007 UTC Modified files: /php-src/ext/mysql/tests mysql_field_flags.phpt Log: Whitespace/Coding Standards, removal of skipifemb.inc, improved testing and checking for expected field types. http://cvs.php.net/viewvc.cgi/php-src/ext/mysql/tests/mysql_field_flags.phpt?r1=1.1&r2=1.2&diff_format=u Index: php-src/ext/mysql/tests/mysql_field_flags.phpt diff -u php-src/ext/mysql/tests/mysql_field_flags.phpt:1.1 php-src/ext/mysql/tests/mysql_field_flags.phpt:1.2 --- php-src/ext/mysql/tests/mysql_field_flags.phpt:1.1 Sun Nov 19 12:14:44 2006 +++ php-src/ext/mysql/tests/mysql_field_flags.phpt Wed Jul 11 14:11:18 2007 @@ -2,48 +2,135 @@ mysql_field_flags() --SKIPIF-- <?php require_once('skipif.inc'); ?> -<?php require_once('skipifemb.inc'); ?> --FILE-- <?php - include "connect.inc"; +include "connect.inc"; - $tmp = NULL; - $link = NULL; - - if (!is_null($tmp = @mysql_field_flags())) - printf("[001] Expecting NULL, got %s/%s\n", gettype($tmp), $tmp); - - if (null !== ($tmp = @mysql_field_flags($link))) - printf("[002] Expecting NULL, got %s/%s\n", gettype($tmp), $tmp); - - require('table.inc'); - if (!$res = mysql_query("SELECT id, label FROM test ORDER BY id LIMIT 2", $link)) { - printf("[003] [%d] %s\n", mysql_errno($link), mysql_error($link)); - } - - if (NULL !== ($tmp = mysql_field_flags($res))) - printf("[004] Expecting NULL, got %s/%s\n", gettype($tmp), $tmp); - - if (false !== ($tmp = mysql_field_flags($res, -1))) - printf("[005] Expecting boolean/false, got %s/%s\n", gettype($tmp), $tmp); - - if (!is_string($tmp = mysql_field_flags($res, 0)) || empty($tmp)) - printf("[006] Expecting non empty string, got %s/%s\n", gettype($tmp), $tmp); - - if (ini_get('unicode.semantics') && !is_unicode($tmp)) { - printf("[007] Check the unicode support!\n"); - var_inspect($tmp); - } - - if (false !== ($tmp = mysql_field_flags($res, 2))) - printf("[008] Expecting boolean/false, got %s/%s\n", gettype($tmp), $tmp); - - mysql_free_result($res); - - var_dump(mysql_field_flags($res, 0)); - - mysql_close($link); - print "done!"; +$tmp = NULL; +$link = NULL; + +if (!is_null($tmp = @mysql_field_flags())) + printf("[001] Expecting NULL, got %s/%s\n", gettype($tmp), $tmp); + +if (null !== ($tmp = @mysql_field_flags($link))) + printf("[002] Expecting NULL, got %s/%s\n", gettype($tmp), $tmp); + +require('table.inc'); +if (!$res = mysql_query("SELECT id, label FROM test ORDER BY id LIMIT 2", $link)) { + printf("[003] [%d] %s\n", mysql_errno($link), mysql_error($link)); +} + +if (NULL !== ($tmp = mysql_field_flags($res))) + printf("[004] Expecting NULL, got %s/%s\n", gettype($tmp), $tmp); + +if (false !== ($tmp = mysql_field_flags($res, -1))) + printf("[005] Expecting boolean/false, got %s/%s\n", gettype($tmp), $tmp); + +if (!is_string($tmp = mysql_field_flags($res, 0)) || empty($tmp)) + printf("[006] Expecting non empty string, got %s/%s\n", gettype($tmp), $tmp); + +if (ini_get('unicode.semantics') && !is_unicode($tmp)) { + printf("[007] Check the unicode support!\n"); + var_inspect($tmp); +} + +if (false !== ($tmp = mysql_field_flags($res, 2))) + printf("[008] Expecting boolean/false, got %s/%s\n", gettype($tmp), $tmp); + +mysql_free_result($res); + +$version = mysql_get_server_info($link); +if (!preg_match('@(\d+)\.(\d+)\.(\d+)@ism', $version, $matches)) + printf("[009] Cannot get server version\n"); +$version = ($matches[1] * 100) + ($matches[2] * 10) + $matches[3]; + +$tables = array( + 'label INT, UNIQUE KEY (label)' => array( + array('label', '1'), + 'label' => array(($version < 500) ? 'multiple_key' : 'unique_key') + ), + 'labela INT, label2 CHAR(1), KEY keyname (labela, label2)' => array( + array('labela, label2', '1, "a"'), + 'labela' => array('multiple_key'), + ), + 'label1 BLOB' => array( + array('label1', '"blob"'), + 'label1' => array('blob', 'binary'), + ), + 'label1 INT UNSIGNED' => array( + array('label1', '100'), + 'label1' => array('unsigned'), + ), + 'label1 INT UNSIGNED NOT NULL AUTO INCREMENT' => array( + array('label1', '100'), + 'label1' => array('auto_increment', + 'unsigned'), + ), + 'label1 ENUM("a", "b")' => array( + array('label1', '"a"'), + 'label1' => array('enum'), + ), + 'label1 SET("a", "b")' => array( + array('label1', '"a"'), + 'label1' => array('set'), + ), + 'label1 TIMESTAMP' => array( + array('label1', sprintf('"%s"', @date("Y-m-d H:i:s"))), + 'label1' => array( + 'timestamp', + 'unsigned', + 'zerofill', + 'binary', + 'not_null'), + ), +); + +foreach ($tables as $columns => $expected) { + if (!mysql_query("DROP TABLE IF EXISTS test", $link)) { + printf("[010/%s] [%d] %s\n", $columns, mysql_errno($link), mysql_error($link)); + continue; + } + $sql = sprintf("CREATE TABLE test(id INT, %s) ENGINE = %s", $columns, $engine); + if ([EMAIL PROTECTED]($sql, $link)) { + // server or engine might not support this + continue; + } + + reset($expected); + list($k, $values) = each($expected); + $sql = sprintf("INSERT INTO test(id, %s) VALUES (1, %s)", $values[0], $values[1]); + if (!mysql_query($sql, $link)) { + printf("[011/%s] '%s', [%d] %s\n", $columns, $sql, mysql_errno($link), mysql_error($link)); + continue; + } + + if (!$res = mysql_query(sprintf("SELECT id, %s FROM test", $values[0]), $link)) { + printf("[012/%s] [%d] %s\n", $columns, mysql_errno($link), mysql_error($link)); + continue; + } + + $i = 1; + while (list($field, $flags) = each($expected)) { + $tmp = mysql_field_flags($res, $i++); + + foreach ($flags as $k => $flag) { + if (!preg_match(sprintf('@[EMAIL PROTECTED]', $flag), $tmp)) { + printf("[013/%s] Field '%s', flag '%s' not found, [%d] %s\n", $columns, $field, $flag, mysql_errno($link), mysql_error($link)); + } + } + foreach ($flags as $k => $flag) { + $tmp = preg_replace(sprintf('@[EMAIL PROTECTED]', $flag), '', $tmp); + } + if ('' != $tmp) + printf("[014/%s] Field '%s', unexpected flags '%s' found, [%d] %s\n", $columns, $field, $tmp, mysql_errno($link), mysql_error($link)); + } + mysql_free_result($res); +} + +var_dump(mysql_field_flags($res, 0)); + +mysql_close($link); +print "done!"; ?> --EXPECTF-- Warning: Wrong parameter count for mysql_field_flags() in %s on line %d @@ -54,4 +141,4 @@ Warning: mysql_field_flags(): %d is not a valid MySQL result resource in %s on line %d bool(false) -done! +done! \ No newline at end of file
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php