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

Side by Side Diff: Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/NRWTResultsParser.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 NRWTResultsParser() {
27 }
28
29 NRWTResultsParser.prototype = {
30 parse: function(unexpectedResultsJS) {
31 var data;
32 function ADD_RESULTS(x) {
33 data = x;
34 }
35
36 eval(unexpectedResultsJS);
37 console.assert(data);
38
39 var result = { tests: {}, tooManyFailures: data.interrupted };
40
41 function forEachTest(tree, handler, opt_prefix) {
42 var prefix = opt_prefix || '';
43
44 for (var key in tree) {
45 var newPrefix = prefix ? (prefix + '/' + key) : key;
46 if ('actual' in tree[key]) {
47 var testObject = tree[key];
48 testObject.name = newPrefix;
49 handler(testObject);
50 } else
51 forEachTest(tree[key], handler, newPrefix);
52 }
53 }
54
55 function isFailureExpected(expected, actual) {
56 if (actual === 'SKIP')
57 return true;
58
59 var expectedArray = expected.split(' ');
60 var actualArray = actual.split(' ');
61 for (var i = 0; i < actualArray.length; i++) {
62 var actualValue = actualArray[i];
63 if (expectedArray.contains(actualValue))
64 continue;
65 if (expectedArray.contains('FAIL') && ['IMAGE', 'TEXT', 'IMAGE+T EXT'].contains(actualValue))
66 continue;
67 return false;
68 }
69
70 return true;
71 }
72
73 function convertNRWTResultString(nrwtResult) {
74 const translations = {
75 CRASH: 'crash',
76 'IMAGE+TEXT': 'fail',
77 IMAGE: 'fail',
78 TEXT: 'fail',
79 TIMEOUT: 'timeout',
80 };
81
82 if (nrwtResult in translations)
83 return translations[nrwtResult];
84
85 if (nrwtResult.contains(' '))
86 return 'flaky';
87
88 return 'unknown failure type ' + nrwtResult;
89 }
90
91 forEachTest(data.tests, function(test) {
92 if (isFailureExpected(test.expected, test.actual))
93 return;
94 result.tests[test.name] = { failureType: convertNRWTResultString(tes t.actual) };
95 });
96
97 return result;
98 },
99 };
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698