Changeset 90539 in webkit


Ignore:
Timestamp:
Jul 6, 2011 10:24:07 PM (13 years ago)
Author:
abarth@webkit.org
Message:

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

Wean resultsjsonparser off unexpected_results.json
https://bugs.webkit.org/show_bug.cgi?id=64061

Reviewed by Eric Seidel.

We're about to delete unexpected_results.json, so we need to remove all
the users.

  • Scripts/webkitpy/common/config/ports.py:
  • Scripts/webkitpy/common/net/resultsjsonparser.py:
  • Scripts/webkitpy/common/net/resultsjsonparser_unittest.py:
  • Scripts/webkitpy/layout_tests/models/test_expectations.py:
Location:
trunk/Tools
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/Tools/ChangeLog

    r90538 r90539  
     12011-07-06  Adam Barth  <abarth@webkit.org>
     2
     3        Wean resultsjsonparser off unexpected_results.json
     4        https://bugs.webkit.org/show_bug.cgi?id=64061
     5
     6        Reviewed by Eric Seidel.
     7
     8        We're about to delete unexpected_results.json, so we need to remove all
     9        the users.
     10
     11        * Scripts/webkitpy/common/config/ports.py:
     12        * Scripts/webkitpy/common/net/resultsjsonparser.py:
     13        * Scripts/webkitpy/common/net/resultsjsonparser_unittest.py:
     14        * Scripts/webkitpy/layout_tests/models/test_expectations.py:
     15
    1162011-07-06  Adam Barth  <abarth@webkit.org>
    217
  • trunk/Tools/Scripts/webkitpy/common/config/ports.py

    r89289 r90539  
    285285    @classmethod
    286286    def layout_tests_results_path(cls):
    287         return os.path.join(cls.results_directory, "unexpected_results.json")
     287        return os.path.join(cls.results_directory, "full_results.json")
  • trunk/Tools/Scripts/webkitpy/common/net/resultsjsonparser.py

    r90532 r90539  
    3434    import webkitpy.thirdparty.simplejson as json
    3535
     36from webkitpy.common.memoized import memoized
    3637# FIXME: common should never import from new-run-webkit-tests, one of these files needs to move.
    3738from webkitpy.layout_tests.layout_package import json_results_generator
     
    6465        self._result_dict = result_dict
    6566
     67    def did_pass_or_run_as_expected(self):
     68        return self.did_pass() or self.did_run_as_expected()
     69
    6670    def did_pass(self):
    67         return test_expectations.PASS in self._actual_as_expectations()
     71        return test_expectations.PASS in self._actual_as_tokens()
    6872
    69     def _actual_as_expectations(self):
     73    def did_run_as_expected(self):
     74        actual_results = self._actual_as_tokens()
     75        expected_results = self._expected_as_tokens()
     76        for actual_result in actual_results:
     77            if not test_expectations.result_was_expected(actual_result, expected_results, False, False):
     78                return False
     79        return True
     80
     81    def _tokenize(self, results_string):
     82        tokens = map(test_expectations.TestExpectations.expectation_from_string, results_string.split(' '))
     83        if None in tokens:
     84            log("Unrecognized result in %s" % results_string)
     85        return tokens
     86
     87    @memoized
     88    def _actual_as_tokens(self):
    7089        actual_results = self._result_dict['actual']
    71         expectations = map(test_expectations.TestExpectations.expectation_from_string, actual_results.split(' '))
    72         if None in expectations:
    73             log("Unrecognized actual result in %s" % actual_results)
    74         return expectations
     90        return self._tokenize(actual_results)
     91
     92    @memoized
     93    def _expected_as_tokens(self):
     94        actual_results = self._result_dict['expected']
     95        return self._tokenize(actual_results)
    7596
    7697    def _failure_types_from_actual_result(self, actual):
     
    101122        if self.did_pass():
    102123            return []
    103         return sum(map(self._failure_types_from_actual_result, self._actual_as_expectations()), [])
     124        return sum(map(self._failure_types_from_actual_result, self._actual_as_tokens()), [])
    104125
    105126    def test_result(self):
     
    109130
    110131class ResultsJSONParser(object):
    111     """Parse unexpected_results.json files from new-run-webkit-tests
    112     This will not parse the old results.json format."""
    113 
    114132    @classmethod
    115133    def parse_results_json(cls, json_string):
     
    125143        # FIXME: What's the short sexy python way to filter None?
    126144        # I would use [foo.bar() for foo in foos if foo.bar()] but bar() is expensive.
    127         non_passing_results = [result.test_result() for result in json_results if not result.did_pass()]
    128         return filter(lambda a: a, non_passing_results)
     145        unexpected_failures = [result.test_result() for result in json_results if not result.did_pass_or_run_as_expected()]
     146        return filter(lambda a: a, unexpected_failures)
  • trunk/Tools/Scripts/webkitpy/common/net/resultsjsonparser_unittest.py

    r90532 r90539  
    5252                    "actual": "PASS TEXT"
    5353                },
     54                "prototype-chocolate.html": {
     55                    "expected": "TEXT",
     56                    "actual": "TEXT"
     57                },
    5458                "prototype-strawberry.html": {
    5559                    "expected": "PASS",
  • trunk/Tools/Scripts/webkitpy/layout_tests/models/test_expectations.py

    r90534 r90539  
    5252
    5353
    54 def result_was_expected(result, expected_results, test_needs_rebaselining,
    55                         test_is_skipped):
     54def result_was_expected(result, expected_results, test_needs_rebaselining, test_is_skipped):
    5655    """Returns whether we got a result we were expecting.
    5756    Args:
     
    196195                                          'no expected results found')}
    197196
    198     EXPECTATION_ORDER = (PASS, CRASH, TIMEOUT, MISSING, IMAGE_PLUS_TEXT,
    199        TEXT, IMAGE, AUDIO, FAIL, SKIP)
     197    EXPECTATION_ORDER = (PASS, CRASH, TIMEOUT, MISSING, IMAGE_PLUS_TEXT, TEXT, IMAGE, AUDIO, FAIL, SKIP)
    200198
    201199    BUILD_TYPES = ('debug', 'release')
Note: See TracChangeset for help on using the changeset viewer.