Changeset 96265 in webkit
- Timestamp:
- Sep 28, 2011 3:25:38 PM (13 years ago)
- Location:
- trunk/Tools
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/net.js
r94579 r96265 48 48 }; 49 49 50 // jQuery makes jsonp requests somewhat ugly (which is fair given that they're 51 // terrible for security). We use this wrapper to make our lives slightly easier. 52 net.jsonp = function(url, onsuccess) 50 // We use XMLHttpRequest and CORS to fetch JSONP rather than using script tags. 51 // That's better for security and performance, but we need the server to cooperate 52 // by setting CORS headers. 53 net.jsonp = function(url, callback) 53 54 { 54 55 $.ajax({ 55 56 url: url, 56 dataType: 'jsonp', 57 success: onsuccess 57 success: function(jsonp) { 58 callback(base.parseJSONP(jsonp)); 59 }, 60 error: function() { 61 callback({}); 62 }, 58 63 }); 59 64 }; -
trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/results.js
r94580 r96265 28 28 (function() { 29 29 30 var kTestResultsServer = 'http://test-results.appspot.com/';31 var kTestResultsQuery = kTestResultsServer + 'testfile?'32 var kTestType = 'layout-tests';33 var kMasterName = 'ChromiumWebkit';34 35 30 var kLayoutTestResultsServer = 'http://build.chromium.org/f/chromium/layout_test_results/'; 36 31 var kLayoutTestResultsPath = '/results/layout-test-results/'; 37 32 var kResultsName = 'full_results.json'; 33 34 var kBuildLinkRegexp = /a href="\d+\/"/g; 35 var kBuildNumberRegexp = /\d+/; 38 36 39 37 var PASS = 'PASS'; … … 87 85 { 88 86 return result === PASS; 89 }90 91 function resultsParameters(builderName, testName)92 {93 return {94 builder: builderName,95 master: kMasterName,96 testtype: kTestType,97 name: testName,98 };99 87 } 100 88 … … 180 168 }; 181 169 182 function resultsSummaryURL(builderName, resultsName) 183 { 184 return resultsDirectoryURL(builderName) + resultsName; 185 } 186 187 function directoryOfResultsSummaryURL(builderName, testName) 188 { 189 var parameters = resultsParameters(builderName, testName); 190 parameters['dir'] = 1; 191 return kTestResultsQuery + $.param(parameters); 192 } 193 194 var g_resultsCache = new base.AsynchronousCache(function(key, callback) { 195 net.jsonp(kTestResultsServer + 'testfile?key=' + key, callback); 170 results.directoryForBuilder = function(builderName) 171 { 172 return builderName.replace(/[ .()]/g, '_'); 173 } 174 175 function resultsDirectoryURL(builderName) 176 { 177 return kLayoutTestResultsServer + results.directoryForBuilder(builderName) + kLayoutTestResultsPath; 178 } 179 180 function resultsDirectoryListingURL(builderName) 181 { 182 return kLayoutTestResultsServer + results.directoryForBuilder(builderName) + '/'; 183 } 184 185 function resultsDirectoryURLForBuildNumber(builderName, buildNumber) 186 { 187 return resultsDirectoryListingURL(builderName) + buildNumber + '/' 188 } 189 190 function resultsSummaryURL(builderName) 191 { 192 return resultsDirectoryURL(builderName) + kResultsName; 193 } 194 195 function resultsSummaryURLForBuildNumber(builderName, buildNumber) 196 { 197 return resultsDirectoryURLForBuildNumber(builderName, buildNumber) + kResultsName; 198 } 199 200 var g_resultsCache = new base.AsynchronousCache(function (key, callback) { 201 net.jsonp(key, callback); 196 202 }); 197 203 … … 317 323 return base.uniquifyArray(collectedResults); 318 324 }; 325 326 function historicalResultsSummaryURLs(builderName, callback) 327 { 328 net.get(resultsDirectoryListingURL(builderName), function(directoryListing) { 329 var summaryURLs = directoryListing.match(kBuildLinkRegexp).map(function(buildLink) { 330 var buildNumber = parseInt(buildLink.match(kBuildNumberRegexp)[0]); 331 return resultsSummaryURLForBuildNumber(builderName, buildNumber); 332 }).reverse(); 333 callback(summaryURLs); 334 }); 335 } 319 336 320 337 function walkHistory(builderName, testName, callback) … … 349 366 } 350 367 351 net.jsonp(directoryOfResultsSummaryURL(builderName, kResultsName), function(directory) {352 keyList = directory.map(function (element) { return element.key; });368 historicalResultsSummaryURLs(builderName, function(summaryURLs) { 369 keyList = summaryURLs; 353 370 continueWalk(); 354 371 }); … … 463 480 }; 464 481 465 results.directoryForBuilder = function(builderName)466 {467 return builderName.replace(/[ .()]/g, '_');468 }469 470 function resultsDirectoryURL(builderName)471 {472 return kLayoutTestResultsServer + results.directoryForBuilder(builderName) + kLayoutTestResultsPath;473 }474 475 482 results.resultKind = function(url) 476 483 { … … 541 548 results.fetchResultsForBuilder = function(builderName, callback) 542 549 { 543 net.get(resultsSummaryURL(builderName, kResultsName), function(jsonp) { 544 callback(base.parseJSONP(jsonp)); 545 }); 550 net.jsonp(resultsSummaryURL(builderName), callback); 546 551 }; 547 552 -
trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/results_unittests.js
r96153 r96265 165 165 166 166 var keyMap = { 167 "agx0ZXN0LXJlc3VsdHNyEAsSCFRlc3RGaWxlGLncUAw": { 168 "tests": { 169 "userscripts": { 170 "another-test.html": { 171 "expected": "PASS", 172 "actual": "TEXT" 173 } 174 }, 175 }, 176 "revision": "90430" 177 }, 178 "agx0ZXN0LXJlc3VsdHNyEAsSCFRlc3RGaWxlGNfTUAw":{ 179 "tests": { 180 "userscripts": { 181 "user-script-video-document.html": { 182 "expected": "FAIL", 183 "actual": "TEXT" 184 }, 185 "another-test.html": { 186 "expected": "PASS", 187 "actual": "TEXT" 188 } 189 }, 190 }, 191 "revision": "90429" 192 }, 193 "agx0ZXN0LXJlc3VsdHNyEAsSCFRlc3RGaWxlGJWCUQw":{ 194 "tests": { 195 "userscripts": { 196 "another-test.html": { 197 "expected": "PASS", 198 "actual": "TEXT" 199 } 200 }, 201 }, 202 "revision": "90426" 203 }, 204 "agx0ZXN0LXJlc3VsdHNyEAsSCFRlc3RGaWxlGKbLUAw":{ 205 "tests": { 206 "userscripts": { 207 "user-script-video-document.html": { 208 "expected": "FAIL", 209 "actual": "TEXT" 210 }, 211 }, 212 }, 213 "revision": "90424" 214 }, 215 "abc":{ 216 "tests": { 217 "userscripts": { 218 "another-test.html": { 219 "expected": "PASS", 220 "actual": "TEXT" 221 } 222 }, 223 }, 224 "revision": "90426" 225 }, 226 "xyz":{ 227 "tests": { 228 }, 229 "revision": "90425" 230 } 167 "Mock_Builder": { 168 "11108": { 169 "tests": { 170 "userscripts": { 171 "another-test.html": { 172 "expected": "PASS", 173 "actual": "TEXT" 174 } 175 }, 176 }, 177 "revision": "90430" 178 }, 179 "11107":{ 180 "tests": { 181 "userscripts": { 182 "user-script-video-document.html": { 183 "expected": "FAIL", 184 "actual": "TEXT" 185 }, 186 "another-test.html": { 187 "expected": "PASS", 188 "actual": "TEXT" 189 } 190 }, 191 }, 192 "revision": "90429" 193 }, 194 "11106":{ 195 "tests": { 196 "userscripts": { 197 "another-test.html": { 198 "expected": "PASS", 199 "actual": "TEXT" 200 } 201 }, 202 }, 203 "revision": "90426" 204 }, 205 "11105":{ 206 "tests": { 207 "userscripts": { 208 "user-script-video-document.html": { 209 "expected": "FAIL", 210 "actual": "TEXT" 211 }, 212 }, 213 }, 214 "revision": "90424" 215 }, 216 }, 217 "Another_Builder": { 218 "22202":{ 219 "tests": { 220 "userscripts": { 221 "another-test.html": { 222 "expected": "PASS", 223 "actual": "TEXT" 224 } 225 }, 226 }, 227 "revision": "90426" 228 }, 229 "22201":{ 230 "tests": { 231 }, 232 "revision": "90425" 233 }, 234 }, 231 235 }; 232 236 233 237 simulator.jsonp = function(url, callback) { 234 238 simulator.scheduleCallback(function() { 235 if (/dir=1/.test(url)) { 236 if (/builder=Mock/.test(url)) { 237 callback([ 238 { "key": "agx0ZXN0LXJlc3VsdHNyEAsSCFRlc3RGaWxlGLncUAw" }, 239 { "key": "agx0ZXN0LXJlc3VsdHNyEAsSCFRlc3RGaWxlGNfTUAw" }, 240 { "key": "agx0ZXN0LXJlc3VsdHNyEAsSCFRlc3RGaWxlGJWCUQw" }, 241 { "key": "agx0ZXN0LXJlc3VsdHNyEAsSCFRlc3RGaWxlGKbLUAw" }, 242 { "key": "agx0ZXN0LXJlc3VsdHNyEAsSCFRlc3RGaWxlGOj5UAw" }, 243 { "key": "agx0ZXN0LXJlc3VsdHNyEAsSCFRlc3RGaWxlGP-AUQw" }, 244 { "key": "agx0ZXN0LXJlc3VsdHNyEAsSCFRlc3RGaWxlGPL3UAw" }, 245 { "key": "agx0ZXN0LXJlc3VsdHNyEAsSCFRlc3RGaWxlGNHJQAw" }, 246 ]); 247 } else if (/builder=Another/.test(url)) { 248 callback([ 249 { "key": "abc" }, 250 { "key": "xyz" }, 251 ]); 252 } else { 253 ok(false, 'Unexpected URL: ' + url); 254 } 255 } else { 256 var key = url.match(/key=([^&]+)/)[1]; 257 callback(keyMap[key]); 258 } 259 }); 260 }; 239 var result = keyMap[/[^/]+_Builder/.exec(url)][/\d+/.exec(url)]; 240 callback(result ? result : {}); 241 }); 242 }; 243 244 simulator.get = function(url, callback) { 245 simulator.scheduleCallback(function() { 246 if (/Mock_Builder/.test(url)) 247 callback('<a href="11101/"></a><a href="11102/"></a><a href="11103/"></a><a href="11104/"></a><a href="11105/"></a><a href="11106/"></a><a href="11107/"></a><a href="11108/"></a>'); 248 else if (/Another_Builder/.test(url)) 249 callback('<a href="22201/"></a><a href="22202/"></a>'); 250 else 251 ok(false, 'Unexpected URL: ' + url); 252 }); 253 }; 254 261 255 simulator.runTest(function() { 262 256 results.regressionRangeForFailure("Mock Builder", "userscripts/another-test.html", function(oldestFailingRevision, newestPassingRevision) { … … 280 274 281 275 var keyMap = { 282 "vsfdsfdsafsdafasd": { 283 "tests": { 284 "userscripts": { 285 "another-test.html": { 286 "expected": "PASS", 287 "actual": "TEXT" 288 } 289 }, 290 }, 291 "revision": "" 292 }, 293 "gavsavsrfgwaevwefawvae":{ 294 "tests": { 295 }, 296 "revision": "" 276 "Mock_Builder": { 277 "11103": { 278 "tests": { 279 "userscripts": { 280 "another-test.html": { 281 "expected": "PASS", 282 "actual": "TEXT" 283 } 284 }, 285 }, 286 "revision": "" 287 }, 288 "11102":{ 289 "tests": { 290 }, 291 "revision": "" 292 }, 297 293 }, 298 294 }; … … 300 296 simulator.jsonp = function(url, callback) { 301 297 simulator.scheduleCallback(function() { 302 if (/dir=1/.test(url)) {303 callback([304 { "key": "vsfdsfdsafsdafasd" },305 { "key": "gavsavsrfgwaevwefawvae" },306 ]); 307 } else{308 var key = url.match(/key=([^&]+)/)[1];309 callback(keyMap[key]);310 }311 });312 }; 298 var result = keyMap[/[^/]+_Builder/.exec(url)][/\d+/.exec(url)]; 299 callback(result ? result : {}); 300 }); 301 }; 302 303 simulator.get = function(url, callback) { 304 simulator.scheduleCallback(function() { 305 callback('<a href="11101/"></a><a href="11102/"></a><a href="11103/"></a>'); 306 }); 307 }; 308 313 309 314 310 simulator.runTest(function() { -
trunk/Tools/ChangeLog
r96263 r96265 1 2011-09-28 Adam Barth <abarth@webkit.org> 2 3 garden-o-matic shouldn't depend on test-results.appspot.com 4 https://bugs.webkit.org/show_bug.cgi?id=69019 5 6 Reviewed by Dimitri Glazkov. 7 8 This patch moves garden-o-matic from getting full_results.json from 9 test-results.appspot.com to getting that information directly from the 10 buildbot. This patch improve the load time and accuracy of 11 garden-o-matic because test-results.appspot.com is slow and is dropping 12 a significant number of writes (see 13 https://bugs.webkit.org/show_bug.cgi?id=68748). 14 15 * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/net.js: 16 * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/results.js: 17 * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/results_unittests.js: 18 1 19 2011-09-28 David Levin <levin@chromium.org> 2 20
Note: See TracChangeset
for help on using the changeset viewer.