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

Side by Side Diff: Tools/GardeningServer/scripts/results.js

Issue 359283003: Remove usages of jquery and add sugar.js from garden-o-matic. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: remove jquery script from ct-sheriff-o-matic Created 6 years, 5 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
1 /* 1 /*
2 * Copyright (C) 2011 Google Inc. All rights reserved. 2 * Copyright (C) 2011 Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions 5 * modification, are permitted provided that the following conditions
6 * are met: 6 * are met:
7 * 1. Redistributions of source code must retain the above copyright 7 * 1. Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer. 8 * notice, this list of conditions and the following disclaimer.
9 * 2. Redistributions in binary form must reproduce the above copyright 9 * 2. Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the 10 * notice, this list of conditions and the following disclaimer in the
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after
94 94
95 function pushTextSuffixes() 95 function pushTextSuffixes()
96 { 96 {
97 suffixList.push(kActualTextSuffix); 97 suffixList.push(kActualTextSuffix);
98 suffixList.push(kExpectedTextSuffix); 98 suffixList.push(kExpectedTextSuffix);
99 suffixList.push(kDiffTextSuffix); 99 suffixList.push(kDiffTextSuffix);
100 // '-wdiff.html', 100 // '-wdiff.html',
101 // '-pretty-diff.html', 101 // '-pretty-diff.html',
102 } 102 }
103 103
104 $.each(failureTypeList, function(index, failureType) { 104 failureTypeList.forEach(function(failureType) {
105 switch(failureType) { 105 switch(failureType) {
106 case IMAGE: 106 case IMAGE:
107 pushImageSuffixes(); 107 pushImageSuffixes();
108 break; 108 break;
109 case TEXT: 109 case TEXT:
110 pushTextSuffixes(); 110 pushTextSuffixes();
111 break; 111 break;
112 case AUDIO: 112 case AUDIO:
113 pushAudioSuffixes(); 113 pushAudioSuffixes();
114 break; 114 break;
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after
215 215
216 results.unexpectedFailures = function(resultsTree) 216 results.unexpectedFailures = function(resultsTree)
217 { 217 {
218 return base.filterTree(resultsTree.tests, isResultNode, isUnexpectedFailure) ; 218 return base.filterTree(resultsTree.tests, isResultNode, isUnexpectedFailure) ;
219 }; 219 };
220 220
221 function resultsByTest(resultsByBuilder, filter) 221 function resultsByTest(resultsByBuilder, filter)
222 { 222 {
223 var resultsByTest = {}; 223 var resultsByTest = {};
224 224
225 $.each(resultsByBuilder, function(builderName, resultsTree) { 225 Object.keys(resultsByBuilder, function(builderName, resultsTree) {
226 $.each(filter(resultsTree), function(testName, resultNode) { 226 Object.keys(filter(resultsTree), function(testName, resultNode) {
227 resultsByTest[testName] = resultsByTest[testName] || {}; 227 resultsByTest[testName] = resultsByTest[testName] || {};
228 resultsByTest[testName][builderName] = resultNode; 228 resultsByTest[testName][builderName] = resultNode;
229 }); 229 });
230 }); 230 });
231 231
232 return resultsByTest; 232 return resultsByTest;
233 } 233 }
234 234
235 results.unexpectedFailuresByTest = function(resultsByBuilder) 235 results.unexpectedFailuresByTest = function(resultsByBuilder)
236 { 236 {
237 return resultsByTest(resultsByBuilder, results.unexpectedFailures); 237 return resultsByTest(resultsByBuilder, results.unexpectedFailures);
238 }; 238 };
239 239
240 results.failureInfoForTestAndBuilder = function(resultsByTest, testName, builder Name) 240 results.failureInfoForTestAndBuilder = function(resultsByTest, testName, builder Name)
241 { 241 {
242 var failureInfoForTest = { 242 var failureInfoForTest = {
243 'testName': testName, 243 'testName': testName,
244 'builderName': builderName, 244 'builderName': builderName,
245 'failureTypeList': failureTypeList(resultsByTest[testName][builderName]. actual), 245 'failureTypeList': failureTypeList(resultsByTest[testName][builderName]. actual),
246 }; 246 };
247 247
248 return failureInfoForTest; 248 return failureInfoForTest;
249 }; 249 };
250 250
251 results.collectUnexpectedResults = function(dictionaryOfResultNodes) 251 results.collectUnexpectedResults = function(dictionaryOfResultNodes)
252 { 252 {
253 var collectedResults = []; 253 var collectedResults = [];
254 $.each(dictionaryOfResultNodes, function(key, resultNode) { 254 Object.keys(dictionaryOfResultNodes, function(key, resultNode) {
255 var analyzer = new results.ResultAnalyzer(resultNode); 255 var analyzer = new results.ResultAnalyzer(resultNode);
256 collectedResults = collectedResults.concat(analyzer.unexpectedResults()) ; 256 collectedResults = collectedResults.concat(analyzer.unexpectedResults()) ;
257 }); 257 });
258 return base.uniquifyArray(collectedResults); 258 return base.uniquifyArray(collectedResults);
259 }; 259 };
260 260
261 // Callback data is [{ buildNumber:, url: }] 261 // Callback data is [{ buildNumber:, url: }]
262 function historicalResultsLocations(builderName) 262 function historicalResultsLocations(builderName)
263 { 263 {
264 return builders.mostRecentBuildForBuilder(builderName).then(function (mostRe centBuildNumber) { 264 return builders.mostRecentBuildForBuilder(builderName).then(function (mostRe centBuildNumber) {
(...skipping 18 matching lines...) Expand all
283 function continueWalk() 283 function continueWalk()
284 { 284 {
285 if (indexOfNextKeyToFetch >= keyList.length) { 285 if (indexOfNextKeyToFetch >= keyList.length) {
286 processResultNode(0, null); 286 processResultNode(0, null);
287 return; 287 return;
288 } 288 }
289 289
290 var resultsURL = keyList[indexOfNextKeyToFetch].url; 290 var resultsURL = keyList[indexOfNextKeyToFetch].url;
291 ++indexOfNextKeyToFetch; 291 ++indexOfNextKeyToFetch;
292 g_resultsCache.get(resultsURL).then(function(resultsTree) { 292 g_resultsCache.get(resultsURL).then(function(resultsTree) {
293 if ($.isEmptyObject(resultsTree)) { 293 if (!Object.size(resultsTree)) {
294 continueWalk(); 294 continueWalk();
295 return; 295 return;
296 } 296 }
297 var resultNode = results.resultNodeForTest(resultsTree, testName); 297 var resultNode = results.resultNodeForTest(resultsTree, testName);
298 var revision = parseInt(resultsTree['blink_revision']); 298 var revision = parseInt(resultsTree['blink_revision']);
299 if (isNaN(revision)) 299 if (isNaN(revision))
300 revision = 0; 300 revision = 0;
301 processResultNode(revision, resultNode); 301 processResultNode(revision, resultNode);
302 }); 302 });
303 } 303 }
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
344 }); 344 });
345 }; 345 };
346 346
347 function mergeRegressionRanges(regressionRanges) 347 function mergeRegressionRanges(regressionRanges)
348 { 348 {
349 var mergedRange = {}; 349 var mergedRange = {};
350 350
351 mergedRange.oldestFailingRevision = 0; 351 mergedRange.oldestFailingRevision = 0;
352 mergedRange.newestPassingRevision = 0; 352 mergedRange.newestPassingRevision = 0;
353 353
354 $.each(regressionRanges, function(builderName, range) { 354 Object.keys(regressionRanges, function(builderName, range) {
355 if (!range.oldestFailingRevision && !range.newestPassingRevision) 355 if (!range.oldestFailingRevision && !range.newestPassingRevision)
356 return 356 return
357 357
358 if (!mergedRange.oldestFailingRevision) 358 if (!mergedRange.oldestFailingRevision)
359 mergedRange.oldestFailingRevision = range.oldestFailingRevision; 359 mergedRange.oldestFailingRevision = range.oldestFailingRevision;
360 if (!mergedRange.newestPassingRevision) 360 if (!mergedRange.newestPassingRevision)
361 mergedRange.newestPassingRevision = range.newestPassingRevision; 361 mergedRange.newestPassingRevision = range.newestPassingRevision;
362 362
363 if (range.oldestFailingRevision && range.oldestFailingRevision < mergedR ange.oldestFailingRevision) 363 if (range.oldestFailingRevision && range.oldestFailingRevision < mergedR ange.oldestFailingRevision)
364 mergedRange.oldestFailingRevision = range.oldestFailingRevision; 364 mergedRange.oldestFailingRevision = range.oldestFailingRevision;
365 if (range.newestPassingRevision > mergedRange.newestPassingRevision) 365 if (range.newestPassingRevision > mergedRange.newestPassingRevision)
366 mergedRange.newestPassingRevision = range.newestPassingRevision; 366 mergedRange.newestPassingRevision = range.newestPassingRevision;
367 }); 367 });
368 368
369 return mergedRange; 369 return mergedRange;
370 } 370 }
371 371
372 results.unifyRegressionRanges = function(builderNameList, testName) { 372 results.unifyRegressionRanges = function(builderNameList, testName) {
373 var regressionRanges = {}; 373 var regressionRanges = {};
374 374
375 var rangePromises = []; 375 var rangePromises = [];
376 $.each(builderNameList, function(index, builderName) { 376 builderNameList.forEach(function(builderName) {
377 rangePromises.push(results.regressionRangeForFailure(builderName, testNa me) 377 rangePromises.push(results.regressionRangeForFailure(builderName, testNa me)
378 .then(function(result) { 378 .then(function(result) {
379 var oldestFailingRevision = result[0]; 379 var oldestFailingRevision = result[0];
380 var newestPassingRevision = result[1]; 380 var newestPassingRevision = result[1];
381 var range = {}; 381 var range = {};
382 range.oldestFailingRevision = oldestFailingRevisi on; 382 range.oldestFailingRevision = oldestFailingRevisi on;
383 range.newestPassingRevision = newestPassingRevisi on; 383 range.newestPassingRevision = newestPassingRevisi on;
384 regressionRanges[builderName] = range; 384 regressionRanges[builderName] = range;
385 })); 385 }));
386 }); 386 });
387 return Promise.all(rangePromises).then(function() { 387 return Promise.all(rangePromises).then(function() {
388 var mergedRange = mergeRegressionRanges(regressionRanges); 388 var mergedRange = mergeRegressionRanges(regressionRanges);
389 return [mergedRange.oldestFailingRevision, mergedRange.newestPassingRevi sion]; 389 return [mergedRange.oldestFailingRevision, mergedRange.newestPassingRevi sion];
390 }); 390 });
391 }; 391 };
392 392
393 results.resultNodeForTest = function(resultsTree, testName) 393 results.resultNodeForTest = function(resultsTree, testName)
394 { 394 {
395 var testNamePath = testName.split('/'); 395 var testNamePath = testName.split('/');
396 var currentNode = resultsTree['tests']; 396 var currentNode = resultsTree['tests'];
397 $.each(testNamePath, function(index, segmentName) { 397 testNamePath.forEach(function(segmentName) {
398 if (!currentNode) 398 if (!currentNode)
399 return; 399 return;
400 currentNode = (segmentName in currentNode) ? currentNode[segmentName] : null; 400 currentNode = (segmentName in currentNode) ? currentNode[segmentName] : null;
401 }); 401 });
402 return currentNode; 402 return currentNode;
403 }; 403 };
404 404
405 results.resultKind = function(url) 405 results.resultKind = function(url)
406 { 406 {
407 if (/-actual\.[a-z]+$/.test(url)) 407 if (/-actual\.[a-z]+$/.test(url))
(...skipping 10 matching lines...) Expand all
418 if (/\.png$/.test(url)) 418 if (/\.png$/.test(url))
419 return results.kImageType; 419 return results.kImageType;
420 if (/\.wav$/.test(url)) 420 if (/\.wav$/.test(url))
421 return results.kAudioType; 421 return results.kAudioType;
422 return results.kTextType; 422 return results.kTextType;
423 } 423 }
424 424
425 function sortResultURLsBySuffix(urls) 425 function sortResultURLsBySuffix(urls)
426 { 426 {
427 var sortedURLs = []; 427 var sortedURLs = [];
428 $.each(kPreferredSuffixOrder, function(i, suffix) { 428 kPreferredSuffixOrder.forEach(function(suffix) {
429 $.each(urls, function(j, url) { 429 urls.forEach(function(url) {
430 if (!base.endsWith(url, suffix)) 430 if (!base.endsWith(url, suffix))
431 return; 431 return;
432 sortedURLs.push(url); 432 sortedURLs.push(url);
433 }); 433 });
434 }); 434 });
435 if (sortedURLs.length != urls.length) 435 if (sortedURLs.length != urls.length)
436 throw "sortResultURLsBySuffix failed to return the same number of URLs." ; 436 throw "sortResultURLsBySuffix failed to return the same number of URLs." ;
437 return sortedURLs; 437 return sortedURLs;
438 } 438 }
439 439
440 results.fetchResultsURLs = function(failureInfo) 440 results.fetchResultsURLs = function(failureInfo)
441 { 441 {
442 var testNameStem = base.trimExtension(failureInfo.testName); 442 var testNameStem = base.trimExtension(failureInfo.testName);
443 var urlStem = resultsDirectoryURL(failureInfo.builderName); 443 var urlStem = resultsDirectoryURL(failureInfo.builderName);
444 444
445 var suffixList = possibleSuffixListFor(failureInfo.failureTypeList); 445 var suffixList = possibleSuffixListFor(failureInfo.failureTypeList);
446 var resultURLs = []; 446 var resultURLs = [];
447 var probePromises = []; 447 var probePromises = [];
448 $.each(suffixList, function(index, suffix) { 448 suffixList.forEach(function(suffix) {
449 var url = urlStem + testNameStem + suffix; 449 var url = urlStem + testNameStem + suffix;
450 probePromises.push(net.probe(url).then( 450 probePromises.push(net.probe(url).then(
451 function() { 451 function() {
452 resultURLs.push(url); 452 resultURLs.push(url);
453 }, 453 },
454 function() {})); 454 function() {}));
455 }); 455 });
456 return Promise.all(probePromises).then(function() { 456 return Promise.all(probePromises).then(function() {
457 return sortResultURLsBySuffix(resultURLs); 457 return sortResultURLsBySuffix(resultURLs);
458 }); 458 });
459 }; 459 };
460 460
461 results.fetchResultsByBuilder = function(builderNameList) 461 results.fetchResultsByBuilder = function(builderNameList)
462 { 462 {
463 var resultsByBuilder = {}; 463 var resultsByBuilder = {};
464 var fetchPromises = []; 464 var fetchPromises = [];
465 $.each(builderNameList, function(index, builderName) { 465 builderNameList.forEach(function(builderName) {
466 var resultsURL = resultsSummaryURL(builderName); 466 var resultsURL = resultsSummaryURL(builderName);
467 fetchPromises.push(net.jsonp(resultsURL).then(function(resultsTree) { 467 fetchPromises.push(net.jsonp(resultsURL).then(function(resultsTree) {
468 resultsByBuilder[builderName] = resultsTree; 468 resultsByBuilder[builderName] = resultsTree;
469 })); 469 }));
470 }); 470 });
471 return Promise.all(fetchPromises).then(function() { 471 return Promise.all(fetchPromises).then(function() {
472 return resultsByBuilder; 472 return resultsByBuilder;
473 }); 473 });
474 }; 474 };
475 475
476 })(); 476 })();
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698