Changeset 90432 in webkit


Ignore:
Timestamp:
Jul 5, 2011 8:44:09 PM (13 years ago)
Author:
abarth@webkit.org
Message:

2011-07-05 Adam Barth <abarth@webkit.org>

Add results_unittests.js to garden-o-matic
https://bugs.webkit.org/show_bug.cgi?id=63971

Reviewed by Eric Seidel.

Adding these unit tests forced me to commit to an API for the results
module. I'm not sure if this is the API we'll end up with, but it's
something not entirely unreasonable.

Also, I've changed results.js over to WebKit style, as discussed previously.

  • Scripts/webkitpy/tool/servers/data/gardeningserver/index.html:
  • Scripts/webkitpy/tool/servers/data/gardeningserver/results.js:
  • Scripts/webkitpy/tool/servers/data/gardeningserver/results_unittests.js: Added.
  • Scripts/webkitpy/tool/servers/data/gardeningserver/run-unittests.html:
Location:
trunk/Tools
Files:
1 added
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/Tools/ChangeLog

    r90431 r90432  
     12011-07-05  Adam Barth  <abarth@webkit.org>
     2
     3        Add results_unittests.js to garden-o-matic
     4        https://bugs.webkit.org/show_bug.cgi?id=63971
     5
     6        Reviewed by Eric Seidel.
     7
     8        Adding these unit tests forced me to commit to an API for the results
     9        module.  I'm not sure if this is the API we'll end up with, but it's
     10        something not entirely unreasonable.
     11
     12        Also, I've changed results.js over to WebKit style, as discussed previously.
     13
     14        * Scripts/webkitpy/tool/servers/data/gardeningserver/index.html:
     15        * Scripts/webkitpy/tool/servers/data/gardeningserver/results.js:
     16        * Scripts/webkitpy/tool/servers/data/gardeningserver/results_unittests.js: Added.
     17        * Scripts/webkitpy/tool/servers/data/gardeningserver/run-unittests.html:
     18
    1192011-07-05  Eric Seidel  <eric@webkit.org>
    220
  • trunk/Tools/Scripts/webkitpy/tool/servers/data/gardeningserver/index.html

    r90428 r90432  
    3636<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
    3737<script src="base.js"></script>
     38<script src="results.js"></script>
    3839<script src="main.js"></script>
    39 <script src="results.js"></script>
     40<script>
     41function logUnexpectedFailures(builderResults) {
     42    unexpectedFailures = builderResults.unexpectedFailures();
     43    console.log('== Unexpected Failures ==')
     44    console.log(unexpectedFailures);
     45}
     46
     47results.fetchResultsForBuilder('Webkit Linux', logUnexpectedFailures);
     48</script>
    4049</body>
    4150</html>
  • trunk/Tools/Scripts/webkitpy/tool/servers/data/gardeningserver/results.js

    r90428 r90432  
     1var results = results || {};
     2
    13(function() {
    2   var TEST_RESULTS_SERVER = 'http://test-results.appspot.com/';
    3   var TEST_TYPE = 'layout-tests';
    4   var RESULTS_NAME = 'full_results.json';
    5   var MASTER_NAME = 'ChromiumWebkit';
    6   var FAILING_RESULTS = ['TIMEOUT', 'TEXT', 'CRASH', 'IMAGE','IMAGE+TEXT'];
    74
    8   function isFailure(result) {
    9     return FAILING_RESULTS.indexOf(result) != -1;
    10   }
     5var kTestResultsServer = 'http://test-results.appspot.com/';
     6var kTestType = 'layout-tests';
     7var kResultsName = 'full_results.json';
     8var kMasterName = 'ChromiumWebkit';
     9var kFailingResults = ['TIMEOUT', 'TEXT', 'CRASH', 'IMAGE','IMAGE+TEXT'];
    1110
    12   function anyIsFailure(results_list) {
    13     return $.grep(results_list, isFailure).length > 0;
    14   }
     11function isFailure(result)
     12{
     13    return kFailingResults.indexOf(result) != -1;
     14}
    1515
    16   function addImpliedExpectations(results_list) {
    17     if (results_list.indexOf('FAIL') == -1)
    18       return results_list;
    19     return results_list.concat(FAILING_RESULTS);
    20   }
     16function anyIsFailure(resultsList)
     17{
     18    return $.grep(resultsList, isFailure).length > 0;
     19}
    2120
    22   function unexpectedResults(result_node) {
    23     var actual_results = result_node.actual.split(' ');
    24     var expected_results = addImpliedExpectations(result_node.expected.split(' '))
     21function addImpliedExpectations(resultsList)
     22{
     23    if (resultsList.indexOf('FAIL') == -1)
     24        return resultsList;
     25    return resultsList.concat(kFailingResults);
     26}
    2527
    26     return $.grep(actual_results, function(result) {
    27       return expected_results.indexOf(result) == -1;
     28function unexpectedResults(resultNode)
     29{
     30    var actualResults = resultNode.actual.split(' ');
     31    var expectedResults = addImpliedExpectations(resultNode.expected.split(' '))
     32
     33    return $.grep(actualResults, function(result) {
     34        return expectedResults.indexOf(result) == -1;
    2835    });
    29   }
     36}
    3037
    31   function isUnexpectedFailure(result_node) {
    32     return anyIsFailure(unexpectedResults(result_node));
    33   }
     38function isUnexpectedFailure(resultNode)
     39{
     40    return anyIsFailure(unexpectedResults(resultNode));
     41}
    3442
    35   function isResultNode(node) {
     43function isResultNode(node)
     44{
    3645    return !!node.actual;
    37   }
     46}
    3847
    39   function logUnexpectedFailures(results_json) {
    40     unexpected_failures = base.filterTree(results_json.tests, isResultNode, isUnexpectedFailure);
    41     console.log('== Unexpected Failures ==')
    42     console.log(unexpected_failures);
    43   }
     48results.BuilderResults = function(m_resultsJSON)
     49{
     50    this.m_resultsJSON = m_resultsJSON;
     51}
    4452
    45   function resultsURL(builder_name, name) {
    46     return TEST_RESULTS_SERVER + 'testfile' +
    47         '?builder=' + builder_name +
    48         '&master=' + MASTER_NAME +
    49         '&testtype=' + TEST_TYPE +
    50         '&name=' + name;
    51   }
     53results.BuilderResults.prototype.unexpectedFailures = function() {
     54    return base.filterTree(this.m_resultsJSON.tests, isResultNode, isUnexpectedFailure);
     55}
    5256
    53   function fetchResults(builder_name, onsuccess) {
     57function resultsURL(builderName, name)
     58{
     59    return kTestResultsServer + 'testfile' +
     60          '?builder=' + builderName +
     61          '&master=' + kMasterName +
     62          '&testtype=' + kTestType +
     63          '&name=' + name;
     64}
     65
     66results.fetchResultsForBuilder = function(builderName, onsuccess)
     67{
    5468    $.ajax({
    55       url: resultsURL(builder_name, RESULTS_NAME),
    56       dataType: 'jsonp',
    57       success: onsuccess
     69        url: resultsURL(builderName, kResultsName),
     70        dataType: 'jsonp',
     71        success: function(data) {
     72            onsuccess(new results.BuilderResults(data));
     73        }
    5874    });
    59   }
     75}
    6076
    61   fetchResults('Webkit Linux', logUnexpectedFailures);
    6277})();
  • trunk/Tools/Scripts/webkitpy/tool/servers/data/gardeningserver/run-unittests.html

    r90430 r90432  
    33<head>
    44<link rel="stylesheet" href="../../../../../../../Source/ThirdParty/qunit/qunit/qunit.css">
     5<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
    56<script src="../../../../../../../Source/ThirdParty/qunit/qunit/qunit.js"></script>
    67</head>
     
    1314<script src="base.js"></script>
    1415<script src="base_unittests.js"></script>
     16<script src="results.js"></script>
     17<script src="results_unittests.js"></script>
    1518</body>
    1619</html>
Note: See TracChangeset for help on using the changeset viewer.