]> granicus.if.org Git - php/commitdiff
Checks if ext/mysql exposes all constants it should expose.
authorUlf Wendel <uw@php.net>
Thu, 12 Jul 2007 14:01:12 +0000 (14:01 +0000)
committerUlf Wendel <uw@php.net>
Thu, 12 Jul 2007 14:01:12 +0000 (14:01 +0000)
ext/mysql/tests/mysql_constants.phpt [new file with mode: 0644]

diff --git a/ext/mysql/tests/mysql_constants.phpt b/ext/mysql/tests/mysql_constants.phpt
new file mode 100644 (file)
index 0000000..0d56b2e
--- /dev/null
@@ -0,0 +1,62 @@
+--TEST--
+Constants exported by ext/mysql
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php          
+    require("connect.inc"); 
+    require("table.inc"); 
+    
+    $constants = get_defined_constants(true);
+    sort($constants);
+    
+    $expected_constants = array(
+        'MYSQL_ASSOC'                   => true,
+        'MYSQL_NUM'                     => true,
+        'MYSQL_BOTH'                    => true,
+        'MYSQL_CLIENT_COMPRESS'         => true,
+        'MYSQL_CLIENT_INTERACTIVE'      => true,
+        'MYSQL_CLIENT_IGNORE_SPACE'     => true,
+    );
+        
+    $version = mysql_get_server_info($link);    
+    if (!preg_match('@(\d+)\.(\d+)\.(\d+)@ism', $version, $matches))
+        printf("[001] Cannot get server version\n");
+    $version = ($matches[1] * 100) + ($matches[2] * 10) + $matches[3];
+    
+    if ($version > 400) {
+        $expected_constants = array_merge($expected_constants, array(
+            "MYSQL_CLIENT_SSL"                => true,            
+        ));
+    }
+       
+    
+    $unexpected_constants = array();
+        
+    foreach ($constants as $group => $consts) {        
+        foreach ($consts as $name => $value) {            
+            if (stristr($name, 'mysql') && !stristr($name, 'mysqli')) {                
+                $name = strtoupper($name);                    
+                if (isset($expected_constants[$name])) {
+                    unset($expected_constants[$name]);                    
+                } else {
+                    $unexpected_constants[$name] = $name;
+                }
+            }
+        }
+    }   
+
+    if (!empty($unexpected_constants)) {
+        printf("Dumping list of unexpected constants\n");
+        var_dump($unexpected_constants);
+    }
+
+    if (!empty($expected_constants)) {
+        printf("Dumping list of missing constants\n");
+        var_dump($expected_constants);
+    }
+
+    print "done!";
+?>
+--EXPECTF--
+done!
\ No newline at end of file