Changeset 144155 in webkit


Ignore:
Timestamp:
Feb 27, 2013 12:56:33 AM (11 years ago)
Author:
rniwa@webkit.org
Message:

Stop uploading results to webkit-perf.appspot.com
https://bugs.webkit.org/show_bug.cgi?id=110954

Reviewed by Benjamin Poulain.

When the specified test results server was webkit-perf.appspot.com, replace it by perf.webkit.org.
Also, always use the new JSON format. Removed the code to generate the old format.

  • Scripts/webkitpy/performance_tests/perftestsrunner.py:

(PerfTestsRunner._generate_and_show_results):
(PerfTestsRunner._generate_results_dict):
(PerfTestsRunner._merge_slave_config_json):
(PerfTestsRunner._generate_output_files):

Location:
trunk/Tools
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/Tools/ChangeLog

    r144150 r144155  
     12013-02-27  Ryosuke Niwa  <rniwa@webkit.org>
     2
     3        Stop uploading results to webkit-perf.appspot.com
     4        https://bugs.webkit.org/show_bug.cgi?id=110954
     5
     6        Reviewed by Benjamin Poulain.
     7
     8        When the specified test results server was webkit-perf.appspot.com, replace it by perf.webkit.org.
     9        Also, always use the new JSON format. Removed the code to generate the old format.
     10
     11        * Scripts/webkitpy/performance_tests/perftestsrunner.py:
     12        (PerfTestsRunner._generate_and_show_results):
     13        (PerfTestsRunner._generate_results_dict):
     14        (PerfTestsRunner._merge_slave_config_json):
     15        (PerfTestsRunner._generate_output_files):
     16
    1172013-02-27  Sheriff Bot  <webkit.review.bot@gmail.com>
    218
  • trunk/Tools/Scripts/webkitpy/performance_tests/perftestsrunner.py

    r144141 r144155  
    208208    def _generate_and_show_results(self):
    209209        options = self._options
    210         perf_webkit_json_path = self._output_json_path()
    211         legacy_output, perf_webkit_output = self._generate_results_dict(self._timestamp, options.description, options.platform, options.builder_name, options.build_number)
     210        output_json_path = self._output_json_path()
     211        output = self._generate_results_dict(self._timestamp, options.description, options.platform, options.builder_name, options.build_number)
    212212
    213213        if options.slave_config_json_path:
    214             legacy_output, perf_webkit_output = self._merge_slave_config_json(options.slave_config_json_path, legacy_output, perf_webkit_output)
    215             if not legacy_output:
     214            output = self._merge_slave_config_json(options.slave_config_json_path, output)
     215            if not output:
    216216                return self.EXIT_CODE_BAD_SOURCE_JSON
    217217
    218         perf_webkit_output = self._merge_outputs_if_needed(perf_webkit_json_path, perf_webkit_output)
    219         if not perf_webkit_output:
     218        output = self._merge_outputs_if_needed(output_json_path, output)
     219        if not output:
    220220            return self.EXIT_CODE_BAD_MERGE
    221         legacy_output = [legacy_output]
    222 
    223         results_page_path = self._host.filesystem.splitext(perf_webkit_json_path)[0] + '.html'
    224         legacy_output_json_path = self._host.filesystem.splitext(perf_webkit_json_path)[0] + '-legacy.json' if options.test_results_server else None
    225         self._generate_output_files(legacy_output_json_path, perf_webkit_json_path, results_page_path, legacy_output, perf_webkit_output)
     221
     222        results_page_path = self._host.filesystem.splitext(output_json_path)[0] + '.html'
     223        self._generate_output_files(output_json_path, results_page_path, output)
    226224
    227225        if options.test_results_server:
    228             if not self._upload_json(options.test_results_server, legacy_output_json_path):
    229                 return self.EXIT_CODE_FAILED_UPLOADING
    230 
    231             # FIXME: Remove this code once we've made transition to use perf.webkit.org
    232             if not self._upload_json('perf.webkit.org', perf_webkit_json_path, "/api/report"):
     226            if options.test_results_server == 'webkit-perf.appspot.com':
     227                options.test_results_server = 'perf.webkit.org'
     228
     229            if not self._upload_json(options.test_results_server, output_json_path):
    233230                return self.EXIT_CODE_FAILED_UPLOADING
    234231
     
    237234
    238235    def _generate_results_dict(self, timestamp, description, platform, builder_name, build_number):
    239         contents = {'results': self._results}
     236        contents = {'tests': {}}
    240237        if description:
    241238            contents['description'] = description
    242239
    243         revisions_for_perf_webkit = {}
     240        revisions = {}
    244241        for (name, path) in self._port.repository_paths():
    245242            scm = SCMDetector(self._host.filesystem, self._host.executive).detect_scm_system(path) or self._host.scm()
    246243            revision = scm.svn_revision(path)
    247             contents[name.lower() + '-revision'] = revision
    248             revisions_for_perf_webkit[name] = {'revision': str(revision), 'timestamp': scm.timestamp_of_latest_commit(path, revision)}
    249 
    250         # FIXME: Add --branch or auto-detect the branch we're in
    251         for key, value in {'timestamp': int(timestamp), 'branch': self._default_branch, 'platform': platform,
    252             'builder-name': builder_name, 'build-number': int(build_number) if build_number else None}.items():
    253             if value:
    254                 contents[key] = value
    255 
    256         contents_for_perf_webkit = {'tests': {}}
    257         if description:
    258             contents_for_perf_webkit['description'] = description
     244            revisions[name] = {'revision': str(revision), 'timestamp': scm.timestamp_of_latest_commit(path, revision)}
    259245
    260246        meta_info = {
    261247            'buildTime': self._datetime_in_ES5_compatible_iso_format(self._utc_timestamp),
    262248            'platform': platform,
    263             'revisions': revisions_for_perf_webkit,
     249            'revisions': revisions,
    264250            'builderName': builder_name,
    265251            'buildNumber': int(build_number) if build_number else None}
     
    267253        for key, value in meta_info.items():
    268254            if value:
    269                 contents_for_perf_webkit[key] = value
     255                contents[key] = value
    270256
    271257        # FIXME: Make this function shorter once we've transitioned to use perf.webkit.org.
     
    279265                metric = {'fps': 'FrameRate', 'runs/s': 'Runs', 'ms': 'Time'}[result['unit']]
    280266
    281             tests = contents_for_perf_webkit['tests']
     267            tests = contents['tests']
    282268            path = test_full_name.split('/')
    283269            for i in range(0, len(path)):
     
    298284                    tests = current_test['tests']
    299285
    300         return contents, contents_for_perf_webkit
     286        return contents
    301287
    302288    @staticmethod
     
    304290        return datetime.strftime('%Y-%m-%dT%H:%M:%S.%f')
    305291
    306     def _merge_slave_config_json(self, slave_config_json_path, contents, contents_for_perf_webkit):
     292    def _merge_slave_config_json(self, slave_config_json_path, contents):
    307293        if not self._host.filesystem.isfile(slave_config_json_path):
    308294            _log.error("Missing slave configuration JSON file: %s" % slave_config_json_path)
    309             return None, None
     295            return None
    310296
    311297        try:
    312298            slave_config_json = self._host.filesystem.open_text_file_for_reading(slave_config_json_path)
    313299            slave_config = json.load(slave_config_json)
    314             contents = dict(slave_config.items() + contents.items())
    315300            for key in slave_config:
    316                 contents_for_perf_webkit['builder' + key.capitalize()] = slave_config[key]
    317             return contents, contents_for_perf_webkit
     301                contents['builder' + key.capitalize()] = slave_config[key]
     302            return contents
    318303        except Exception, error:
    319304            _log.error("Failed to merge slave configuration JSON file %s: %s" % (slave_config_json_path, error))
    320         return None, None
     305        return None
    321306
    322307    def _merge_outputs_if_needed(self, output_json_path, output):
     
    330315        return None
    331316
    332     def _generate_output_files(self, output_json_path, perf_webkit_json_path, results_page_path, legacy_output, perf_webkit_output):
     317    def _generate_output_files(self, output_json_path, results_page_path, output):
    333318        filesystem = self._host.filesystem
    334319
    335         if output_json_path:
    336             filesystem.write_text_file(output_json_path, json.dumps(legacy_output))
    337 
    338         json_output = json.dumps(perf_webkit_output)
    339         if perf_webkit_json_path:
    340             filesystem.write_text_file(perf_webkit_json_path, json.dumps(perf_webkit_output))
     320        json_output = json.dumps(output)
     321        filesystem.write_text_file(output_json_path, json_output)
    341322
    342323        if results_page_path:
Note: See TracChangeset for help on using the changeset viewer.