Coverage uses the same cookie so must live in the same directory

git-svn-id: https://adminer.svn.sourceforge.net/svnroot/adminer/trunk@756 7c3ca157-0c34-0410-bff1-cbf682f78f5c
This commit is contained in:
jakubvrana 2009-06-24 10:02:12 +00:00
parent 75fc104b8a
commit 91156d1a1d
5 changed files with 21 additions and 31 deletions

View file

@ -1,11 +1,4 @@
<?php
error_reporting(E_ALL & ~E_NOTICE);
if (!ini_get("session.auto_start")) {
session_name("adminer_sid");
session_set_cookie_params(ini_get("session.cookie_lifetime"), preg_replace('~_coverage\\.php(\\?.*)?$~', '', $_SERVER["REQUEST_URI"]));
session_start();
}
function xhtml_open_tags($s) {
// returns array of opened tags in $s
$return = array();
@ -20,21 +13,17 @@ function xhtml_open_tags($s) {
return $return;
}
if (!extension_loaded("xdebug")) {
echo "<p>Xdebug has to be enabled.</p>\n";
}
page_header("Coverage", (extension_loaded("xdebug") ? "" : "Xdebug has to be enabled."));
if ($_GET["start"]) {
unset($_SESSION["coverage"]);
xdebug_start_code_coverage(XDEBUG_CC_UNUSED | XDEBUG_CC_DEAD_CODE);
$_SESSION["coverage"] = array();
include "./adminer/index.php";
header("Location: .");
exit;
}
if (preg_match('~^(include/)?[-_.a-z0-9]+$~i', $_GET["filename"])) {
if ($_GET["coverage"] === "0") {
unset($_SESSION["coverage"]); // disable coverage if it is not available
if (extension_loaded("xdebug")) {
$_SESSION["coverage"] = array();
echo "<p class='message'>Coverage started.</p>\n";
}
} elseif (preg_match('~^(include/)?[-_.a-z0-9]+$~i', $_GET["coverage"])) {
// highlight single file
$filename = "adminer/$_GET[filename]";
$filename = $_GET["coverage"];
$cov = $_SESSION["coverage"][realpath($filename)];
$file = explode("<br />", highlight_file($filename, true));
unset($prev_color);
@ -64,17 +53,18 @@ if (preg_match('~^(include/)?[-_.a-z0-9]+$~i', $_GET["filename"])) {
}
} else {
// display list of files
echo "<table border='0' cellspacing='0' cellpadding='1'>\n";
foreach (array_merge(glob("adminer/*.php"), glob("adminer/include/*.php")) as $filename) {
echo "<table cellspacing='0'>\n";
foreach (array_merge(glob("*.php"), glob("include/*.php")) as $filename) {
$cov = $_SESSION["coverage"][realpath($filename)];
$filename = substr($filename, 8);
$ratio = 0;
if (isset($cov)) {
$values = array_count_values($cov);
$ratio = round(100 - 100 * $values[-1] / count($cov));
}
echo "<tr><td align='right' style='background-color: " . ($ratio < 50 ? "Red" : ($ratio < 75 ? "#FFEA20" : "#A7FC9D")) . ";'>$ratio%</td><td><a href='coverage.php?filename=$filename'>$filename</a></td></tr>\n";
echo "<tr><td align='right' style='background-color: " . ($ratio < 50 ? "Red" : ($ratio < 75 ? "#FFEA20" : "#A7FC9D")) . ";'>$ratio%</td><th><a href=\"" . htmlspecialchars($SELF) . "coverage=$filename\">$filename</a></th></tr>\n";
}
echo "</table>\n";
echo "<p><a href='coverage.php?start=1'>Start new coverage</a> (requires <a href='http://www.xdebug.org'>Xdebug</a>)</p>\n";
echo '<p><a href="' . htmlspecialchars($SELF) . 'coverage=0">Start new coverage</a></p>' . "\n";
}
page_footer("auth");
exit;

View file

@ -26,10 +26,6 @@ if (isset($_SESSION["coverage"])) {
}
xdebug_start_code_coverage(XDEBUG_CC_UNUSED | XDEBUG_CC_DEAD_CODE);
register_shutdown_function('save_coverage');
if ($_GET["start"]) {
// included from ../coverage.php
return;
}
}
// disable magic quotes to be able to use database escaping function
if (get_magic_quotes_gpc()) {
@ -55,6 +51,9 @@ include "./include/functions.inc.php";
include "./include/lang.inc.php";
include "./lang/$LANG.inc.php";
include "./include/design.inc.php";
if (isset($_GET["coverage"])) {
include "./coverage.inc.php";
}
include "./include/pdo.inc.php";
include "./include/mysql.inc.php";
include "./include/auth.inc.php";

View file

@ -171,6 +171,7 @@ if ($_SERVER["argc"] > 1) {
$filename = "adminer" . ($_COOKIE["adminer_lang"] ? "-$_COOKIE[adminer_lang]" : "") . ".php";
$file = file_get_contents(dirname(__FILE__) . "/adminer/index.php");
$file = preg_replace('(' . str_replace(' ', '\\s*', preg_quote(' if (isset($_GET["coverage"])) { include "./coverage.inc.php"; }')) . ')', '', $file);
$file = preg_replace_callback('~\\b(include|require) "([^"]*)";~', 'put_file', $file);
$file = preg_replace("~if \\(isset\\(\\\$_SESSION\\[\"coverage.*\n}\n| && !isset\\(\\\$_SESSION\\[\"coverage\"\\]\\)~sU", '', $file);
if ($_COOKIE["adminer_lang"]) {

View file

@ -13,7 +13,7 @@
</thead><tbody>
<tr>
<td>open</td>
<td>/adminer/coverage.php?start=1</td>
<td>/adminer/adminer/?coverage=0</td>
<td></td>
</tr>
<tr>

View file

@ -38,7 +38,7 @@
</tr>
<tr>
<td>open</td>
<td>/adminer/coverage.php</td>
<td>/adminer/adminer/?coverage=</td>
<td></td>
</tr>