diff options
author | Allan Sandfeld Jensen <allan.jensen@digia.com> | 2013-09-13 12:51:20 +0200 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-09-19 20:50:05 +0200 |
commit | d441d6f39bb846989d95bcf5caf387b42414718d (patch) | |
tree | e367e64a75991c554930278175d403c072de6bb8 /Tools/Scripts/webkitpy/tool/commands/earlywarningsystem.py | |
parent | 0060b2994c07842f4c59de64b5e3e430525c4b90 (diff) | |
download | qtwebkit-d441d6f39bb846989d95bcf5caf387b42414718d.tar.gz |
Import Qt5x2 branch of QtWebkit for Qt 5.2
Importing a new snapshot of webkit.
Change-Id: I2d01ad12cdc8af8cb015387641120a9d7ea5f10c
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@digia.com>
Diffstat (limited to 'Tools/Scripts/webkitpy/tool/commands/earlywarningsystem.py')
-rw-r--r-- | Tools/Scripts/webkitpy/tool/commands/earlywarningsystem.py | 111 |
1 files changed, 26 insertions, 85 deletions
diff --git a/Tools/Scripts/webkitpy/tool/commands/earlywarningsystem.py b/Tools/Scripts/webkitpy/tool/commands/earlywarningsystem.py index 98a9a36ed..b5e285c64 100644 --- a/Tools/Scripts/webkitpy/tool/commands/earlywarningsystem.py +++ b/Tools/Scripts/webkitpy/tool/commands/earlywarningsystem.py @@ -26,11 +26,13 @@ # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +import json import logging from optparse import make_option from webkitpy.common.config.committers import CommitterList from webkitpy.common.config.ports import DeprecatedPort +from webkitpy.common.system.filesystem import FileSystem from webkitpy.common.system.executive import ScriptError from webkitpy.tool.bot.earlywarningsystemtask import EarlyWarningSystemTask, EarlyWarningSystemTaskDelegate from webkitpy.tool.bot.expectedfailures import ExpectedFailures @@ -45,22 +47,16 @@ _log = logging.getLogger(__name__) class AbstractEarlyWarningSystem(AbstractReviewQueue, EarlyWarningSystemTaskDelegate): _build_style = "release" # FIXME: Switch _default_run_tests from opt-in to opt-out once more bots are ready to run tests. - _default_run_tests = False - - # Subclasses must override. - port_name = None + run_tests = False def __init__(self): - options = [make_option("--run-tests", action="store_true", dest="run_tests", default=self._default_run_tests, help="Run the Layout tests for each patch")] + options = [make_option("--run-tests", action="store_true", dest="run_tests", default=self.run_tests, help="Run the Layout tests for each patch")] AbstractReviewQueue.__init__(self, options=options) - self.port = DeprecatedPort.port(self.port_name) def begin_work_queue(self): - # FIXME: This violates abstraction - self._tool._deprecated_port = self.port AbstractReviewQueue.begin_work_queue(self) self._expected_failures = ExpectedFailures() - self._layout_test_results_reader = LayoutTestResultsReader(self._tool, self._log_directory()) + self._layout_test_results_reader = LayoutTestResultsReader(self._tool, self._port.results_directory(), self._log_directory()) def _failing_tests_message(self, task, patch): results = task.results_from_patch_test_run(patch) @@ -72,11 +68,13 @@ class AbstractEarlyWarningSystem(AbstractReviewQueue, EarlyWarningSystemTaskDele def _post_reject_message_on_bug(self, tool, patch, status_id, extra_message_text=None): results_link = tool.status_server.results_url_for_status(status_id) message = "Attachment %s did not pass %s (%s):\nOutput: %s" % (patch.id(), self.name, self.port_name, results_link) + if extra_message_text: + message += "\n\n%s" % extra_message_text # FIXME: We might want to add some text about rejecting from the commit-queue in # the case where patch.commit_queue() isn't already set to '-'. if self.watchers: tool.bugs.add_cc_to_bug(patch.bug_id(), self.watchers) - tool.bugs.set_flag_on_attachment(patch.id(), "commit-queue", "-", message, extra_message_text) + tool.bugs.set_flag_on_attachment(patch.id(), "commit-queue", "-", message) def review_patch(self, patch): task = EarlyWarningSystemTask(self, patch, self._options.run_tests) @@ -105,7 +103,7 @@ class AbstractEarlyWarningSystem(AbstractReviewQueue, EarlyWarningSystemTaskDele return self.name def run_command(self, command): - self.run_webkit_patch(command + [self.port.flag()]) + self.run_webkit_patch(command + [self._deprecated_port.flag()]) def command_passed(self, message, patch): pass @@ -139,78 +137,21 @@ class AbstractEarlyWarningSystem(AbstractReviewQueue, EarlyWarningSystemTaskDele # FIXME: Why does this not exit(1) like the superclass does? _log.error(script_error.message_with_output()) + @classmethod + def load_ews_classes(cls): + filesystem = FileSystem() + json_path = filesystem.join(filesystem.dirname(filesystem.path_to_module('webkitpy.common.config')), 'ews.json') + try: + ewses = json.loads(filesystem.read_text_file(json_path)) + except ValueError: + return None -class GtkEWS(AbstractEarlyWarningSystem): - name = "gtk-ews" - port_name = "gtk" - watchers = AbstractEarlyWarningSystem.watchers + [ - "xan.lopez@gmail.com", - ] - - -class EflEWS(AbstractEarlyWarningSystem): - name = "efl-ews" - port_name = "efl" - watchers = AbstractEarlyWarningSystem.watchers + [ - "leandro@profusion.mobi", - "antognolli@profusion.mobi", - "lucas.demarchi@profusion.mobi", - "gyuyoung.kim@samsung.com", - ] - - -class QtEWS(AbstractEarlyWarningSystem): - name = "qt-ews" - port_name = "qt" - watchers = AbstractEarlyWarningSystem.watchers + [ - "webkit-ews@sed.inf.u-szeged.hu", - ] - - -class QtWK2EWS(AbstractEarlyWarningSystem): - name = "qt-wk2-ews" - port_name = "qt" - watchers = AbstractEarlyWarningSystem.watchers + [ - "webkit-ews@sed.inf.u-szeged.hu", - ] - - -class WinEWS(AbstractEarlyWarningSystem): - name = "win-ews" - port_name = "win" - # Use debug, the Apple Win port fails to link Release on 32-bit Windows. - # https://bugs.webkit.org/show_bug.cgi?id=39197 - _build_style = "debug" - - -class AbstractChromiumEWS(AbstractEarlyWarningSystem): - port_name = "chromium" - watchers = AbstractEarlyWarningSystem.watchers + [ - "dglazkov@chromium.org", - ] - - -class ChromiumLinuxEWS(AbstractChromiumEWS): - # FIXME: We should rename this command to cr-linux-ews, but that requires - # a database migration. :( - name = "chromium-ews" - port_name = "chromium-xvfb" - _default_run_tests = True - - -class ChromiumWindowsEWS(AbstractChromiumEWS): - name = "cr-win-ews" - - -class ChromiumAndroidEWS(AbstractChromiumEWS): - name = "cr-android-ews" - port_name = "chromium-android" - watchers = AbstractChromiumEWS.watchers + [ - "peter+ews@chromium.org", - ] - - -class MacEWS(AbstractEarlyWarningSystem): - name = "mac-ews" - port_name = "mac" - _default_run_tests = True + classes = [] + for name, config in ewses.iteritems(): + classes.append(type(str(name.replace(' ', '')), (AbstractEarlyWarningSystem,), { + 'name': config['port'] + '-ews', + 'port_name': config['port'], + 'watchers': config.get('watchers', []), + 'run_tests': config.get('runTests', cls.run_tests), + })) + return classes |