Title: [138264] trunk/Tools
Revision
138264
Author
e...@webkit.org
Date
2012-12-20 09:58:33 -0800 (Thu, 20 Dec 2012)

Log Message

EWSes do not need to dump build/test logs when things pass
https://bugs.webkit.org/show_bug.cgi?id=105402

Reviewed by Dirk Pranke.

When we were first writing the commit-queue and EWS system
and running them locally, we thought it was important to see the
build/test output as it happened.  Now these queues have been running
for years, and we don't use this feature anymore.  So this patch
makes us stop tee-ing the output directly to stdout, and instead
only print any output from commands when they fail.

I also added some logging when we execute each command
since we are no longer printing the command output itself.
This should make it much easier to see errors with the EWS
system itself, now that all the passing-build output is removed.

This required updating a zillion unittests, since we have a bunch of
"integration" style testing of the queue-bots.  Many of the unittests for the bots were
already approximating this behavior by using a "logging" Executive.
I disabled logging in those cases to avoid redundant logging in those tests.

* Scripts/webkitpy/common/system/executive.py:
(Executive.command_for_printing):
(Executive.run_command):
* Scripts/webkitpy/common/system/executive_mock.py:
(MockExecutive.command_for_printing):
(MockExecutive.run_command):
* Scripts/webkitpy/common/system/executive_unittest.py:
(ExecutiveTest.test_auto_stringify_args):
* Scripts/webkitpy/tool/commands/earlywarningsystem_unittest.py:
(EarlyWarningSytemTest._default_expected_logs):
(_test_ews):
(_test_ewses):
* Scripts/webkitpy/tool/commands/queues.py:
(AbstractQueue.run_webkit_patch):
* Scripts/webkitpy/tool/commands/queues_unittest.py:
(AbstractQueueTest._assert_run_webkit_patch):
(CommitQueueTest.test_commit_queue):
(test_rollout):
(test_rollout_lands):
(test_manual_reject_during_processing):
(StyleQueueTest.test_style_queue_with_style_exception):
(test_style_queue_with_watch_list_exception):

Modified Paths

Diff

Modified: trunk/Tools/ChangeLog (138263 => 138264)


--- trunk/Tools/ChangeLog	2012-12-20 17:41:37 UTC (rev 138263)
+++ trunk/Tools/ChangeLog	2012-12-20 17:58:33 UTC (rev 138264)
@@ -1,3 +1,50 @@
+2012-12-20  Eric Seidel  <e...@webkit.org>
+
+        EWSes do not need to dump build/test logs when things pass
+        https://bugs.webkit.org/show_bug.cgi?id=105402
+
+        Reviewed by Dirk Pranke.
+
+        When we were first writing the commit-queue and EWS system
+        and running them locally, we thought it was important to see the
+        build/test output as it happened.  Now these queues have been running
+        for years, and we don't use this feature anymore.  So this patch
+        makes us stop tee-ing the output directly to stdout, and instead
+        only print any output from commands when they fail.
+
+        I also added some logging when we execute each command
+        since we are no longer printing the command output itself.
+        This should make it much easier to see errors with the EWS
+        system itself, now that all the passing-build output is removed.
+
+        This required updating a zillion unittests, since we have a bunch of
+        "integration" style testing of the queue-bots.  Many of the unittests for the bots were
+        already approximating this behavior by using a "logging" Executive.
+        I disabled logging in those cases to avoid redundant logging in those tests.
+
+        * Scripts/webkitpy/common/system/executive.py:
+        (Executive.command_for_printing):
+        (Executive.run_command):
+        * Scripts/webkitpy/common/system/executive_mock.py:
+        (MockExecutive.command_for_printing):
+        (MockExecutive.run_command):
+        * Scripts/webkitpy/common/system/executive_unittest.py:
+        (ExecutiveTest.test_auto_stringify_args):
+        * Scripts/webkitpy/tool/commands/earlywarningsystem_unittest.py:
+        (EarlyWarningSytemTest._default_expected_logs):
+        (_test_ews):
+        (_test_ewses):
+        * Scripts/webkitpy/tool/commands/queues.py:
+        (AbstractQueue.run_webkit_patch):
+        * Scripts/webkitpy/tool/commands/queues_unittest.py:
+        (AbstractQueueTest._assert_run_webkit_patch):
+        (CommitQueueTest.test_commit_queue):
+        (test_rollout):
+        (test_rollout_lands):
+        (test_manual_reject_during_processing):
+        (StyleQueueTest.test_style_queue_with_style_exception):
+        (test_style_queue_with_watch_list_exception):
+
 2012-12-20  Dominic Mazzoni  <dmazz...@google.com>
 
         AX: support clickPoint in DRT for chromium

Modified: trunk/Tools/Scripts/webkitpy/common/system/executive.py (138263 => 138264)


--- trunk/Tools/Scripts/webkitpy/common/system/executive.py	2012-12-20 17:41:37 UTC (rev 138263)
+++ trunk/Tools/Scripts/webkitpy/common/system/executive.py	2012-12-20 17:58:33 UTC (rev 138264)
@@ -380,9 +380,10 @@
             input = input.encode(self._child_process_encoding())
         return (self.PIPE, input)
 
-    def _command_for_printing(self, args):
+    def command_for_printing(self, args):
         """Returns a print-ready string representing command args.
         The string should be copy/paste ready for execution in a shell."""
+        args = self._stringify_args(args)
         escaped_args = []
         for arg in args:
             if isinstance(arg, unicode):
@@ -427,7 +428,7 @@
         # http://bugs.python.org/issue1731717
         exit_code = process.wait()
 
-        _log.debug('"%s" took %.2fs' % (self._command_for_printing(args), time.time() - start_time))
+        _log.debug('"%s" took %.2fs' % (self.command_for_printing(args), time.time() - start_time))
 
         if return_exit_code:
             return exit_code

Modified: trunk/Tools/Scripts/webkitpy/common/system/executive_mock.py (138263 => 138264)


--- trunk/Tools/Scripts/webkitpy/common/system/executive_mock.py	2012-12-20 17:41:37 UTC (rev 138263)
+++ trunk/Tools/Scripts/webkitpy/common/system/executive_mock.py	2012-12-20 17:58:33 UTC (rev 138264)
@@ -86,6 +86,10 @@
             raise ScriptError("Exception for %s" % args, output="MOCK command output")
         return "MOCK output of child process"
 
+    def command_for_printing(self, args):
+        string_args = map(unicode, args)
+        return " ".join(string_args)
+
     def run_command(self,
                     args,
                     cwd=None,
@@ -108,6 +112,10 @@
                 input_string = ", input=%s" % input
             _log.info("MOCK run_command: %s, cwd=%s%s%s" % (args, cwd, env_string, input_string))
         output = "MOCK output of child process"
+
+        if self._should_throw_when_run.intersection(args):
+            raise ScriptError("Exception for %s" % args, output="MOCK command output")
+
         if self._should_throw:
             raise ScriptError("MOCK ScriptError", output=output)
         return output

Modified: trunk/Tools/Scripts/webkitpy/common/system/executive_unittest.py (138263 => 138264)


--- trunk/Tools/Scripts/webkitpy/common/system/executive_unittest.py	2012-12-20 17:41:37 UTC (rev 138263)
+++ trunk/Tools/Scripts/webkitpy/common/system/executive_unittest.py	2012-12-20 17:58:33 UTC (rev 138264)
@@ -117,6 +117,7 @@
         executive = Executive()
         executive.run_command(command_line('echo', 1))
         executive.popen(command_line('echo', 1)).wait()
+        self.assertEqual('echo 1', executive.command_for_printing(['echo', 1]))
 
     def test_popen_args(self):
         executive = Executive()

Modified: trunk/Tools/Scripts/webkitpy/tool/commands/earlywarningsystem_unittest.py (138263 => 138264)


--- trunk/Tools/Scripts/webkitpy/tool/commands/earlywarningsystem_unittest.py	2012-12-20 17:41:37 UTC (rev 138263)
+++ trunk/Tools/Scripts/webkitpy/tool/commands/earlywarningsystem_unittest.py	2012-12-20 17:58:33 UTC (rev 138264)
@@ -52,39 +52,43 @@
 
 class EarlyWarningSytemTest(QueuesTest):
     def _default_expected_logs(self, ews):
-        string_replacemnts = {
+        string_replacements = {
             "name": ews.name,
             "port": ews.port_name,
         }
+        if ews._default_run_tests:
+            run_tests_line = "Running: webkit-patch --status-host=example.com build-and-test --no-clean --no-update --test --non-interactive --port=%(port)s\n" % string_replacements
+        else:
+            run_tests_line = ""
+        string_replacements['run_tests_line'] = run_tests_line
+
         expected_logs = {
             "begin_work_queue": self._default_begin_work_queue_logs(ews.name),
-            "process_work_item": "MOCK: update_status: %(name)s Pass\nMOCK: release_work_item: %(name)s 10000\n" % string_replacemnts,
+            "process_work_item": """Running: webkit-patch --status-host=example.com clean --port=%(port)s
+Running: webkit-patch --status-host=example.com update --port=%(port)s
+Running: webkit-patch --status-host=example.com apply-attachment --no-update --non-interactive 10000 --port=%(port)s
+Running: webkit-patch --status-host=example.com build --no-clean --no-update --build-style=release --port=%(port)s
+%(run_tests_line)sMOCK: update_status: %(name)s Pass
+MOCK: release_work_item: %(name)s 10000
+""" % string_replacements,
             "handle_unexpected_error": "Mock error message\n",
             "handle_script_error": "ScriptError error message\n\nMOCK output\n",
         }
         return expected_logs
 
-    def _test_builder_ews(self, ews):
+    def _test_ews(self, ews):
         ews.bind_to_tool(MockTool())
         options = Mock()
         options.port = None
         options.run_tests = ews._default_run_tests
         self.assert_queue_outputs(ews, expected_logs=self._default_expected_logs(ews), options=options)
 
-    def _test_testing_ews(self, ews):
-        ews.test_results = lambda: None
-        ews.bind_to_tool(MockTool())
-        expected_logs = self._default_expected_logs(ews)
-        self.assert_queue_outputs(ews, expected_logs=expected_logs)
-
-    def test_builder_ewses(self):
-        self._test_builder_ews(MacEWS())
-        self._test_builder_ews(ChromiumWindowsEWS())
-        self._test_builder_ews(ChromiumAndroidEWS())
-        self._test_builder_ews(QtEWS())
-        self._test_builder_ews(QtWK2EWS())
-        self._test_builder_ews(GtkEWS())
-        self._test_builder_ews(EflEWS())
-
-    def test_testing_ewses(self):
-        self._test_testing_ews(ChromiumLinuxEWS())
+    def _test_ewses(self):
+        self._test_ews(MacEWS())
+        self._test_ews(ChromiumLinuxEWS())
+        self._test_ews(ChromiumWindowsEWS())
+        self._test_ews(ChromiumAndroidEWS())
+        self._test_ews(QtEWS())
+        self._test_ews(QtWK2EWS())
+        self._test_ews(GtkEWS())
+        self._test_ews(EflEWS())

Modified: trunk/Tools/Scripts/webkitpy/tool/commands/queues.py (138263 => 138264)


--- trunk/Tools/Scripts/webkitpy/tool/commands/queues.py	2012-12-20 17:41:37 UTC (rev 138263)
+++ trunk/Tools/Scripts/webkitpy/tool/commands/queues.py	2012-12-20 17:58:33 UTC (rev 138264)
@@ -94,13 +94,18 @@
         if self._options.port:
             webkit_patch_args += ["--port=%s" % self._options.port]
         webkit_patch_args.extend(args)
-        # FIXME: There is probably no reason to use run_and_throw_if_fail anymore.
-        # run_and_throw_if_fail was invented to support tee'd output
-        # (where we write both to a log file and to the console at once),
-        # but the queues don't need live-progress, a dump-of-output at the
-        # end should be sufficient.
-        return self._tool.executive.run_and_throw_if_fail(webkit_patch_args, cwd=self._tool.scm().checkout_root)
 
+        try:
+            args_for_printing = list(webkit_patch_args)
+            args_for_printing[0] = 'webkit-patch'  # Printing our path for each log is redundant.
+            _log.info("Running: %s" % self._tool.executive.command_for_printing(args_for_printing))
+            command_output = self._tool.executive.run_command(webkit_patch_args, cwd=self._tool.scm().checkout_root)
+        except ScriptError, e:
+            # Make sure the whole output gets printed if the command failed.
+            _log.error(e.message_with_output(output_limit=None))
+            raise
+        return command_output
+
     def _log_directory(self):
         return os.path.join("..", "%s-logs" % self.name)
 

Modified: trunk/Tools/Scripts/webkitpy/tool/commands/queues_unittest.py (138263 => 138264)


--- trunk/Tools/Scripts/webkitpy/tool/commands/queues_unittest.py	2012-12-20 17:41:37 UTC (rev 138263)
+++ trunk/Tools/Scripts/webkitpy/tool/commands/queues_unittest.py	2012-12-20 17:58:33 UTC (rev 138264)
@@ -88,7 +88,7 @@
         if port:
             expected_run_args.append("--port=%s" % port)
         expected_run_args.extend(run_args)
-        tool.executive.run_and_throw_if_fail.assert_called_with(expected_run_args, cwd='/mock-checkout')
+        tool.executive.run_command.assert_called_with(expected_run_args, cwd='/mock-checkout')
 
     def test_run_webkit_patch(self):
         self._assert_run_webkit_patch([1])
@@ -236,12 +236,19 @@
         tool.filesystem.write_text_file('/tmp/layout-test-results/webkit_unit_tests_output.xml', '')
         expected_logs = {
             "begin_work_queue": self._default_begin_work_queue_logs("commit-queue"),
-            "process_work_item": """MOCK: update_status: commit-queue Cleaned working directory
+            "process_work_item": """Running: webkit-patch --status-host=example.com clean --port=chromium-xvfb
+MOCK: update_status: commit-queue Cleaned working directory
+Running: webkit-patch --status-host=example.com update --port=chromium-xvfb
 MOCK: update_status: commit-queue Updated working directory
+Running: webkit-patch --status-host=example.com apply-attachment --no-update --non-interactive 10000 --port=chromium-xvfb
 MOCK: update_status: commit-queue Applied patch
+Running: webkit-patch --status-host=example.com validate-changelog --non-interactive 10000 --port=chromium-xvfb
 MOCK: update_status: commit-queue ChangeLog validated
+Running: webkit-patch --status-host=example.com build --no-clean --no-update --build-style=release --port=chromium-xvfb
 MOCK: update_status: commit-queue Built patch
+Running: webkit-patch --status-host=example.com build-and-test --no-clean --no-update --test --non-interactive --port=chromium-xvfb
 MOCK: update_status: commit-queue Passed tests
+Running: webkit-patch --status-host=example.com land-attachment --force-clean --non-interactive --parent-command=commit-queue 10000 --port=chromium-xvfb
 MOCK: update_status: commit-queue Landed patch
 MOCK: update_status: commit-queue Pass
 MOCK: release_work_item: commit-queue 10000
@@ -307,54 +314,54 @@
         self.assert_queue_outputs(queue, expected_logs=expected_logs)
 
     def test_rollout(self):
-        tool = MockTool(log_executive=True)
+        tool = MockTool()
         tool.filesystem.write_text_file('/tmp/layout-test-results/full_results.json', '')  # Otherwise the commit-queue will hit a KeyError trying to read the results from the MockFileSystem.
         tool.filesystem.write_text_file('/tmp/layout-test-results/webkit_unit_tests_output.xml', '')
         tool.buildbot.light_tree_on_fire()
         expected_logs = {
             "begin_work_queue": self._default_begin_work_queue_logs("commit-queue"),
-            "process_work_item": """MOCK run_and_throw_if_fail: ['echo', '--status-host=example.com', 'clean', '--port=%(port_name)s'], cwd=/mock-checkout
+            "process_work_item": """Running: webkit-patch --status-host=example.com clean --port=%(port)s
 MOCK: update_status: commit-queue Cleaned working directory
-MOCK run_and_throw_if_fail: ['echo', '--status-host=example.com', 'update', '--port=%(port_name)s'], cwd=/mock-checkout
+Running: webkit-patch --status-host=example.com update --port=%(port)s
 MOCK: update_status: commit-queue Updated working directory
-MOCK run_and_throw_if_fail: ['echo', '--status-host=example.com', 'apply-attachment', '--no-update', '--non-interactive', 10000, '--port=%(port_name)s'], cwd=/mock-checkout
+Running: webkit-patch --status-host=example.com apply-attachment --no-update --non-interactive 10000 --port=%(port)s
 MOCK: update_status: commit-queue Applied patch
-MOCK run_and_throw_if_fail: ['echo', '--status-host=example.com', 'validate-changelog', '--non-interactive', 10000, '--port=%(port_name)s'], cwd=/mock-checkout
+Running: webkit-patch --status-host=example.com validate-changelog --non-interactive 10000 --port=%(port)s
 MOCK: update_status: commit-queue ChangeLog validated
-MOCK run_and_throw_if_fail: ['echo', '--status-host=example.com', 'build', '--no-clean', '--no-update', '--build-style=release', '--port=%(port_name)s'], cwd=/mock-checkout
+Running: webkit-patch --status-host=example.com build --no-clean --no-update --build-style=release --port=%(port)s
 MOCK: update_status: commit-queue Built patch
-MOCK run_and_throw_if_fail: ['echo', '--status-host=example.com', 'build-and-test', '--no-clean', '--no-update', '--test', '--non-interactive', '--port=%(port_name)s'], cwd=/mock-checkout
+Running: webkit-patch --status-host=example.com build-and-test --no-clean --no-update --test --non-interactive --port=%(port)s
 MOCK: update_status: commit-queue Passed tests
-MOCK run_and_throw_if_fail: ['echo', '--status-host=example.com', 'land-attachment', '--force-clean', '--non-interactive', '--parent-command=commit-queue', 10000, '--port=%(port_name)s'], cwd=/mock-checkout
+Running: webkit-patch --status-host=example.com land-attachment --force-clean --non-interactive --parent-command=commit-queue 10000 --port=%(port)s
 MOCK: update_status: commit-queue Landed patch
 MOCK: update_status: commit-queue Pass
 MOCK: release_work_item: commit-queue 10000
-""" % {"port_name": CommitQueue.port_name},
+""" % {"port": CommitQueue.port_name},
             "handle_script_error": "ScriptError error message\n\nMOCK output\n",
             "handle_unexpected_error": "MOCK setting flag 'commit-queue' to '-' on attachment '10000' with comment 'Rejecting attachment 10000 from commit-queue.' and additional comment 'Mock error message'\n",
         }
         self.assert_queue_outputs(CommitQueue(), tool=tool, expected_logs=expected_logs)
 
     def test_rollout_lands(self):
-        tool = MockTool(log_executive=True)
+        tool = MockTool()
         tool.buildbot.light_tree_on_fire()
         rollout_patch = tool.bugs.fetch_attachment(10005)  # _patch6, a rollout patch.
         assert(rollout_patch.is_rollout())
         expected_logs = {
             "begin_work_queue": self._default_begin_work_queue_logs("commit-queue"),
-            "process_work_item": """MOCK run_and_throw_if_fail: ['echo', '--status-host=example.com', 'clean', '--port=%(port_name)s'], cwd=/mock-checkout
+            "process_work_item": """Running: webkit-patch --status-host=example.com clean --port=%(port)s
 MOCK: update_status: commit-queue Cleaned working directory
-MOCK run_and_throw_if_fail: ['echo', '--status-host=example.com', 'update', '--port=%(port_name)s'], cwd=/mock-checkout
+Running: webkit-patch --status-host=example.com update --port=%(port)s
 MOCK: update_status: commit-queue Updated working directory
-MOCK run_and_throw_if_fail: ['echo', '--status-host=example.com', 'apply-attachment', '--no-update', '--non-interactive', 10005, '--port=%(port_name)s'], cwd=/mock-checkout
+Running: webkit-patch --status-host=example.com apply-attachment --no-update --non-interactive 10005 --port=%(port)s
 MOCK: update_status: commit-queue Applied patch
-MOCK run_and_throw_if_fail: ['echo', '--status-host=example.com', 'validate-changelog', '--non-interactive', 10005, '--port=%(port_name)s'], cwd=/mock-checkout
+Running: webkit-patch --status-host=example.com validate-changelog --non-interactive 10005 --port=%(port)s
 MOCK: update_status: commit-queue ChangeLog validated
-MOCK run_and_throw_if_fail: ['echo', '--status-host=example.com', 'land-attachment', '--force-clean', '--non-interactive', '--parent-command=commit-queue', 10005, '--port=%(port_name)s'], cwd=/mock-checkout
+Running: webkit-patch --status-host=example.com land-attachment --force-clean --non-interactive --parent-command=commit-queue 10005 --port=%(port)s
 MOCK: update_status: commit-queue Landed patch
 MOCK: update_status: commit-queue Pass
 MOCK: release_work_item: commit-queue 10005
-""" % {"port_name": CommitQueue.port_name},
+""" % {"port": CommitQueue.port_name},
             "handle_script_error": "ScriptError error message\n\nMOCK output\n",
             "handle_unexpected_error": "MOCK setting flag 'commit-queue' to '-' on attachment '10005' with comment 'Rejecting attachment 10005 from commit-queue.' and additional comment 'Mock error message'\n",
         }
@@ -384,11 +391,17 @@
         queue._tool.filesystem.write_text_file('/tmp/layout-test-results/webkit_unit_tests_output.xml', '')
         queue._options = Mock()
         queue._options.port = None
-        expected_logs = """MOCK: update_status: commit-queue Cleaned working directory
+        expected_logs = """Running: webkit-patch --status-host=example.com clean --port=chromium-xvfb
+MOCK: update_status: commit-queue Cleaned working directory
+Running: webkit-patch --status-host=example.com update --port=chromium-xvfb
 MOCK: update_status: commit-queue Updated working directory
+Running: webkit-patch --status-host=example.com apply-attachment --no-update --non-interactive 10000 --port=chromium-xvfb
 MOCK: update_status: commit-queue Applied patch
+Running: webkit-patch --status-host=example.com validate-changelog --non-interactive 10000 --port=chromium-xvfb
 MOCK: update_status: commit-queue ChangeLog validated
+Running: webkit-patch --status-host=example.com build --no-clean --no-update --build-style=release --port=chromium-xvfb
 MOCK: update_status: commit-queue Built patch
+Running: webkit-patch --status-host=example.com build-and-test --no-clean --no-update --test --non-interactive --port=chromium-xvfb
 MOCK: update_status: commit-queue Passed tests
 MOCK: update_status: commit-queue Retry
 MOCK: release_work_item: commit-queue 10000
@@ -449,15 +462,15 @@
     def test_style_queue_with_style_exception(self):
         expected_logs = {
             "begin_work_queue": self._default_begin_work_queue_logs("style-queue"),
-            "process_work_item": """MOCK run_and_throw_if_fail: ['echo', '--status-host=example.com', 'clean'], cwd=/mock-checkout
+            "process_work_item": """Running: webkit-patch --status-host=example.com clean
 MOCK: update_status: style-queue Cleaned working directory
-MOCK run_and_throw_if_fail: ['echo', '--status-host=example.com', 'update'], cwd=/mock-checkout
+Running: webkit-patch --status-host=example.com update
 MOCK: update_status: style-queue Updated working directory
-MOCK run_and_throw_if_fail: ['echo', '--status-host=example.com', 'apply-attachment', '--no-update', '--non-interactive', 10000], cwd=/mock-checkout
+Running: webkit-patch --status-host=example.com apply-attachment --no-update --non-interactive 10000
 MOCK: update_status: style-queue Applied patch
-MOCK run_and_throw_if_fail: ['echo', '--status-host=example.com', 'apply-watchlist-local', 50000], cwd=/mock-checkout
+Running: webkit-patch --status-host=example.com apply-watchlist-local 50000
 MOCK: update_status: style-queue Watchlist applied
-MOCK run_and_throw_if_fail: ['echo', '--status-host=example.com', 'check-style-local', '--non-interactive', '--quiet'], cwd=/mock-checkout
+Running: webkit-patch --status-host=example.com check-style-local --non-interactive --quiet
 MOCK: update_status: style-queue Style checked
 MOCK: update_status: style-queue Pass
 MOCK: release_work_item: style-queue 10000
@@ -465,21 +478,24 @@
             "handle_unexpected_error": "Mock error message\n",
             "handle_script_error": "MOCK output\n",
         }
-        tool = MockTool(log_executive=True, executive_throws_when_run=set(['check-style']))
+        tool = MockTool(executive_throws_when_run=set(['check-style']))
         self.assert_queue_outputs(StyleQueue(), expected_logs=expected_logs, tool=tool)
 
     def test_style_queue_with_watch_list_exception(self):
         expected_logs = {
             "begin_work_queue": self._default_begin_work_queue_logs("style-queue"),
-            "process_work_item": """MOCK run_and_throw_if_fail: ['echo', '--status-host=example.com', 'clean'], cwd=/mock-checkout
+            "process_work_item": """Running: webkit-patch --status-host=example.com clean
 MOCK: update_status: style-queue Cleaned working directory
-MOCK run_and_throw_if_fail: ['echo', '--status-host=example.com', 'update'], cwd=/mock-checkout
+Running: webkit-patch --status-host=example.com update
 MOCK: update_status: style-queue Updated working directory
-MOCK run_and_throw_if_fail: ['echo', '--status-host=example.com', 'apply-attachment', '--no-update', '--non-interactive', 10000], cwd=/mock-checkout
+Running: webkit-patch --status-host=example.com apply-attachment --no-update --non-interactive 10000
 MOCK: update_status: style-queue Applied patch
-MOCK run_and_throw_if_fail: ['echo', '--status-host=example.com', 'apply-watchlist-local', 50000], cwd=/mock-checkout
+Running: webkit-patch --status-host=example.com apply-watchlist-local 50000
+Exception for ['echo', '--status-host=example.com', 'apply-watchlist-local', 50000]
+
+MOCK command output
 MOCK: update_status: style-queue Unabled to apply watchlist
-MOCK run_and_throw_if_fail: ['echo', '--status-host=example.com', 'check-style-local', '--non-interactive', '--quiet'], cwd=/mock-checkout
+Running: webkit-patch --status-host=example.com check-style-local --non-interactive --quiet
 MOCK: update_status: style-queue Style checked
 MOCK: update_status: style-queue Pass
 MOCK: release_work_item: style-queue 10000
@@ -487,5 +503,5 @@
             "handle_unexpected_error": "Mock error message\n",
             "handle_script_error": "MOCK output\n",
         }
-        tool = MockTool(log_executive=True, executive_throws_when_run=set(['apply-watchlist-local']))
+        tool = MockTool(executive_throws_when_run=set(['apply-watchlist-local']))
         self.assert_queue_outputs(StyleQueue(), expected_logs=expected_logs, tool=tool)
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to