]> granicus.if.org Git - php/commitdiff
Adding test for mysql_list_tables()
authorUlf Wendel <uw@php.net>
Thu, 12 Jul 2007 14:22:15 +0000 (14:22 +0000)
committerUlf Wendel <uw@php.net>
Thu, 12 Jul 2007 14:22:15 +0000 (14:22 +0000)
ext/mysql/tests/mysql_list_tables.phpt [new file with mode: 0644]

diff --git a/ext/mysql/tests/mysql_list_tables.phpt b/ext/mysql/tests/mysql_list_tables.phpt
new file mode 100644 (file)
index 0000000..5091030
--- /dev/null
@@ -0,0 +1,80 @@
+--TEST--
+mysql_list_tables()
+--SKIPIF--
+<?php
+require_once('skipif.inc');
+?>
+--FILE--
+<?php
+include_once "connect.inc";
+
+$tmp    = NULL;
+$link   = NULL;
+
+if (NULL !== ($tmp = @mysql_list_tables()))
+       printf("[001] Expecting NULL got %s/%s\n", gettype($tmp), $tmp);
+
+if (NULL !== ($tmp = @mysql_list_tables('too', 'many', 'arguments')))
+       printf("[002] Expecting NULL got %s/%s\n", gettype($tmp), $tmp);
+
+if (false !== ($tmp = @mysql_list_tables(NULL)))
+       printf("[003] Expecting boolean/false got %s/%s\n", gettype($tmp), $tmp);
+
+if (false !== ($tmp = @mysql_list_tables($db, NULL)))
+       printf("[004] Expecting boolean/false got %s/%s\n", gettype($tmp), $tmp);
+
+require_once('table.inc');
+
+if (!$res_def = @mysql_list_tables($db))
+       printf("[005] [%d] %s\n", mysql_errno(), mysql_error());
+
+if (!$res = @mysql_list_tables($db, $link))
+       printf("[006] [%d] %s\n", mysql_errno($link), mysql_error($link));
+
+if (!$res_query = mysql_query("SHOW TABLES", $link))
+       printf("[007] [%d] %s\n", mysql_errno($link), mysql_error($link));
+
+$tables_def = $tables = $tables_query = array();
+
+while ($row = mysql_fetch_assoc($res_def))
+       $tables_def[] = $row;
+mysql_free_result($res_def);
+
+while ($row = mysql_fetch_assoc($res))
+       $tables[] = $row;
+mysql_free_result($res);
+
+while ($row = mysql_fetch_assoc($res_query))
+       $tables_query[] = $row;
+mysql_free_result($res_query);
+
+if ($tables_def !== $tables) {
+       printf("[008] Got different table lists for default link and specified link\n");
+       var_dump($tables_def);
+       var_dump($tables);
+}
+
+$list1 = $list2 = array();
+foreach ($tables as $k => $tlist)
+       foreach ($tlist as $k => $table)
+               $list1[] = $table;
+
+foreach ($tables_query as $k => $tlist)
+       foreach ($tlist as $k => $table)
+               $list2[] = $table;
+
+if ($list1 !== $list2) {
+       printf("[009] Got different results for mysql_list_tables() and SHOW TABLES\n");
+       var_dump($list1);
+       var_dump($list2);
+}
+
+if (!in_array('test', $list1))
+       printf("[010] Table lists seem to be wrong. Check manually.\n");
+
+mysql_close($link);
+
+print "done!\n";
+?>
+--EXPECTF--
+done!
\ No newline at end of file