Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(762)

Side by Side Diff: Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ORWTResultsParser.js

Issue 13712005: Move GardeningServer out of BuildSlaveSupport (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 7 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
1 /*
2 * Copyright (C) 2011 Apple Inc. All rights reserved.
3 *
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions
6 * are met:
7 * 1. Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.
9 * 2. Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the
11 * documentation and/or other materials provided with the distribution.
12 *
13 * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
14 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
15 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
16 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
17 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
18 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
19 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
20 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
21 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
22 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
23 * THE POSSIBILITY OF SUCH DAMAGE.
24 */
25
26 function ORWTResultsParser() {
27 }
28
29 ORWTResultsParser.prototype = {
30 parse: function(resultsHTMLString) {
31 var result = { tests: {}, tooManyFailures: false };
32
33 var root = document.createElement('html');
34 root.innerHTML = resultsHTMLString;
35
36 // Note that some old results.html files won't contain this element even if we had to stop
37 // running early due to too many failures. Our caller will have to figur e that out
38 // themselves.
39 result.tooManyFailures = root.getElementsByClassName('stopped-running-ea rly-message').length > 0;
40
41 function parseResultTable(regex) {
42 var paragraph = Array.prototype.findFirst.call(root.querySelectorAll ('p'), function(paragraph) {
43 return regex.test(paragraph.innerText);
44 });
45 if (!paragraph)
46 return [];
47 var table = paragraph.nextElementSibling;
48 console.assert(table.nodeName === 'TABLE');
49 return Array.prototype.map.call(table.rows, function(row) {
50 var links = row.getElementsByTagName('a');
51 var result = {
52 name: links[0].innerText,
53 };
54 for (var i = 1; i < links.length; ++i) {
55 var match = /^crash log \((.*)\)$/.exec(links[i].innerText);
56 if (!match)
57 continue;
58 result.crashingSymbol = match[1];
59 break;
60 }
61 return result;
62 });
63 }
64
65 parseResultTable(/did not match expected results/).forEach(function(test Data) {
66 result.tests[testData.name] = { failureType: 'fail' };
67 });
68 parseResultTable(/timed out/).forEach(function(testData) {
69 result.tests[testData.name] = { failureType: 'timeout' };
70 });
71 parseResultTable(/tool to crash/).forEach(function(testData) {
72 result.tests[testData.name] = {
73 failureType: 'crash',
74 crashingSymbol: testData.crashingSymbol,
75 };
76 });
77 parseResultTable(/Web process to crash/).forEach(function(testData) {
78 result.tests[testData.name] = {
79 failureType: 'webprocess crash',
80 crashingSymbol: testData.crashingSymbol,
81 };
82 });
83
84 return result;
85 },
86 };
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698