initial import
[vuplus_webkit] / Tools / BuildSlaveSupport / build.webkit.org-config / public_html / TestFailures / scripts / builders_unittests.js
1 /*
2  * Copyright (C) 2011 Google 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 () {
27
28 module("builders");
29
30 var kExampleBuilderStatusJSON =  {
31     "Webkit Linux": {
32         "basedir": "Webkit_Linux",
33         "cachedBuilds": [11459, 11460, 11461, 11462],
34         "category": "6webkit linux latest",
35         "currentBuilds": [11462],
36         "pendingBuilds": 0,
37         "slaves": ["vm124-m1"],
38         "state": "building"
39     },
40     "Webkit Mac10.6 (CG)": {
41         "basedir": "Webkit_Linux",
42         "cachedBuilds": [11459, 11460, 11461, 11462],
43         "category": "6webkit linux latest",
44         "currentBuilds": [11461, 11462],
45         "pendingBuilds": 0,
46         "slaves": ["vm124-m1"],
47         "state": "building"
48     },
49 };
50
51 var kExampleBuildInfoJSON = {
52     "blame": ["abarth@webkit.org"],
53     "builderName": "Webkit Linux",
54     "changes": ["Files:\n Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/main.js\n Tools/ChangeLog\nAt: Thu 04 Aug 2011 00:50:38\nChanged By: abarth@webkit.org\nComments: Fix types.  Sadly, main.js has no test coverage.  (I need to think\nabout how to test this part of the code.)\n\n* BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/main.js:Properties: \n\n\n", "Files:\n LayoutTests/ChangeLog\n LayoutTests/platform/chromium-mac/fast/box-shadow/inset-box-shadows-expected.png\n LayoutTests/platform/chromium-mac/fast/repaint/shadow-multiple-horizontal-expected.png\n LayoutTests/platform/chromium-mac/fast/repaint/shadow-multiple-strict-horizontal-expected.png\n LayoutTests/platform/chromium-mac/fast/repaint/shadow-multiple-strict-vertical-expected.png\n LayoutTests/platform/chromium-mac/fast/repaint/shadow-multiple-vertical-expected.png\nAt: Thu 04 Aug 2011 00:50:38\nChanged By: abarth@webkit.org\nComments: Update baselines after <http://trac.webkit.org/changeset/92340>.\n\n* platform/chromium-mac/fast/box-shadow/inset-box-shadows-expected.png:\n* platform/chromium-mac/fast/repaint/shadow-multiple-horizontal-expected.png:\n* platform/chromium-mac/fast/repaint/shadow-multiple-strict-horizontal-expected.png:\n* platform/chromium-mac/fast/repaint/shadow-multiple-strict-vertical-expected.png:\n* platform/chromium-mac/fast/repaint/shadow-multiple-vertical-expected.png:Properties: \n\n\n"],
55     "currentStep": null,
56     "eta": null,
57     "logs": [
58         ["stdio", "http://build.chromium.org/p/chromium.webkitbuilders/Webkit%20Linux/builds/11461/steps/update_scripts/logs/stdio"],
59         ["stdio", "http://build.chromium.org/p/chromium.webkitbuilders/Webkit%20Linux/builds/11461/steps/update/logs/stdio"],
60         ["stdio", "http://build.chromium.org/p/chromium.webkitbuilders/Webkit%20Linux/builds/11461/steps/compile/logs/stdio"],
61         ["stdio", "http://build.chromium.org/p/chromium.webkitbuilders/Webkit%20Linux/builds/11461/steps/test_shell_tests/logs/stdio"],
62         ["stdio", "http://build.chromium.org/p/chromium.webkitbuilders/Webkit%20Linux/builds/11461/steps/webkit_unit_tests/logs/stdio"],
63         ["stdio", "http://build.chromium.org/p/chromium.webkitbuilders/Webkit%20Linux/builds/11461/steps/webkit_tests/logs/stdio"],
64         ["stdio", "http://build.chromium.org/p/chromium.webkitbuilders/Webkit%20Linux/builds/11461/steps/archive_webkit_tests_results/logs/stdio"],
65         ["stdio", "http://build.chromium.org/p/chromium.webkitbuilders/Webkit%20Linux/builds/11461/steps/webkit_gpu_tests/logs/stdio"],
66         ["stdio", "http://build.chromium.org/p/chromium.webkitbuilders/Webkit%20Linux/builds/11461/steps/archive_webkit_tests_gpu_results/logs/stdio"]
67     ],
68     "number": 11461,
69     "properties": [
70         ["blamelist", ["abarth@webkit.org"], "Build"],
71         ["branch", "trunk", "Build"],
72         ["buildername", "Webkit Linux", "Build"],
73         ["buildnumber", 11461, "Build"],
74         ["got_revision", "95395", "Source"],
75         ["got_webkit_revision", "92358", "Source"],
76         ["gtest_filter", null, "Factory"],
77         ["mastername", "chromium.webkit", "master.cfg"],
78         ["revision", "92358", "Build"],
79         ["scheduler", "s6_webkit_rel", "Scheduler"],
80         ["slavename", "vm124-m1", "BuildSlave"]
81     ],
82     "reason": "",
83     "requests": [{
84         "builderName": "Webkit Linux",
85         "builds": [11461],
86         "source": {
87             "branch": "trunk",
88             "changes": [{
89                 "branch": "trunk",
90                 "category": null,
91                 "comments": "Fix types.  Sadly, main.js has no test coverage.  (I need to think\nabout how to test this part of the code.)\n\n* BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/main.js:",
92                 "files": ["Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/main.js", "Tools/ChangeLog"],
93                 "number": 43707,
94                 "properties": [],
95                 "repository": "",
96                 "revision": "92357",
97                 "revlink": "http://trac.webkit.org/changeset/92357",
98                 "when": 1312444238.855081,
99                 "who": "abarth@webkit.org"
100             }, {
101                 "branch": "trunk",
102                 "category": null,
103                 "comments": "Update baselines after <http://trac.webkit.org/changeset/92340>.\n\n* platform/chromium-mac/fast/box-shadow/inset-box-shadows-expected.png:\n* platform/chromium-mac/fast/repaint/shadow-multiple-horizontal-expected.png:\n* platform/chromium-mac/fast/repaint/shadow-multiple-strict-horizontal-expected.png:\n* platform/chromium-mac/fast/repaint/shadow-multiple-strict-vertical-expected.png:\n* platform/chromium-mac/fast/repaint/shadow-multiple-vertical-expected.png:",
104                 "files": ["LayoutTests/ChangeLog", "LayoutTests/platform/chromium-mac/fast/box-shadow/inset-box-shadows-expected.png", "LayoutTests/platform/chromium-mac/fast/repaint/shadow-multiple-horizontal-expected.png", "LayoutTests/platform/chromium-mac/fast/repaint/shadow-multiple-strict-horizontal-expected.png", "LayoutTests/platform/chromium-mac/fast/repaint/shadow-multiple-strict-vertical-expected.png", "LayoutTests/platform/chromium-mac/fast/repaint/shadow-multiple-vertical-expected.png"],
105                 "number": 43708,
106                 "properties": [],
107                 "repository": "",
108                 "revision": "92358",
109                 "revlink": "http://trac.webkit.org/changeset/92358",
110                 "when": 1312444238.855538,
111                 "who": "abarth@webkit.org"
112             }],
113             "hasPatch": false,
114             "revision": "92358"
115         },
116         "submittedAt": 1312444298.989818
117     }],
118     "results": 2,
119     "slave": "vm124-m1",
120     "sourceStamp": {
121         "branch": "trunk",
122         "changes": [{
123             "branch": "trunk",
124             "category": null,
125             "comments": "Fix types.  Sadly, main.js has no test coverage.  (I need to think\nabout how to test this part of the code.)\n\n* BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/main.js:",
126             "files": ["Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/main.js", "Tools/ChangeLog"],
127             "number": 43707,
128             "properties": [],
129             "repository": "",
130             "revision": "92357",
131             "revlink": "http://trac.webkit.org/changeset/92357",
132             "when": 1312444238.855081,
133             "who": "abarth@webkit.org"
134         }, {
135             "branch": "trunk",
136             "category": null,
137             "comments": "Update baselines after <http://trac.webkit.org/changeset/92340>.\n\n* platform/chromium-mac/fast/box-shadow/inset-box-shadows-expected.png:\n* platform/chromium-mac/fast/repaint/shadow-multiple-horizontal-expected.png:\n* platform/chromium-mac/fast/repaint/shadow-multiple-strict-horizontal-expected.png:\n* platform/chromium-mac/fast/repaint/shadow-multiple-strict-vertical-expected.png:\n* platform/chromium-mac/fast/repaint/shadow-multiple-vertical-expected.png:",
138             "files": ["LayoutTests/ChangeLog", "LayoutTests/platform/chromium-mac/fast/box-shadow/inset-box-shadows-expected.png", "LayoutTests/platform/chromium-mac/fast/repaint/shadow-multiple-horizontal-expected.png", "LayoutTests/platform/chromium-mac/fast/repaint/shadow-multiple-strict-horizontal-expected.png", "LayoutTests/platform/chromium-mac/fast/repaint/shadow-multiple-strict-vertical-expected.png", "LayoutTests/platform/chromium-mac/fast/repaint/shadow-multiple-vertical-expected.png"],
139             "number": 43708,
140             "properties": [],
141             "repository": "",
142             "revision": "92358",
143             "revlink": "http://trac.webkit.org/changeset/92358",
144             "when": 1312444238.855538,
145             "who": "abarth@webkit.org"
146         }],
147         "hasPatch": false,
148         "revision": "92358"
149     },
150     "steps": [{
151         "eta": null,
152         "expectations": [
153             ["output", 2297, 2300.6571014083784]
154         ],
155         "isFinished": true,
156         "isStarted": true,
157         "logs": [
158             ["stdio", "http://build.chromium.org/p/chromium.webkitbuilders/Webkit%20Linux/builds/11461/steps/update_scripts/logs/stdio"]
159         ],
160         "name": "update_scripts",
161         "results": [0, []],
162         "statistics": {},
163         "step_number": 0,
164         "text": ["update_scripts"],
165         "times": [1312444299.102834, 1312444309.270324],
166         "urls": {}
167     }, {
168         "eta": null,
169         "expectations": [
170             ["output", 20453, 17580.5002389645]
171         ],
172         "isFinished": true,
173         "isStarted": true,
174         "logs": [
175             ["stdio", "http://build.chromium.org/p/chromium.webkitbuilders/Webkit%20Linux/builds/11461/steps/update/logs/stdio"]
176         ],
177         "name": "update",
178         "results": [0, []],
179         "statistics": {},
180         "step_number": 1,
181         "text": ["update", "r95395", "webkit r92358"],
182         "times": [1312444309.270763, 1312444398.468139],
183         "urls": {}
184     }, {
185         "eta": null,
186         "expectations": [
187             ["output", 17316, 2652.4850499589456]
188         ],
189         "isFinished": true,
190         "isStarted": true,
191         "logs": [
192             ["stdio", "http://build.chromium.org/p/chromium.webkitbuilders/Webkit%20Linux/builds/11461/steps/compile/logs/stdio"]
193         ],
194         "name": "compile",
195         "results": [0, []],
196         "statistics": {},
197         "step_number": 2,
198         "text": ["compile"],
199         "times": [1312444398.46855, 1312444441.68838],
200         "urls": {}
201     }, {
202         "eta": null,
203         "expectations": [
204             ["output", 91980, 92002.12628325251]
205         ],
206         "isFinished": true,
207         "isStarted": true,
208         "logs": [
209             ["stdio", "http://build.chromium.org/p/chromium.webkitbuilders/Webkit%20Linux/builds/11461/steps/test_shell_tests/logs/stdio"]
210         ],
211         "name": "test_shell_tests",
212         "results": [0, []],
213         "statistics": {},
214         "step_number": 3,
215         "text": ["test_shell_tests", "1 disabled", "2 flaky"],
216         "times": [1312444441.688756, 1312444451.74908],
217         "urls": {}
218     }, {
219         "eta": null,
220         "expectations": [
221             ["output", 20772, 20772.638503443086]
222         ],
223         "isFinished": true,
224         "isStarted": true,
225         "logs": [
226             ["stdio", "http://build.chromium.org/p/chromium.webkitbuilders/Webkit%20Linux/builds/11461/steps/webkit_unit_tests/logs/stdio"]
227         ],
228         "name": "webkit_unit_tests",
229         "results": [0, []],
230         "statistics": {},
231         "step_number": 4,
232         "text": ["webkit_unit_tests", "1 disabled"],
233         "times": [1312444451.749574, 1312444452.306143],
234         "urls": {}
235     }, {
236         "eta": null,
237         "expectations": [
238             ["output", 2477406, 2498915.6146275494]
239         ],
240         "isFinished": true,
241         "isStarted": true,
242         "logs": [
243             ["stdio", "http://build.chromium.org/p/chromium.webkitbuilders/Webkit%20Linux/builds/11461/steps/webkit_tests/logs/stdio"]
244         ],
245         "name": "webkit_tests",
246         "results": [2, ["webkit_tests"]],
247         "statistics": {},
248         "step_number": 5,
249         "text": ["webkit_tests", "2014 fixable", "(370 skipped)", "failed 1", "<div class=\"BuildResultInfo\">", "<a href=\"http://test-results.appspot.com/dashboards/flakiness_dashboard.html#master=ChromiumWebkit&tests=fast/box-shadow/box-shadow-clipped-slices.html\">", "<abbr title=\"fast/box-shadow/box-shadow-clipped-slices.html\">box-shadow-clipped-slices.html</abbr>", "</a>", "</div>"],
250         "times": [1312444452.306695, 1312444768.888266],
251         "urls": {}
252     }, {
253         "eta": null,
254         "expectations": [
255             ["output", 2668845, 2672746.372363254]
256         ],
257         "isFinished": true,
258         "isStarted": true,
259         "logs": [
260             ["stdio", "http://build.chromium.org/p/chromium.webkitbuilders/Webkit%20Linux/builds/11461/steps/archive_webkit_tests_results/logs/stdio"]
261         ],
262         "name": "archive_webkit_tests_results",
263         "results": [0, []],
264         "statistics": {},
265         "step_number": 6,
266         "text": ["archived webkit_tests results"],
267         "times": [1312444768.888746, 1312444781.444399],
268         "urls": {
269             "layout test results": "http://build.chromium.org/buildbot/layout_test_results/Webkit_Linux\r/95395\rNone"
270         }
271     }, {
272         "eta": null,
273         "expectations": [
274             ["output", 210958, 208138.4965182993]
275         ],
276         "isFinished": true,
277         "isStarted": true,
278         "logs": [
279             ["stdio", "http://build.chromium.org/p/chromium.webkitbuilders/Webkit%20Linux/builds/11461/steps/webkit_gpu_tests/logs/stdio"]
280         ],
281         "name": "webkit_gpu_tests",
282         "results": [2, ["webkit_gpu_tests"]],
283         "statistics": {},
284         "step_number": 7,
285         "text": ["webkit_gpu_tests", "148 fixable", "(24 skipped)", "failed 1", "<div class=\"BuildResultInfo\">", "<a href=\"http://test-results.appspot.com/dashboards/flakiness_dashboard.html#master=ChromiumWebkit&tests=compositing/scaling/tiled-layer-recursion.html\">", "<abbr title=\"compositing/scaling/tiled-layer-recursion.html\">tiled-layer-recursion.html</abbr>", "</a>", "</div>"],
286         "times": [1312444781.444903, 1312444966.856074],
287         "urls": {}
288     }, {
289         "eta": null,
290         "expectations": [
291             ["output", 148825, 147822.1074277072]
292         ],
293         "isFinished": true,
294         "isStarted": true,
295         "logs": [
296             ["stdio", "http://build.chromium.org/p/chromium.webkitbuilders/Webkit%20Linux/builds/11461/steps/archive_webkit_tests_gpu_results/logs/stdio"]
297         ],
298         "name": "archive_webkit_tests_gpu_results",
299         "results": [0, []],
300         "statistics": {},
301         "step_number": 8,
302         "text": ["archived webkit_tests gpu results"],
303         "times": [1312444966.856575, 1312444970.458655],
304         "urls": {
305             "layout test gpu results": "http://build.chromium.org/buildbot/layout_test_results/Webkit_Linux_-_GPU\r/95395\rNone"
306         }
307     }],
308     "text": ["failed", "webkit_tests", "webkit_gpu_tests"],
309     "times": [1312444299.10216, 1312444970.459138]
310 };
311
312 test("buildersFailingStepRequredForTestCoverage", 3, function() {
313     var simulator = new NetworkSimulator();
314
315     var failingBuildInfoJSON = JSON.parse(JSON.stringify(kExampleBuildInfoJSON));
316     failingBuildInfoJSON.number = 11460;
317     failingBuildInfoJSON.steps[2].results[0] = 1;
318
319     var requestedURLs = [];
320     simulator.get = function(url, callback)
321     {
322         requestedURLs.push(url);
323         simulator.scheduleCallback(function() {
324             if (/\/json\/builders$/.exec(url))
325                 callback(kExampleBuilderStatusJSON);
326             else if (/Webkit%20Linux/.exec(url))
327                 callback(kExampleBuildInfoJSON);
328             else if (/Webkit%20Mac10\.6%20\(CG\)/.exec(url))
329                 callback(failingBuildInfoJSON);
330             else {
331                 ok(false, "Unexpected URL: " + url);
332                 callback();
333             }
334         });
335     };
336
337     simulator.runTest(function() {
338         builders.buildersFailingStepRequredForTestCoverage(function(builderNameList) {
339             deepEqual(builderNameList, ["Webkit Mac10.6 (CG)"]);
340         });
341     });
342
343     deepEqual(requestedURLs, [
344       "http://build.chromium.org/p/chromium.webkit/json/builders",
345       "http://build.chromium.org/p/chromium.webkit/json/builders/Webkit%20Linux/builds/11461",
346       "http://build.chromium.org/p/chromium.webkit/json/builders/Webkit%20Mac10.6%20(CG)/builds/11460",
347     ]);
348 });
349
350 })();