diff --git a/adminer/include/coverage.inc.php b/adminer/include/coverage.inc.php index 1883c66a..f2c8e717 100644 --- a/adminer/include/coverage.inc.php +++ b/adminer/include/coverage.inc.php @@ -1,23 +1,16 @@ $lines) { foreach ($lines as $l => $val) { if (!$coverage[$filename][$l] || $val > 0) { $coverage[$filename][$l] = $val; } } - mysql_query(" - REPLACE adminer_test.coverage (filename, coverage_serialize) - VALUES ('" . mysql_real_escape_string($filename) . "', '" . mysql_real_escape_string(serialize($coverage[$filename])) . "') - "); + file_put_contents($coverage_filename, serialize($coverage)); } } xdebug_start_code_coverage(XDEBUG_CC_UNUSED | XDEBUG_CC_DEAD_CODE); diff --git a/coverage.php b/coverage.php index 794946df..ac2b6576 100644 --- a/coverage.php +++ b/coverage.php @@ -22,28 +22,23 @@ function xhtml_open_tags($s) { return $return; } +$coverage_filename = sys_get_temp_dir() . "/adminer_coverage.ser"; if (!extension_loaded("xdebug")) { echo "

Xdebug has to be enabled.

\n"; } elseif ($_GET["coverage"] === "0") { - mysql_query("DROP TABLE IF EXISTS adminer_test.coverage"); - mysql_query("CREATE TABLE adminer_test.coverage ( - filename varchar(100) NOT NULL, - coverage_serialize mediumtext NOT NULL, - PRIMARY KEY (filename) - )"); + file_put_contents($coverage_filename, serialize(array())); echo "

Coverage started.

\n"; } elseif (preg_match('~^(adminer|editor)/(include/)?[-_.a-z0-9]+$~i', $_GET["coverage"])) { // highlight single file $filename = $_GET["coverage"]; - $row = mysql_fetch_row(mysql_query("SELECT coverage_serialize FROM adminer_test.coverage WHERE filename = '" . mysql_real_escape_string(realpath($filename)) . "'")); - $cov = ($row ? unserialize($row[0]) : array()); + $coverage = (file_exists($coverage_filename) ? unserialize(file_get_contents($coverage_filename)) : array()); $file = explode("
", highlight_file($filename, true)); unset($prev_color); $s = ""; for ($l=0; $l <= count($file); $l++) { $line = $file[$l]; $color = "#C0FFC0"; // tested - switch ($cov[$l+1]) { + switch ($coverage[realpath($filename)][$l+1]) { case -1: $color = "#FFC0C0"; break; // untested case -2: $color = "Silver"; break; // dead code case null: $color = ""; break; // not executable @@ -64,21 +59,16 @@ if (!extension_loaded("xdebug")) { $s .= "$line
\n"; } } else { - // display list of files - $result = mysql_query("SELECT filename, coverage_serialize FROM adminer_test.coverage"); - if ($result) { + if (file_exists($coverage_filename)) { + // display list of files + $coverage = unserialize(file_get_contents($coverage_filename)); echo "\n"; - $coverage = array(); - while ($row = mysql_fetch_assoc($result)) { - $coverage[$row["filename"]] = unserialize($row["coverage_serialize"]); - } - mysql_free_result($result); foreach (array_merge(glob("adminer/*.php"), glob("adminer/include/*.php"), glob("editor/*.php"), glob("editor/include/*.php")) as $filename) { $cov = $coverage[realpath($filename)]; $ratio = 0; if (is_array($cov)) { $values = array_count_values($cov); - $ratio = round(100 - 100 * $values[-1] / count($cov)); + $ratio = round(100 - 100 * $values[-1] / (count($cov) - $values[-2])); } echo "\n"; } diff --git a/tests/0-login.html b/tests/0-login.html index 8e741f73..8cd77a45 100644 --- a/tests/0-login.html +++ b/tests/0-login.html @@ -11,6 +11,11 @@ + + + + + diff --git a/tests/1-create-database.html b/tests/1-create-database.html index f44f7851..5ff2dc98 100644 --- a/tests/1-create-database.html +++ b/tests/1-create-database.html @@ -41,11 +41,6 @@ - - - - -
$ratio%$filename
Create database
open/adminer/coverage.php?coverage=0
open /adminer/adminer/?lang=en&username=Database has been created.
open/adminer/coverage.php?coverage=0