Changeset 60690


Ignore:
Timestamp:
06/04/10 11:19:04 (5 years ago)
Author:
kinuko@chromium.org
Message:

2010-06-03 Kinuko Yasuda <kinuko@chromium.org>

Reviewed by Shinichiro Hamaji.

Clean up chromium-specific code from json_results_generator.py.
https://bugs.webkit.org/show_bug.cgi?id=39665

  • Scripts/webkitpy/layout_tests/layout_package/json_layout_results_generator.py:
  • Scripts/webkitpy/layout_tests/layout_package/json_results_generator.py:
  • Scripts/webkitpy/layout_tests/port/base.py:
  • Scripts/webkitpy/layout_tests/port/chromium.py:
Location:
trunk/WebKitTools
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/WebKitTools/ChangeLog

    r60683 r60690  
     12010-06-03  Kinuko Yasuda  <kinuko@chromium.org> 
     2 
     3        Reviewed by Shinichiro Hamaji. 
     4 
     5        Clean up chromium-specific code from json_results_generator.py. 
     6        https://bugs.webkit.org/show_bug.cgi?id=39665 
     7 
     8        * Scripts/webkitpy/layout_tests/layout_package/json_layout_results_generator.py: 
     9        * Scripts/webkitpy/layout_tests/layout_package/json_results_generator.py: 
     10        * Scripts/webkitpy/layout_tests/port/base.py: 
     11        * Scripts/webkitpy/layout_tests/port/chromium.py: 
     12 
    1132010-06-04  Tony Gentilcore  <tonyg@chromium.org> 
    214 
  • trunk/WebKitTools/Scripts/webkitpy/layout_tests/layout_package/json_layout_results_generator.py

    r57443 r60690  
    7878            (path_to_name(test_tuple.filename), test_tuple.test_run_time) 
    7979            for test_tuple in test_timings) 
     80        self._svn_repositories = port.test_repository_paths() 
    8081 
    8182        self._generate_json_output() 
  • trunk/WebKitTools/Scripts/webkitpy/layout_tests/layout_package/json_results_generator.py

    r58314 r60690  
    3939import xml.dom.minidom 
    4040 
     41from webkitpy.common.checkout import scm 
     42from webkitpy.common.system.executive import ScriptError 
    4143from webkitpy.layout_tests.layout_package import test_expectations 
    4244import webkitpy.thirdparty.simplejson as simplejson 
     
    4749 
    4850class JSONResultsGenerator(object): 
     51    """A JSON results generator for generic tests.""" 
    4952 
    5053    MAX_NUMBER_OF_BUILD_RESULTS_TO_LOG = 750 
     
    6164    TIMES = "times" 
    6265    BUILD_NUMBERS = "buildNumbers" 
    63     WEBKIT_SVN = "webkitRevision" 
    64     CHROME_SVN = "chromeRevision" 
    6566    TIME = "secondsSinceEpoch" 
    6667    TESTS = "tests" 
     
    103104              include skipped tests. 
    104105        """ 
    105         self._port = port 
    106106        self._builder_name = builder_name 
    107107        self._build_name = build_name 
     
    115115        self._skipped_tests = skipped_tests 
    116116        self._all_tests = all_tests 
     117        self._svn_repositories = port.test_repository_paths() 
    117118 
    118119        self._generate_json_output() 
     
    126127            results_file.close() 
    127128 
    128     # FIXME: Callers should use scm.py instead. 
    129129    def _get_svn_revision(self, in_directory): 
    130130        """Returns the svn revision for the given directory. 
     
    133133          in_directory: The directory where svn is to be run. 
    134134        """ 
    135         if os.path.exists(os.path.join(in_directory, '.svn')): 
    136             # Note: Not thread safe: http://bugs.python.org/issue2320 
    137             output = subprocess.Popen(["svn", "info", "--xml"], 
    138                                       cwd=in_directory, 
    139                                       shell=(sys.platform == 'win32'), 
    140                                       stdout=subprocess.PIPE).communicate()[0] 
    141             try: 
    142                 dom = xml.dom.minidom.parseString(output) 
    143                 return dom.getElementsByTagName('entry')[0].getAttribute( 
    144                     'revision') 
    145             except xml.parsers.expat.ExpatError: 
    146                 return "" 
    147         return "" 
     135 
     136        try: 
     137            scm_system = scm.detect_scm_system(in_directory) 
     138            return scm_system.__class__.value_from_svn_info(in_directory, 
     139                                                            'Revision') 
     140        except (AttributeError, ScriptError): 
     141            # We're not in a svn directory, that's ok. 
     142            return "" 
    148143 
    149144    def _get_archived_json_results(self): 
     
    313308            self._build_number, self.BUILD_NUMBERS) 
    314309 
    315         # These next two branches test to see which source repos we can 
    316         # pull revisions from. 
    317         if hasattr(self._port, 'path_from_webkit_base'): 
    318             path_to_webkit = self._port.path_from_webkit_base('WebCore') 
     310        # Include SVN revisions for the given repositories. 
     311        for (name, path) in self._svn_repositories: 
    319312            self._insert_item_into_raw_list(results_for_builder, 
    320                 self._get_svn_revision(path_to_webkit), 
    321                 self.WEBKIT_SVN) 
    322  
    323         if hasattr(self._port, 'path_from_chromium_base'): 
    324             try: 
    325                 path_to_chrome = self._port.path_from_chromium_base() 
    326                 self._insert_item_into_raw_list(results_for_builder, 
    327                     self._get_svn_revision(path_to_chrome), 
    328                     self.CHROME_SVN) 
    329             except AssertionError: 
    330                 # We're not in a Chromium checkout, that's ok. 
    331                 pass 
     313                self._get_svn_revision(path), 
     314                name + 'Revision') 
    332315 
    333316        self._insert_item_into_raw_list(results_for_builder, 
  • trunk/WebKitTools/Scripts/webkitpy/layout_tests/port/base.py

    r59666 r60690  
    538538        raise NotImplementedError('Port.version') 
    539539 
     540    def test_repository_paths(self): 
     541        """Returns a list of (repository_name, repository_path) tuples 
     542        of its depending code base.  By default it returns a list that only 
     543        contains a ('webkit', <webkitRepossitoryPath>) tuple. 
     544        """ 
     545        return [('webkit', self.layout_tests_dir())] 
     546 
     547 
    540548    _WDIFF_DEL = '##WDIFF_DEL##' 
    541549    _WDIFF_ADD = '##WDIFF_ADD##' 
  • trunk/WebKitTools/Scripts/webkitpy/layout_tests/port/chromium.py

    r60427 r60690  
    233233                         test_platform_name) 
    234234 
     235    def test_repository_paths(self): 
     236        # Note: for JSON file's backward-compatibility we use 'chrome' rather 
     237        # than 'chromium' here. 
     238        repos = super(ChromiumPort, self).test_repository_paths() 
     239        repos.append(('chrome', self.path_from_chromium_base())) 
     240        return repos 
     241 
    235242    # 
    236243    # PROTECTED METHODS 
Note: See TracChangeset for help on using the changeset viewer.