Author: cfinck Date: Fri Jun 19 03:07:42 2009 New Revision: 437
URL: http://svn.reactos.org/svn/reactos?rev=437&view=rev Log: - Show the total sum of all executed and failed tests also in the Compare dialog, so that it's included in the comparison to the next result - Shorten some variable names for consistence
Modified: branches/danny-web/www/www.reactos.org/testman/compare.php branches/danny-web/www/www.reactos.org/testman/css/compare.css branches/danny-web/www/www.reactos.org/testman/js/compare.js.php branches/danny-web/www/www.reactos.org/testman/lang/de.inc.php branches/danny-web/www/www.reactos.org/testman/lang/en.inc.php branches/danny-web/www/www.reactos.org/testman/lang/pl.inc.php
Modified: branches/danny-web/www/www.reactos.org/testman/compare.php URL: http://svn.reactos.org/svn/reactos/branches/danny-web/www/www.reactos.org/te... ============================================================================== --- branches/danny-web/www/www.reactos.org/testman/compare.php [iso-8859-1] (original) +++ branches/danny-web/www/www.reactos.org/testman/compare.php [iso-8859-1] Fri Jun 19 03:07:42 2009 @@ -18,18 +18,21 @@ require_once("lang/$lang.inc.php"); - function GetDifference(&$current_result_row, &$prev_result_row, $subject) + function GetDifference(&$current_row, &$prev_row, $subject) { // Return ("" is not possible because of IE...) if - // - we have nothing to compare + // - we have no previous array to compare with + // - we have both arrays, but not the values for both of them // - both values are identical - if(!$prev_result_row["id"] || - $current_result_row[$subject] == $prev_result_row[$subject]) + if(!$prev_row || + !array_key_exists($subject, $current_row) || + !array_key_exists($subject, $prev_row) || + $current_row[$subject] == $prev_row[$subject]) { return " "; } - $diff = $current_result_row[$subject] - $prev_result_row[$subject]; + $diff = $current_row[$subject] - $prev_row[$subject]; if($diff > 0) return "(+$diff)"; @@ -131,6 +134,57 @@ $suite_ids = $stmt->fetchAll(PDO::FETCH_COLUMN); $suite_idlist = implode(",", $suite_ids); + // Add the table and fill in the table head part + echo '<table id="comparetable" class="datatable" cellspacing="0" cellpadding="0">'; + echo '<thead><tr class="head">'; + printf('<th class="TestSuite">%s</th>', $testman_langres["testsuite"]); + + $stmt = $dbh->prepare( + "SELECT UNIX_TIMESTAMP(r.timestamp) timestamp, a.name, r.revision, r.platform " . + "FROM " . DB_TESTMAN . ".winetest_runs r " . + "JOIN " . DB_ROSCMS . ".roscms_accounts a ON r.user_id = a.id " . + "WHERE r.id = :id" + ); + + for($i = 0; $i < count($id_array); $i++) + { + $stmt->bindParam(":id", $id_array[$i]); + $stmt->execute() or die("Query failed #2"); + $row = $stmt->fetch(PDO::FETCH_ASSOC); + + echo '<th onmousedown="ResultHead_OnMouseDown(this)">'; + printf($testman_langres["resulthead"], $row["revision"], GetDateString($row["timestamp"]), $row["name"], GetPlatformString($row["platform"])); + echo '</th>'; + } + + echo '</tr></thead>'; + echo '<tbody>'; + + // Get the total numbers + echo '<tr class="even">'; + printf('<td id="totals" onmouseover="Cell_OnMouseOver(this)" onmouseout="Cell_OnMouseOut(this)">%s</td>', $testman_langres["totals"]); + + $stmt = $dbh->prepare("SELECT r.count, r.failures FROM " . DB_TESTMAN . ".winetest_runs r WHERE r.id = :id"); + $prev_row = null; + + for($i = 0; $i < count($id_array); $i++) + { + $stmt->bindParam(":id", $id_array[$i]); + $stmt->execute() or die("Query failed #3"); + $row = $stmt->fetch(PDO::FETCH_ASSOC); + + echo '<td onmouseover="Cell_OnMouseOver(this)" onmouseout="Cell_OnMouseOut(this)">'; + printf('<div title="%s" class="box totaltests totals">%s <span class="diff">%s</span></div>', $testman_langres["totaltests"], $row["count"], GetDifference($row, $prev_row, "count")); + printf('<div title="%s" class="box %s_failedtests totals">%d <span class="diff">%s</span></div>', $testman_langres["failedtests"], ($row["failures"] > 0 ? 'real' : 'zero'), $row["failures"], GetDifference($row, $prev_row, "failures")); + echo '</td>'; + + $prev_row = $row; + } + + // Add an empty separation row + echo '</tr>'; + echo '<tr class="separator"></tr>'; + // Get the test results for each column $result_stmt = array(); @@ -144,36 +198,8 @@ "ORDER BY s.module, s.test" ); $result_stmt[$i]->bindParam(":testid", $id_array[$i]); - $result_stmt[$i]->execute() or die("Query failed #2 for statement $i"); - } - - echo '<table id="comparetable" class="datatable" cellspacing="0" cellpadding="0">'; - echo '<thead><tr class="head">'; - printf('<th class="TestSuite">%s</th>', $testman_langres["testsuite"]); - - $stmt = $dbh->prepare( - "SELECT UNIX_TIMESTAMP(r.timestamp) timestamp, a.name, r.revision, r.platform " . - "FROM " . DB_TESTMAN . ".winetest_runs r " . - "JOIN " . DB_ROSCMS . ".roscms_accounts a ON r.user_id = a.id " . - "WHERE r.id = :id" - ); - - for($i = 0; $i < count($id_array); $i++) - { - $stmt->bindParam(":id", $id_array[$i]); - $stmt->execute() or die("Query failed #3"); - $row = $stmt->fetch(PDO::FETCH_ASSOC); - - echo '<th onmousedown="ResultHead_OnMouseDown(this)">'; - printf($testman_langres["resulthead"], $row["revision"], GetDateString($row["timestamp"]), $row["name"], GetPlatformString($row["platform"])); - echo '</th>'; - } - - echo '</tr></thead>'; - echo '<tbody>'; - - $oddeven = false; - $unchanged = array(); + $result_stmt[$i]->execute() or die("Query failed #4 for statement $i"); + } // Get all test suites for which we have at least one result in our ID list $stmt = $dbh->query( @@ -182,7 +208,10 @@ "JOIN " . DB_TESTMAN . ".winetest_results e ON e.suite_id = s.id " . "WHERE test_id IN (" . $_GET["ids"] . ") " . "ORDER BY s.module ASC, s.test ASC" - ) or die("Query failed #3"); + ) or die("Query failed #5"); + + $oddeven = true; + $unchanged = array(); while($suites_row = $stmt->fetch(PDO::FETCH_ASSOC)) { @@ -190,32 +219,32 @@ printf('<td onmouseover="Cell_OnMouseOver(this)" onmouseout="Cell_OnMouseOut(this)">%s:%s</td>', $suites_row["module"], $suites_row["test"]); $changed = false; - $prev_result_row = null; + $prev_row = null; $temp_totaltests = -1; $temp_failedtests = -1; $temp_skippedtests = -1; for($i = 0; $i < count($result_stmt); $i++) { - $result_row = $result_stmt[$i]->fetch(PDO::FETCH_ASSOC); + $row = $result_stmt[$i]->fetch(PDO::FETCH_ASSOC); echo '<td onmouseover="Cell_OnMouseOver(this)" onmouseout="Cell_OnMouseOut(this)"'; - if($result_row["id"]) - printf(' class="clickable" onclick="Result_OnClick(%d)"', $result_row["id"]); + if($row["id"]) + printf(' class="clickable" onclick="Result_OnClick(%d)"', $row["id"]); echo '>'; // Check whether there are any changes within the test results of several runs - CheckIfChanged($changed, $temp_totaltests, $result_row["count"]); - CheckIfChanged($changed, $temp_failedtests, $result_row["failures"]); - CheckIfChanged($changed, $temp_skippedtests, $result_row["skipped"]); - - if($result_row["id"]) + CheckIfChanged($changed, $temp_totaltests, $row["count"]); + CheckIfChanged($changed, $temp_failedtests, $row["failures"]); + CheckIfChanged($changed, $temp_skippedtests, $row["skipped"]); + + if($row["id"]) { - printf('<div title="%s" class="box totaltests">%s <span class="diff">%s</span></div>', $testman_langres["totaltests"], GetTotalTestsString($result_row), GetDifference($result_row, $prev_result_row, "count")); - printf('<div title="%s" class="box %s_failedtests">%d <span class="diff">%s</span></div>', $testman_langres["failedtests"], (($result_row["failures"] > 0 || $result_row["status"] != "ok") ? 'real' : 'zero'), $result_row["failures"], GetDifference($result_row, $prev_result_row, "failures")); - printf('<div title="%s" class="box skippedtests">%d <span class="diff">%s</span></div>', $testman_langres["skippedtests"], $result_row["skipped"], GetDifference($result_row, $prev_result_row, "skipped")); + printf('<div title="%s" class="box totaltests">%s <span class="diff">%s</span></div>', $testman_langres["totaltests"], GetTotalTestsString($row), GetDifference($row, $prev_row, "count")); + printf('<div title="%s" class="box %s_failedtests">%d <span class="diff">%s</span></div>', $testman_langres["failedtests"], (($row["failures"] > 0 || $row["status"] != "ok") ? 'real' : 'zero'), $row["failures"], GetDifference($row, $prev_row, "failures")); + printf('<div title="%s" class="box skippedtests">%d <span class="diff">%s</span></div>', $testman_langres["skippedtests"], $row["skipped"], GetDifference($row, $prev_row, "skipped")); } else { @@ -225,7 +254,7 @@ echo '</td>'; - $prev_result_row = $result_row; + $prev_row = $row; } echo '</tr>'; @@ -242,10 +271,7 @@ echo "<script type="text/javascript">\n"; echo "//<![CDATA[\n"; echo "var UnchangedRows = Array("; - - // Cut the last comma from the string echo implode(",", $unchanged); - echo ");\n"; echo "//]]>\n"; echo "</script>";
Modified: branches/danny-web/www/www.reactos.org/testman/css/compare.css URL: http://svn.reactos.org/svn/reactos/branches/danny-web/www/www.reactos.org/te... ============================================================================== --- branches/danny-web/www/www.reactos.org/testman/css/compare.css [iso-8859-1] (original) +++ branches/danny-web/www/www.reactos.org/testman/css/compare.css [iso-8859-1] Fri Jun 19 03:07:42 2009 @@ -80,6 +80,10 @@ width: 200px; }
+#comparetable td#totals { + font-weight: bold; +} + #comparetable td, #comparetable td div.box { border-right: solid 1px #BBBBBB; border-bottom: solid 1px #BBBBBB; @@ -103,3 +107,11 @@ font-weight: bold; width: 130px; } + +#comparetable td div.totals { + width: 163.5px; +} + +#comparetable tr.separator { + height: 10px; +}
Modified: branches/danny-web/www/www.reactos.org/testman/js/compare.js.php URL: http://svn.reactos.org/svn/reactos/branches/danny-web/www/www.reactos.org/te... ============================================================================== --- branches/danny-web/www/www.reactos.org/testman/js/compare.js.php [iso-8859-1] (original) +++ branches/danny-web/www/www.reactos.org/testman/js/compare.js.php [iso-8859-1] Fri Jun 19 03:07:42 2009 @@ -80,6 +80,10 @@ // Remove all difference data in this case as there is no previous element for(var i = 0; i < trs.length; i++) { + // Ignore empty rows (like separator rows) + if(!trs[i].childNodes.length) + continue; + var divs = trs[i].childNodes[Index].getElementsByTagName("div"); for(var j = 0; j < divs.length; j++) @@ -95,6 +99,10 @@ // No, then add the difference data accordingly for(var i = 0; i < trs.length; i++) { + // Ignore empty rows (like separator rows) + if(!trs[i].childNodes.length) + continue; + // We can only add difference data if the current table and the previous one contain result data if(trs[i].childNodes[Index].firstChild.nodeName != "DIV" || trs[i].childNodes[Index - 1].firstChild.nodeName != "DIV") continue; @@ -262,7 +270,8 @@ var tbody_trs = document.getElementById("comparetable").childNodes[1].childNodes; for(var i = 0; i < tbody_trs.length; i++) - SwapElements(tbody_trs[i].childNodes[DragColumnIndex], tbody_trs[i].childNodes[SwapColumnIndex]); + if(tbody_trs[i].childNodes.length) + SwapElements(tbody_trs[i].childNodes[DragColumnIndex], tbody_trs[i].childNodes[SwapColumnIndex]); AddDifferenceForColumn(DragColumn); AddDifferenceForColumn(SwapColumn);
Modified: branches/danny-web/www/www.reactos.org/testman/lang/de.inc.php URL: http://svn.reactos.org/svn/reactos/branches/danny-web/www/www.reactos.org/te... ============================================================================== --- branches/danny-web/www/www.reactos.org/testman/lang/de.inc.php [iso-8859-1] (original) +++ branches/danny-web/www/www.reactos.org/testman/lang/de.inc.php [iso-8859-1] Fri Jun 19 03:07:42 2009 @@ -40,14 +40,15 @@ "showchanged" => "Nur geänderte Ergebnisse anzeigen", "legend" => "Legende", - "totaltests" => "Alle Tests", + "totaltests" => "Ausgeführte Tests", "failedtests" => "Fehlgeschlagene Tests", "skippedtests" => "Ãbersprungene Tests", "difference" => "Unterschied zum vorherigen Ergebnis", "testsuite" => "Test Suite", "resulthead" => "Revision %d<br />am %s<br />von %s<br />unter %s", - + "totals" => "Gesamtzahlen", + // Result Details page "detail_title" => "Ergebnis-Details",
Modified: branches/danny-web/www/www.reactos.org/testman/lang/en.inc.php URL: http://svn.reactos.org/svn/reactos/branches/danny-web/www/www.reactos.org/te... ============================================================================== --- branches/danny-web/www/www.reactos.org/testman/lang/en.inc.php [iso-8859-1] (original) +++ branches/danny-web/www/www.reactos.org/testman/lang/en.inc.php [iso-8859-1] Fri Jun 19 03:07:42 2009 @@ -47,7 +47,8 @@ "testsuite" => "Test Suite", "resulthead" => "Revision %d<br />at %s<br />by %s<br />under %s", - + "totals" => "Totals", + // Result Details page "detail_title" => "Result Details",
Modified: branches/danny-web/www/www.reactos.org/testman/lang/pl.inc.php URL: http://svn.reactos.org/svn/reactos/branches/danny-web/www/www.reactos.org/te... ============================================================================== --- branches/danny-web/www/www.reactos.org/testman/lang/pl.inc.php [iso-8859-1] (original) +++ branches/danny-web/www/www.reactos.org/testman/lang/pl.inc.php [iso-8859-1] Fri Jun 19 03:07:42 2009 @@ -48,6 +48,7 @@ "testsuite" => "Zestaw testów", "resulthead" => "Rewizja %d<br />dnia %s<br />przez %s<br /> na %s", + "totals" => "ÅÄ cznie", // Result Details page "detail_title" => "SzczegóÅy wyniku",