The branch, master has been updated
via 388327d642714ff42e3dd7eb3cdc1c9b24efea2d (commit)
via b65e19a8b12428948c641672206c54e51a550268 (commit)
via e6bd28ea880bfa7b3b941efcb6b4bb54f12f9227 (commit)
via 20800942f340465c6c4e3abaa69a00ed997224e2 (commit)
via 8860f834665582f71e3b4612825a794fdcc10581 (commit)
via 7f7bdf12bfd936f130355aab2ee44912f3dfaeb3 (commit)
via 7ab207384a6d6bef8fd18b1fca65c3a7ec003eb9 (commit)
from 42f04d4a7ece376c57d3c7a717e24bbcc6621425 (commit)
- Log -----------------------------------------------------------------
commit 388327d642714ff42e3dd7eb3cdc1c9b24efea2d
Author: Michal Čihař <mcihar(a)novell.com>
Date: Mon Aug 30 15:24:07 2010 +0200
Debug code was migrated to testcase.
commit b65e19a8b12428948c641672206c54e51a550268
Author: Michal Čihař <mcihar(a)novell.com>
Date: Mon Aug 30 15:22:58 2010 +0200
Fix another wrong count.
commit e6bd28ea880bfa7b3b941efcb6b4bb54f12f9227
Author: Michal Čihař <mcihar(a)novell.com>
Date: Mon Aug 30 15:22:49 2010 +0200
Test counts as well.
commit 20800942f340465c6c4e3abaa69a00ed997224e2
Author: Michal Čihař <mcihar(a)novell.com>
Date: Mon Aug 30 15:20:09 2010 +0200
Revert "Avoid precalculating counts."
This reverts commit 42f04d4a7ece376c57d3c7a717e24bbcc6621425.
We will stick with precalculated ones and check it in testcase.
commit 8860f834665582f71e3b4612825a794fdcc10581
Author: Michal Čihař <mcihar(a)novell.com>
Date: Mon Aug 30 15:19:44 2010 +0200
READS should be before READ_*.
commit 7f7bdf12bfd936f130355aab2ee44912f3dfaeb3
Author: Michal Čihař <mcihar(a)novell.com>
Date: Mon Aug 30 15:19:03 2010 +0200
Avoid duplicate NOW in keywords.
commit 7ab207384a6d6bef8fd18b1fca65c3a7ec003eb9
Author: Michal Čihař <mcihar(a)novell.com>
Date: Mon Aug 30 15:18:30 2010 +0200
Add testcase for validity of SQL parser data.
-----------------------------------------------------------------------
Summary of changes:
libraries/sqlparser.data.php | 49 ++++-----------------------
test/AllTests.php | 1 +
test/PMA_SQL_parser_data_test.php | 68 +++++++++++++++++++++++++++++++++++++
3 files changed, 76 insertions(+), 42 deletions(-)
create mode 100644 test/PMA_SQL_parser_data_test.php
diff --git a/libraries/sqlparser.data.php b/libraries/sqlparser.data.php
index 8f0c140..dffd6b1 100644
--- a/libraries/sqlparser.data.php
+++ b/libraries/sqlparser.data.php
@@ -17,7 +17,7 @@
* (It's slower to have PHP do the count).
*
* It's easier to use only uppercase for proper sorting. In case of
- * doubt, use the DEBUG code after this function's definition.
+ * doubt, use the test case to verify.
*
* @package phpMyAdmin
*/
@@ -210,7 +210,6 @@ $PMA_SQPdata_function_name = array (
'MOD',
'MONTH',
'MONTHNAME',
- 'NOW',
'MPOINTFROMTEXT', // MPointFromText()
'MPOINTFROMWKB', // MPointFromWKB()
'MPOLYFROMTEXT', // MPolyFromText()
@@ -338,18 +337,7 @@ $PMA_SQPdata_function_name = array (
*
* @global integer MySQL attributes count
*/
-$PMA_SQPdata_function_name_cnt = count($PMA_SQPdata_function_name);
-
-/*
- * DEBUG
-$test_PMA_SQPdata_function_name = $PMA_SQPdata_function_name;
-sort($PMA_SQPdata_function_name);
-if ($PMA_SQPdata_function_name != $test_PMA_SQPdata_function_name) {
- echo 'sort properly like this<pre>';
- print_r($PMA_SQPdata_function_name);
- echo '</pre>';
-}
- */
+$PMA_SQPdata_function_name_cnt = 298;
/**
* @global array MySQL attributes
@@ -391,7 +379,7 @@ $PMA_SQPdata_column_attrib = array (
*
* @global integer MySQL attributes count
*/
-$PMA_SQPdata_column_attrib_cnt = count($PMA_SQPdata_column_attrib);
+$PMA_SQPdata_column_attrib_cnt = 30;
/**
* words that are reserved by MySQL and may not be used as identifiers without quotes
@@ -698,24 +686,7 @@ $PMA_SQPdata_reserved_word = array (
*
* @global integer MySQL reserved words count
*/
-$PMA_SQPdata_reserved_word_cnt = count($PMA_SQPdata_reserved_word);
-/**
- * The previous array must be sorted so that the binary search work.
- * Sometimes a word is not added in the correct order, so
- * this debugging code shows the problem. The same should be
- * done for all arrays.
- */
-/*
-$original = $PMA_SQPdata_reserved_word;
-sort($PMA_SQPdata_reserved_word);
-$difference = array_diff_assoc($original, $PMA_SQPdata_reserved_word);
-echo '<pre>';
-print_r($difference);
-echo '</pre>';
-echo '<pre>';
-print_r($PMA_SQPdata_reserved_word);
-echo '</pre>';
-*/
+$PMA_SQPdata_reserved_word_cnt = 289;
/**
* words forbidden to be used as column or table name wihtout quotes
@@ -1047,9 +1018,9 @@ $PMA_SQPdata_forbidden_word = array (
'RAID_TYPE',
'RANGE', // 5.1
'READ',
+ 'READS',
'READ_ONLY', // 5.1
'READ_WRITE', // 5.1
- 'READS',
'REAL',
'RECOVER',
'REDUNDANT',
@@ -1213,7 +1184,7 @@ $PMA_SQPdata_forbidden_word = array (
*
* @global integer MySQL forbidden words count
*/
-$PMA_SQPdata_forbidden_word_cnt = count($PMA_SQPdata_forbidden_word);
+$PMA_SQPdata_forbidden_word_cnt = 483;
/**
* the MySQL column/data types
@@ -1284,12 +1255,6 @@ $PMA_SQPdata_column_type = array (
*
* @global integer MySQL column types count
*/
-$PMA_SQPdata_column_type_cnt = count($PMA_SQPdata_column_type);
+$PMA_SQPdata_column_type_cnt = 54;
-/*
- * check counts
-foreach ($GLOBALS as $n => $a) {
- echo is_array($a) ? $n . ': ' . count($a) . '<br />' : '';
-}
- */
?>
diff --git a/test/AllTests.php b/test/AllTests.php
index b77f3ec..338f83d 100644
--- a/test/AllTests.php
+++ b/test/AllTests.php
@@ -51,6 +51,7 @@ require_once './test/PMA_foreignKeySupported_test.php';
require_once './test/PMA_headerLocation_test.php';
require_once './test/PMA_Message_test.php';
require_once './test/PMA_whichCrlf_test.php';
+require_once './test/PMA_SQL_parser_data_test.php';
class AllTests
{
diff --git a/test/PMA_SQL_parser_data_test.php b/test/PMA_SQL_parser_data_test.php
new file mode 100644
index 0000000..45fa07c
--- /dev/null
+++ b/test/PMA_SQL_parser_data_test.php
@@ -0,0 +1,68 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * tests for correctness of SQL parser data
+ *
+ * @package phpMyAdmin-test
+ */
+
+/**
+ * Tests core.
+ */
+require_once 'PHPUnit/Framework.php';
+
+define('PHPMYADMIN', 1);
+
+/**
+ * Include to test.
+ */
+require_once './libraries/sqlparser.data.php';
+
+/**
+ * Test for sorting of the arrays
+ *
+ * @package phpMyAdmin-test
+ */
+class PMA_SQL_parser_data_test extends PHPUnit_Framework_TestCase
+{
+ private function assertSorted($array)
+ {
+ $copy = $array;
+ sort($copy);
+ $difference = array_diff_assoc($array, $copy);
+ $this->assertEquals($difference, array());
+ }
+
+ private function assertParserData($name)
+ {
+ $this->assertSorted($GLOBALS[$name]);
+ $this->assertEquals(count($GLOBALS[$name]), $GLOBALS[$name . '_cnt']);
+ }
+
+ public function testPMA_SQPdata_function_name()
+ {
+ $this->assertParserData('PMA_SQPdata_function_name');
+ }
+
+ public function testPMA_SQPdata_column_attrib()
+ {
+ $this->assertParserData('PMA_SQPdata_column_attrib');
+ }
+
+ public function testPMA_SQPdata_reserved_word()
+ {
+ $this->assertParserData('PMA_SQPdata_reserved_word');
+ }
+
+ public function testPMA_SQPdata_forbidden_word()
+ {
+ $this->assertParserData('PMA_SQPdata_forbidden_word');
+ }
+
+ public function testPMA_SQPdata_column_type()
+ {
+ $this->assertParserData('PMA_SQPdata_column_type');
+ }
+
+}
+?>
hooks/post-receive
--
phpMyAdmin