Changeset 92354 in webkit


Ignore:
Timestamp:
Aug 4, 2011 12:13:56 AM (13 years ago)
Author:
abarth@webkit.org
Message:

garden-o-matic needs a way to mock out the network
https://bugs.webkit.org/show_bug.cgi?id=65653

Reviewed by Dimitri Glazkov.

This patch introduces the net module, which is a useful mock point for
abstracting away the network. Future patches will use this
infrastructure to test some currently untested code.

  • BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/Bugzilla.js:
  • BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/Trac.js:
  • BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/base.js:
  • BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/builders.js:
  • BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/checkout.js:
  • BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/garden-o-matic.html:
  • BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/index.html:
  • BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/net.js: Added.
  • BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/net_unittests.js: Added.

(NetworkSimulator):
(NetworkSimulator.prototype.scheduleCallback):
(NetworkSimulator.prototype.runTest):

  • BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/results.js:
  • BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/results_unittests.js:
  • BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/run-unittests.html:
  • Scripts/webkitpy/tool/servers/gardeningserver.py:
Location:
trunk/Tools
Files:
2 added
12 edited

Legend:

Unmodified
Added
Removed
  • trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/Bugzilla.js

    r92135 r92354  
    4242    });
    4343
    44     $.get(url, function(responseXML) {
     44    net.get(url, function(responseXML) {
    4545        var entries = responseXML.getElementsByTagName('entry');
    4646        var results = Array.prototype.map.call(entries, function(entry) {
  • trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/Trac.js

    r92055 r92354  
    123123    var url = trac.logURL(path, startRevision, endRevision, true, true);
    124124
    125     $.get(url, function(commitData) {
     125    net.get(url, function(commitData) {
    126126        callback(parseCommitData(commitData));
    127127    });
     
    156156    });
    157157
    158     $.get(url, function(commitData) {
     158    net.get(url, function(commitData) {
    159159        callback(parseCommitData(commitData));
    160160    });
  • trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/base.js

    r92166 r92354  
    8080    walkSubtree(tree, '');
    8181    return filteredTree;
    82 };
    83 
    84 base.probe = function(url, options)
    85 {
    86     var scriptElement = document.createElement('script');
    87     scriptElement.addEventListener('load', function() {
    88         $(scriptElement).detach();
    89         if (options.success)
    90             options.success.call();
    91     }, false);
    92     scriptElement.addEventListener('error', function() {
    93         $(scriptElement).detach();
    94         if (options.error)
    95             options.error.call();
    96     }, false);
    97     scriptElement.src = url;
    98     document.head.appendChild(scriptElement);
    99 };
    100 
    101 // jQuery makes jsonp requests somewhat ugly (which is fair given that they're
    102 // terrible for security). We use this wrapper to make our lives slightly easier.
    103 base.jsonp = function(url, onsuccess)
    104 {
    105     $.ajax({
    106         url: url,
    107         dataType: 'jsonp',
    108         success: onsuccess
    109     });
    11082};
    11183
  • trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/builders.js

    r92134 r92354  
    3939var g_buildInfoCache = new base.AsynchronousCache(function(key, callback) {
    4040    var explodedKey = key.split('\n');
    41     $.get(urlForBuildInfo(explodedKey[0], explodedKey[1]), callback);
     41    net.get(urlForBuildInfo(explodedKey[0], explodedKey[1]), callback);
    4242});
    4343
     
    4646    var buildInfoByBuilder = {};
    4747    var requestTracker = new base.RequestTracker(config.kBuilders.length, callback, [buildInfoByBuilder]);
    48     $.get(kChromiumBuildBotURL + '/json/builders', function(builderStatus) {
     48    net.get(kChromiumBuildBotURL + '/json/builders', function(builderStatus) {
    4949        $.each(config.kBuilders, function(index, builderName) {
    5050            var buildNumber = builderStatus[builderName].cachedBuilds.pop();
  • trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/checkout.js

    r92346 r92354  
    1717checkout.existsAtRevision = function(subversionURL, revision, callback)
    1818{
    19     $.ajax({
     19    net.ajax({
    2020        method: 'HEAD',
    2121        url: subversionURLAtRevision(subversionURL, revision),
     
    3131checkout.updateExpectations = function(failureInfoList, callback)
    3232{
    33     $.post('/updateexpectations', JSON.stringify(failureInfoList), function() {
     33    net.post('/updateexpectations', JSON.stringify(failureInfoList), function() {
    3434        callback();
    3535    });
     
    3838checkout.optimizeBaselines = function(testName, callback)
    3939{
    40     $.post('/optimizebaselines?' + $.param({
     40    net.post('/optimizebaselines?' + $.param({
    4141        'test': testName,
    4242    }), function() {
     
    5050        var extensionList = Array.prototype.concat.apply([], failureInfo.failureTypeList.map(results.failureTypeToExtensionList));
    5151        base.callInSequence(function(extension, callback) {
    52             $.post('/rebaseline?' + $.param({
     52            net.post('/rebaseline?' + $.param({
    5353                'builder': failureInfo.builderName,
    5454                'test': failureInfo.testName,
  • trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/garden-o-matic.html

    r92348 r92354  
    3030<script src="config.js"></script>
    3131<script src="base.js"></script>
     32<script src="net.js"></script>
    3233<script src="Trac.js"></script>
    3334<script src="Bugzilla.js"></script>
  • trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/index.html

    r92135 r92354  
    3232    <script src="config.js"></script>
    3333    <script src="base.js"></script>
     34    <script src="net.js"></script>
    3435    <script src="Trac.js"></script>
    3536
  • trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/results.js

    r92351 r92354  
    159159
    160160var g_resultsCache = new base.AsynchronousCache(function(key, callback) {
    161     base.jsonp(kTestResultsServer + 'testfile?key=' + key, callback);
     161    net.jsonp(kTestResultsServer + 'testfile?key=' + key, callback);
    162162});
    163163
     
    262262    }
    263263
    264     base.jsonp(directoryOfResultsSummaryURL(builderName, kResultsName), function(directory) {
     264    net.jsonp(directoryOfResultsSummaryURL(builderName, kResultsName), function(directory) {
    265265        keyList = directory.map(function (element) { return element.key; });
    266266        continueWalk();
     
    442442    $.each(suffixList, function(index, suffix) {
    443443        var url = stem + testNameStem + suffix;
    444         base.probe(url, {
     444        net.probe(url, {
    445445            success: function() {
    446446                resultURLs.push(url);
     
    454454results.fetchResultsForBuilder = function(builderName, callback)
    455455{
    456     base.jsonp(resultsSummaryURL(builderName, kResultsName), function(resultsTree) {
     456    net.jsonp(resultsSummaryURL(builderName, kResultsName), function(resultsTree) {
    457457        callback(resultsTree);
    458458    });
  • trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/results_unittests.js

    r92351 r92354  
    104104});
    105105
    106 function NetworkSimulator()
    107 {
    108     this._pendingCallbacks = [];
    109 };
    110 
    111 NetworkSimulator.prototype.scheduleCallback = function(callback)
    112 {
    113     this._pendingCallbacks.push(callback);
    114 }
    115 
    116 NetworkSimulator.prototype.runTest = function(testCase)
    117 {
    118     var self = this;
    119     var realBase = window.base;
    120 
    121     window.base = {};
    122     base.endsWith = realBase.endsWith;
    123     base.trimExtension = realBase.trimExtension;
    124     base.uniquifyArray = realBase.uniquifyArray;
    125     if (self.probeHook)
    126         base.probe = self.probeHook;
    127     if (self.jsonpHook)
    128         base.jsonp = self.jsonpHook;
    129 
    130     testCase();
    131 
    132     while (this._pendingCallbacks.length) {
    133         var callback = this._pendingCallbacks.shift();
    134         callback();
    135     }
    136 
    137     window.base = realBase;
    138     equal(window.base, realBase, "Failed to restore real base!");
    139 }
    140 
    141106test("walkHistory", 6, function() {
    142107    var simulator = new NetworkSimulator();
     
    209174    };
    210175
    211     simulator.jsonpHook = function(url, callback) {
     176    simulator.jsonp = function(url, callback) {
    212177        simulator.scheduleCallback(function() {
    213178            if (/dir=1/.test(url)) {
     
    276241    };
    277242
    278     simulator.jsonpHook = function(url, callback) {
     243    simulator.jsonp = function(url, callback) {
    279244        simulator.scheduleCallback(function() {
    280245            if (/dir=1/.test(url)) {
     
    347312
    348313    var probedURLs = [];
    349     simulator.probeHook = function(url, options)
     314    simulator.probe = function(url, options)
    350315    {
    351316        simulator.scheduleCallback(function() {
  • trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/run-unittests.html

    r91538 r92354  
    1616<script src="base.js"></script>
    1717<script src="base_unittests.js"></script>
     18<script src="net.js"></script>
     19<script src="net_unittests.js"></script>
    1820<script src="Trac.js"></script>
    1921<script src="trac_unittests.js"></script>
  • trunk/Tools/ChangeLog

    r92351 r92354  
     12011-08-04  Adam Barth  <abarth@webkit.org>
     2
     3        garden-o-matic needs a way to mock out the network
     4        https://bugs.webkit.org/show_bug.cgi?id=65653
     5
     6        Reviewed by Dimitri Glazkov.
     7
     8        This patch introduces the net module, which is a useful mock point for
     9        abstracting away the network.  Future patches will use this
     10        infrastructure to test some currently untested code.
     11
     12        * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/Bugzilla.js:
     13        * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/Trac.js:
     14        * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/base.js:
     15        * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/builders.js:
     16        * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/checkout.js:
     17        * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/garden-o-matic.html:
     18        * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/index.html:
     19        * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/net.js: Added.
     20        * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/net_unittests.js: Added.
     21        (NetworkSimulator):
     22        (NetworkSimulator.prototype.scheduleCallback):
     23        (NetworkSimulator.prototype.runTest):
     24        * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/results.js:
     25        * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/results_unittests.js:
     26        * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/run-unittests.html:
     27        * Scripts/webkitpy/tool/servers/gardeningserver.py:
     28
    1292011-08-03  Adam Barth  <abarth@webkit.org>
    230
  • trunk/Tools/Scripts/webkitpy/tool/servers/gardeningserver.py

    r92346 r92354  
    4949        "main.js",
    5050        "model.js",
     51        "net.js",
    5152        "partytime.gif",
    5253        "results.js",
Note: See TracChangeset for help on using the changeset viewer.