summaryrefslogtreecommitdiffstats
path: root/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/Trac.js
diff options
context:
space:
mode:
Diffstat (limited to 'Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/Trac.js')
-rw-r--r--Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/Trac.js174
1 files changed, 0 insertions, 174 deletions
diff --git a/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/Trac.js b/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/Trac.js
deleted file mode 100644
index 81b5714b2..000000000
--- a/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/Trac.js
+++ /dev/null
@@ -1,174 +0,0 @@
-/*
- * Copyright (C) 2011 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
- * THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-var trac = trac || {};
-
-(function() {
-
-function findUsingRegExp(string, regexp)
-{
- var match = regexp.exec(string);
- if (match)
- return match[1];
- return null;
-}
-
-function findReviewer(message)
-{
- var regexp = /Reviewed by ([^.]+)/;
- return findUsingRegExp(message, regexp);
-}
-
-function findAuthor(message)
-{
- var regexp = /Patch by ([^<]+) </;
- return findUsingRegExp(message, regexp);
-}
-
-function findBugID(message)
-{
- var regexp = /\/show_bug.cgi\?id=(\d+)/;
- return parseInt(findUsingRegExp(message, regexp), 10);
-}
-
-function findRevision(title)
-{
- var regexp = /^Revision (\d+):/;
- return parseInt(findUsingRegExp(title, regexp), 10);
-}
-
-function findSummary(message)
-{
- var lines = message.split('\n');
- for (var i = 0; i < lines.length; ++i) {
- var line = lines[i]
- if (findBugID(line))
- continue;
- if (findReviewer(line))
- continue;
- // Old-style commit message.
- if (/^\d\d\d\d-\d\d-\d\d/.exec(line))
- continue;
- if (line.length > 0)
- return line;
- }
-}
-
-function findRevert(message)
-{
- var regexp = /rolling out r(\d+)\./;
- var revision = findUsingRegExp(message, regexp);
- if (!revision)
- return undefined;
- return parseInt(revision, 10);
-}
-
-// FIXME: Consider exposing this method for unit testing.
-function parseCommitData(responseXML)
-{
- var commits = Array.prototype.map.call(responseXML.getElementsByTagName('item'), function(item) {
- var title = item.getElementsByTagName('title')[0].textContent;
- var author = item.getElementsByTagName('author')[0].textContent;
- var time = item.getElementsByTagName('pubDate')[0].textContent;
-
- // FIXME: This isn't a very high-fidelity reproduction of the commit message,
- // but it's good enough for our purposes.
- var container = document.createElement('div');
- container.innerHTML = item.getElementsByTagName('description')[0].textContent;
- var message = container.innerText;
-
- return {
- 'revision': findRevision(title),
- 'title': title,
- 'time': time,
- 'summary': findSummary(message),
- 'author': findAuthor(message) || author,
- 'reviewer': findReviewer(message),
- 'bugID': findBugID(message),
- 'message': message,
- 'revertedRevision': findRevert(message),
- };
- });
-
- return commits;
-}
-
-var g_cache = new base.AsynchronousCache(function(key, callback) {
- var explodedKey = key.split('\n');
-
- var path = explodedKey[0];
- var startRevision = explodedKey[1];
- var endRevision = explodedKey[2];
-
- var url = trac.logURL(path, startRevision, endRevision, true, true);
-
- net.get(url, function(commitData) {
- callback(parseCommitData(commitData));
- });
-});
-
-trac.changesetURL = function(revision)
-{
- return config.kTracURL + '/changeset/' + revision;
-};
-
-trac.logURL = function(path, startRevision, endRevision, showFullCommitLogs, formatAsRSS)
-{
- var queryParameters = {
- rev: endRevision,
- stop_rev: startRevision,
- // Trac requires limit to be 1 more than the number of revisions we actually want to show.
- // See <http://trac.edgewall.org/ticket/10317>.
- limit: endRevision - startRevision + 2,
- };
-
- if (showFullCommitLogs)
- queryParameters.verbose = 'on';
- if (formatAsRSS)
- queryParameters.format = 'rss';
-
- return config.kTracURL + '/log/' + path + '?' + $.param(queryParameters);
-};
-
-trac.recentCommitData = function(path, limit, callback)
-{
- var url = config.kTracURL + '/log/' + path + '?' + $.param({
- 'verbose': 'on',
- 'format': 'rss',
- 'limit': limit,
- });
-
- net.get(url, function(commitData) {
- callback(parseCommitData(commitData));
- });
-};
-
-trac.commitDataForRevisionRange = function(path, startRevision, endRevision, callback)
-{
- var key = [path, startRevision, endRevision].join('\n');
- g_cache.get(key, callback);
-};
-
-})();