summaryrefslogtreecommitdiff
path: root/ext/mysqli/tests/mysqli_debug_append.phpt
diff options
context:
space:
mode:
authorLorry Tar Creator <lorry-tar-importer@baserock.org>2013-03-14 05:42:27 +0000
committer <>2013-04-03 16:25:08 +0000
commitc4dd7a1a684490673e25aaf4fabec5df138854c4 (patch)
tree4d57c44caae4480efff02b90b9be86f44bf25409 /ext/mysqli/tests/mysqli_debug_append.phpt
downloadphp2-master.tar.gz
Imported from /home/lorry/working-area/delta_php2/php-5.4.13.tar.bz2.HEADphp-5.4.13master
Diffstat (limited to 'ext/mysqli/tests/mysqli_debug_append.phpt')
-rw-r--r--ext/mysqli/tests/mysqli_debug_append.phpt93
1 files changed, 93 insertions, 0 deletions
diff --git a/ext/mysqli/tests/mysqli_debug_append.phpt b/ext/mysqli/tests/mysqli_debug_append.phpt
new file mode 100644
index 0000000..f916995
--- /dev/null
+++ b/ext/mysqli/tests/mysqli_debug_append.phpt
@@ -0,0 +1,93 @@
+--TEST--
+mysqli_debug() - append to trace file
+--SKIPIF--
+<?php
+require_once('skipif.inc');
+require_once('skipifemb.inc');
+require_once('skipifconnectfailure.inc');
+
+if (!function_exists('mysqli_debug'))
+ die("skip: mysqli_debug() not available");
+
+if (!defined('MYSQLI_DEBUG_TRACE_ENABLED'))
+ die("skip: can't say for sure if mysqli_debug works");
+
+if (defined('MYSQLI_DEBUG_TRACE_ENABLED') && !MYSQLI_DEBUG_TRACE_ENABLED)
+ die("skip: debug functionality not enabled");
+
+if (!$IS_MYSQLND)
+ die("SKIP Libmysql feature not sufficiently spec'd in MySQL C API documentation");
+?>
+--FILE--
+<?php
+ require_once('connect.inc');;
+
+ if (true !== ($tmp = mysqli_debug(sprintf('d:t:O,%s/mysqli_debug_phpt.trace', sys_get_temp_dir()))))
+ printf("[001] Expecting boolean/true, got %s/%s\n", gettype($tmp), $tmp);
+
+ // table.inc will create a database connection and run some SQL queries, therefore
+ // the debug file should have entries
+ require_once('table.inc');
+
+ clearstatcache();
+ $trace_file = sprintf('%s/mysqli_debug_phpt.trace', sys_get_temp_dir());
+ if (!file_exists($trace_file))
+ printf("[002] Trace file '%s' has not been created\n", $trace_file);
+ if (filesize($trace_file) < 50)
+ printf("[003] Trace file '%s' is very small. filesize() reports only %d bytes. Please check.\n",
+ $trace_file,
+ filesize($trace_file));
+
+ // will mysqli_debug() mind if the trace file gets removed?
+ unlink($trace_file);
+ clearstatcache();
+
+ if (!$fp = fopen($trace_file, 'w')) {
+ printf("[004] Cannot create trace file to test append mode\n");
+ } else {
+
+ if (!fwrite($fp, (binary) 'mysqli_debug.phpt test line'))
+ printf("[005] Cannot write to trace file.\n");
+ fclose($fp);
+
+ if (true !== ($tmp = mysqli_debug(sprintf('d:a,%s', $trace_file))))
+ printf("[006] Expecting boolean/true, got %s/%s\n", gettype($tmp), $tmp);
+
+ if (!$res = mysqli_query($link, 'SELECT * FROM test'))
+ printf("[007] [%d] %s\n", mysqli_errno($link), mysqli_error($link));
+ else
+ mysqli_free_result($res);
+
+ $trace = file_get_contents($trace_file);
+ if (!strstr($trace, 'mysqli_debug.phpt test line'))
+ printf("[008] Cannot find original file content any more. Seems that the trace file got overwritten and not appended. Please check.");
+
+ if (true !== ($tmp = mysqli_debug(sprintf('d:A,%s', $trace_file))))
+ printf("[009] Expecting boolean/true, got %s/%s\n", gettype($tmp), $tmp);
+
+ if (!$res = mysqli_query($link, 'SELECT * FROM test'))
+ printf("[010] [%d] %s\n", mysqli_errno($link), mysqli_error($link));
+ else
+ mysqli_free_result($res);
+
+ if (!strstr(file_get_contents($trace_file), $trace))
+ printf("[011] Cannot find original file content any more. Seems that the trace file got overwritten and not appended. Please check.");
+ }
+
+ // what will happen if we create new trace entries...?
+ unlink($trace_file);
+ clearstatcache();
+ if (file_exists($trace_file))
+ printf("[012] Could not remove trace file '%s'.\n", $trace_file);
+
+ mysqli_close($link);
+ print "done";
+ if ($IS_MYSQLND)
+ print "libmysql/DBUG package prints some debug info here."
+?>
+--CLEAN--
+<?php
+ require_once("clean_table.inc");
+?>
+--EXPECTF--
+done%s