- Revision
- 90432
- Author
- [email protected]
- Date
- 2011-07-05 20:44:09 -0700 (Tue, 05 Jul 2011)
Log Message
2011-07-05 Adam Barth <[email protected]>
Add results_unittests.js to garden-o-matic
https://bugs.webkit.org/show_bug.cgi?id=63971
Reviewed by Eric Seidel.
Adding these unit tests forced me to commit to an API for the results
module. I'm not sure if this is the API we'll end up with, but it's
something not entirely unreasonable.
Also, I've changed results.js over to WebKit style, as discussed previously.
* Scripts/webkitpy/tool/servers/data/gardeningserver/index.html:
* Scripts/webkitpy/tool/servers/data/gardeningserver/results.js:
* Scripts/webkitpy/tool/servers/data/gardeningserver/results_unittests.js: Added.
* Scripts/webkitpy/tool/servers/data/gardeningserver/run-unittests.html:
Modified Paths
Added Paths
Diff
Modified: trunk/Tools/ChangeLog (90431 => 90432)
--- trunk/Tools/ChangeLog 2011-07-06 03:34:54 UTC (rev 90431)
+++ trunk/Tools/ChangeLog 2011-07-06 03:44:09 UTC (rev 90432)
@@ -1,3 +1,21 @@
+2011-07-05 Adam Barth <[email protected]>
+
+ Add results_unittests.js to garden-o-matic
+ https://bugs.webkit.org/show_bug.cgi?id=63971
+
+ Reviewed by Eric Seidel.
+
+ Adding these unit tests forced me to commit to an API for the results
+ module. I'm not sure if this is the API we'll end up with, but it's
+ something not entirely unreasonable.
+
+ Also, I've changed results.js over to WebKit style, as discussed previously.
+
+ * Scripts/webkitpy/tool/servers/data/gardeningserver/index.html:
+ * Scripts/webkitpy/tool/servers/data/gardeningserver/results.js:
+ * Scripts/webkitpy/tool/servers/data/gardeningserver/results_unittests.js: Added.
+ * Scripts/webkitpy/tool/servers/data/gardeningserver/run-unittests.html:
+
2011-07-05 Eric Seidel <[email protected]>
Teach run-webkit-tests how to translate --qt and --gtk for new-run-webkit-tests.
Modified: trunk/Tools/Scripts/webkitpy/tool/servers/data/gardeningserver/index.html (90431 => 90432)
--- trunk/Tools/Scripts/webkitpy/tool/servers/data/gardeningserver/index.html 2011-07-06 03:34:54 UTC (rev 90431)
+++ trunk/Tools/Scripts/webkitpy/tool/servers/data/gardeningserver/index.html 2011-07-06 03:44:09 UTC (rev 90432)
@@ -35,7 +35,16 @@
</ul>
<script src=""
<script src=""
+<script src=""
<script src=""
-<script src=""
+<script>
+function logUnexpectedFailures(builderResults) {
+ unexpectedFailures = builderResults.unexpectedFailures();
+ console.log('== Unexpected Failures ==')
+ console.log(unexpectedFailures);
+}
+
+results.fetchResultsForBuilder('Webkit Linux', logUnexpectedFailures);
+</script>
</body>
</html>
Modified: trunk/Tools/Scripts/webkitpy/tool/servers/data/gardeningserver/results.js (90431 => 90432)
--- trunk/Tools/Scripts/webkitpy/tool/servers/data/gardeningserver/results.js 2011-07-06 03:34:54 UTC (rev 90431)
+++ trunk/Tools/Scripts/webkitpy/tool/servers/data/gardeningserver/results.js 2011-07-06 03:44:09 UTC (rev 90432)
@@ -1,62 +1,77 @@
+var results = results || {};
+
(function() {
- var TEST_RESULTS_SERVER = 'http://test-results.appspot.com/';
- var TEST_TYPE = 'layout-tests';
- var RESULTS_NAME = 'full_results.json';
- var MASTER_NAME = 'ChromiumWebkit';
- var FAILING_RESULTS = ['TIMEOUT', 'TEXT', 'CRASH', 'IMAGE','IMAGE+TEXT'];
- function isFailure(result) {
- return FAILING_RESULTS.indexOf(result) != -1;
- }
+var kTestResultsServer = 'http://test-results.appspot.com/';
+var kTestType = 'layout-tests';
+var kResultsName = 'full_results.json';
+var kMasterName = 'ChromiumWebkit';
+var kFailingResults = ['TIMEOUT', 'TEXT', 'CRASH', 'IMAGE','IMAGE+TEXT'];
- function anyIsFailure(results_list) {
- return $.grep(results_list, isFailure).length > 0;
- }
+function isFailure(result)
+{
+ return kFailingResults.indexOf(result) != -1;
+}
- function addImpliedExpectations(results_list) {
- if (results_list.indexOf('FAIL') == -1)
- return results_list;
- return results_list.concat(FAILING_RESULTS);
- }
+function anyIsFailure(resultsList)
+{
+ return $.grep(resultsList, isFailure).length > 0;
+}
- function unexpectedResults(result_node) {
- var actual_results = result_node.actual.split(' ');
- var expected_results = addImpliedExpectations(result_node.expected.split(' '))
+function addImpliedExpectations(resultsList)
+{
+ if (resultsList.indexOf('FAIL') == -1)
+ return resultsList;
+ return resultsList.concat(kFailingResults);
+}
- return $.grep(actual_results, function(result) {
- return expected_results.indexOf(result) == -1;
+function unexpectedResults(resultNode)
+{
+ var actualResults = resultNode.actual.split(' ');
+ var expectedResults = addImpliedExpectations(resultNode.expected.split(' '))
+
+ return $.grep(actualResults, function(result) {
+ return expectedResults.indexOf(result) == -1;
});
- }
+}
- function isUnexpectedFailure(result_node) {
- return anyIsFailure(unexpectedResults(result_node));
- }
+function isUnexpectedFailure(resultNode)
+{
+ return anyIsFailure(unexpectedResults(resultNode));
+}
- function isResultNode(node) {
+function isResultNode(node)
+{
return !!node.actual;
- }
+}
- function logUnexpectedFailures(results_json) {
- unexpected_failures = base.filterTree(results_json.tests, isResultNode, isUnexpectedFailure);
- console.log('== Unexpected Failures ==')
- console.log(unexpected_failures);
- }
+results.BuilderResults = function(m_resultsJSON)
+{
+ this.m_resultsJSON = m_resultsJSON;
+}
- function resultsURL(builder_name, name) {
- return TEST_RESULTS_SERVER + 'testfile' +
- '?builder=' + builder_name +
- '&master=' + MASTER_NAME +
- '&testtype=' + TEST_TYPE +
- '&name=' + name;
- }
+results.BuilderResults.prototype.unexpectedFailures = function() {
+ return base.filterTree(this.m_resultsJSON.tests, isResultNode, isUnexpectedFailure);
+}
- function fetchResults(builder_name, onsuccess) {
+function resultsURL(builderName, name)
+{
+ return kTestResultsServer + 'testfile' +
+ '?builder=' + builderName +
+ '&master=' + kMasterName +
+ '&testtype=' + kTestType +
+ '&name=' + name;
+}
+
+results.fetchResultsForBuilder = function(builderName, onsuccess)
+{
$.ajax({
- url: resultsURL(builder_name, RESULTS_NAME),
- dataType: 'jsonp',
- success: onsuccess
+ url: resultsURL(builderName, kResultsName),
+ dataType: 'jsonp',
+ success: function(data) {
+ onsuccess(new results.BuilderResults(data));
+ }
});
- }
+}
- fetchResults('Webkit Linux', logUnexpectedFailures);
})();
Added: trunk/Tools/Scripts/webkitpy/tool/servers/data/gardeningserver/results_unittests.js (0 => 90432)
--- trunk/Tools/Scripts/webkitpy/tool/servers/data/gardeningserver/results_unittests.js (rev 0)
+++ trunk/Tools/Scripts/webkitpy/tool/servers/data/gardeningserver/results_unittests.js 2011-07-06 03:44:09 UTC (rev 90432)
@@ -0,0 +1,45 @@
+module("results");
+
+var kExampleResultsJSON = {
+ "tests": {
+ "scrollbars": {
+ "custom-scrollbar-with-incomplete-style.html": {
+ "expected": "IMAGE",
+ "actual": "IMAGE"
+ }
+ },
+ "userscripts": {
+ "user-script-video-document.html": {
+ "expected": "FAIL",
+ "actual": "TEXT"
+ },
+ "another-test.html": {
+ "expected": "PASS",
+ "actual": "TEXT"
+ }
+ },
+ },
+ "skipped": 339,
+ "num_regressions": 14,
+ "interrupted": false,
+ "layout_tests_dir": "\/mnt\/data\/b\/build\/slave\/Webkit_Linux\/build\/src\/third_party\/WebKit\/LayoutTests",
+ "version": 3,
+ "num_passes": 15566,
+ "has_pretty_patch": false,
+ "fixable": 1233,
+ "num_flaky":1,
+ "uses_expectations_file": true,
+ "has_wdiff": true,
+ "revision": "90430"
+}
+
+test("BuilderResults.unexpectedFailures", 1, function() {
+ var builderResults = new results.BuilderResults(kExampleResultsJSON);
+ var unexpectedFailures = builderResults.unexpectedFailures();
+ deepEqual(unexpectedFailures, {
+ "userscripts/another-test.html": {
+ "expected": "PASS",
+ "actual": "TEXT"
+ }
+ });
+});
Modified: trunk/Tools/Scripts/webkitpy/tool/servers/data/gardeningserver/run-unittests.html (90431 => 90432)
--- trunk/Tools/Scripts/webkitpy/tool/servers/data/gardeningserver/run-unittests.html 2011-07-06 03:34:54 UTC (rev 90431)
+++ trunk/Tools/Scripts/webkitpy/tool/servers/data/gardeningserver/run-unittests.html 2011-07-06 03:44:09 UTC (rev 90432)
@@ -2,6 +2,7 @@
<html>
<head>
<link rel="stylesheet" href=""
+<script src=""
<script src=""
</head>
<body>
@@ -12,5 +13,7 @@
<ol id="qunit-tests"></ol>
<script src=""
<script src=""
+<script src=""
+<script src=""
</body>
</html>