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
- trunk/Tools/ChangeLog
- trunk/Tools/Scripts/webkitpy/common/system/executive.py
- trunk/Tools/Scripts/webkitpy/common/system/executive_mock.py
- trunk/Tools/Scripts/webkitpy/common/system/executive_unittest.py
- trunk/Tools/Scripts/webkitpy/tool/commands/earlywarningsystem_unittest.py
- trunk/Tools/Scripts/webkitpy/tool/commands/queues.py
- trunk/Tools/Scripts/webkitpy/tool/commands/queues_unittest.py
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