[ros-diffs] [cfinck] 373: - Separate the logs into an extra table "winetest_logs" to lower the memory requirements for JOINs with "winetest_results" by several magnitudes Fixes testman's slowness on our testing web server. - Escape the log with htmlspecialchars() in detail.php (fixes showing KDBG frames)

cfinck at svn.reactos.org cfinck at svn.reactos.org
Thu Apr 16 01:47:13 CEST 2009


Author: cfinck
Date: Thu Apr 16 03:47:13 2009
New Revision: 373

URL: http://svn.reactos.org/svn/reactos?rev=373&view=rev
Log:
- Separate the logs into an extra table "winetest_logs" to lower the memory requirements for JOINs with "winetest_results" by several magnitudes
  Fixes testman's slowness on our testing web server.
- Escape the log with htmlspecialchars() in detail.php (fixes showing KDBG frames)

Modified:
    branches/danny-web/resources/testman/testman.sql
    branches/danny-web/www/www.reactos.org/testman/detail.php
    branches/danny-web/www/www.reactos.org/testman/webservice/lib/WineTest.class.php

Modified: branches/danny-web/resources/testman/testman.sql
URL: http://svn.reactos.org/svn/reactos/branches/danny-web/resources/testman/testman.sql?rev=373&r1=372&r2=373&view=diff
==============================================================================
--- branches/danny-web/resources/testman/testman.sql [iso-8859-1] (original)
+++ branches/danny-web/resources/testman/testman.sql [iso-8859-1] Thu Apr 16 03:47:13 2009
@@ -5,11 +5,16 @@
   PRIMARY KEY  (`user_id`)
 ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
 
+CREATE TABLE `winetest_logs` (
+  `id` int(10) unsigned NOT NULL auto_increment,
+  `log` longtext collate latin1_general_ci NOT NULL,
+  PRIMARY KEY  (`id`)
+) ENGINE=MyISAM  DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
+
 CREATE TABLE `winetest_results` (
   `id` int(10) unsigned NOT NULL auto_increment,
   `test_id` int(10) unsigned NOT NULL,
   `suite_id` int(10) unsigned NOT NULL,
-  `log` longtext collate latin1_general_ci NOT NULL,
   `count` int(10) NOT NULL COMMENT 'Number of all executed tests',
   `todo` int(10) unsigned NOT NULL COMMENT 'Tests marked as TODO',
   `failures` int(10) unsigned NOT NULL COMMENT 'Number of failed tests',

Modified: branches/danny-web/www/www.reactos.org/testman/detail.php
URL: http://svn.reactos.org/svn/reactos/branches/danny-web/www/www.reactos.org/testman/detail.php?rev=373&r1=372&r2=373&view=diff
==============================================================================
--- branches/danny-web/www/www.reactos.org/testman/detail.php [iso-8859-1] (original)
+++ branches/danny-web/www/www.reactos.org/testman/detail.php [iso-8859-1] Thu Apr 16 03:47:13 2009
@@ -52,8 +52,9 @@
 	
 	// Get information about this result
 	$stmt = $dbh->prepare(
-		"SELECT e.log, e.count, e.todo, e.failures, e.skipped, s.module, s.test, UNIX_TIMESTAMP(r.timestamp) timestamp, r.revision, r.platform, a.name, r.comment " .
+		"SELECT l.log, e.count, e.todo, e.failures, e.skipped, s.module, s.test, UNIX_TIMESTAMP(r.timestamp) timestamp, r.revision, r.platform, a.name, r.comment " .
 		"FROM " . DB_TESTMAN . ".winetest_results e " .
+		"JOIN " . DB_TESTMAN . ".winetest_logs l ON e.id = l.id " .
 		"JOIN " . DB_TESTMAN . ".winetest_suites s ON e.suite_id = s.id " .
 		"JOIN " . DB_TESTMAN . ".winetest_runs r ON e.test_id = r.id " .
 		"JOIN " . DB_ROSCMS . ".roscms_accounts a ON r.user_id = a.id " .
@@ -91,7 +92,7 @@
 	</tr>
 	<tr class="odd" onmouseover="Row_OnMouseOver(this)" onmouseout="Row_OnMouseOut(this)">
 		<td class="info"><?php echo $testman_langres["log"]; ?>:</td>
-		<td><pre><?php echo $row["log"]; ?></pre></td>
+		<td><pre><?php echo htmlspecialchars($row["log"]); ?></pre></td>
 	</tr>
 </table><br />
 

Modified: branches/danny-web/www/www.reactos.org/testman/webservice/lib/WineTest.class.php
URL: http://svn.reactos.org/svn/reactos/branches/danny-web/www/www.reactos.org/testman/webservice/lib/WineTest.class.php?rev=373&r1=372&r2=373&view=diff
==============================================================================
--- branches/danny-web/www/www.reactos.org/testman/webservice/lib/WineTest.class.php [iso-8859-1] (original)
+++ branches/danny-web/www/www.reactos.org/testman/webservice/lib/WineTest.class.php [iso-8859-1] Thu Apr 16 03:47:13 2009
@@ -84,15 +84,19 @@
 			}
 			
 			// Add the information into the DB
-			$stmt = $dbh->prepare("INSERT INTO " . DB_TESTMAN . ".winetest_results (test_id, suite_id, log, count, todo, failures, skipped) VALUES (:testid, :suiteid, :log, :count, :todo, :failures, :skipped)");
+			$stmt = $dbh->prepare("INSERT INTO " . DB_TESTMAN . ".winetest_results (test_id, suite_id, count, todo, failures, skipped) VALUES (:testid, :suiteid, :count, :todo, :failures, :skipped)");
 			$stmt->bindValue(":testid", (int)$test_id);
 			$stmt->bindValue(":suiteid", (int)$suite_id);
-			$stmt->bindParam(":log", $log);
 			$stmt->bindParam(":count", $count);
 			$stmt->bindParam(":todo", $todo);
 			$stmt->bindParam(":failures", $failures);
 			$stmt->bindParam(":skipped", $skipped);
 			$stmt->execute() or die("Submit(): SQL failed #2");
+			
+			$stmt = $dbh->prepare("INSERT INTO " . DB_TESTMAN . ".winetest_logs (id, log) VALUES (:id, :log)");
+			$stmt->bindValue(":id", (int)$dbh->lastInsertId());
+			$stmt->bindParam(":log", $log);
+			$stmt->execute() or die("Submit(): SQL failed #3");
 			
 			return "OK";
 		}



More information about the Ros-diffs mailing list