WebKit Bugzilla
New
Browse
Search+
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
[patch]
Patch
bug-162458-20161215123637.patch (text/plain), 27.68 KB, created by
Srinivasan Vijayaraghavan
on 2016-12-15 12:37:30 PST
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Srinivasan Vijayaraghavan
Created:
2016-12-15 12:37:30 PST
Size:
27.68 KB
patch
obsolete
>Subversion Revision: 206377 >diff --git a/Tools/Scripts/webkitpy/common/config/ews.json b/Tools/Scripts/webkitpy/common/config/ews.json >index 35d4985ab0f93d127b3721e4601cd6d89dfccf3c..e5340fe5c3c21ae81ad1ef7e03f7fb81f3839cff 100644 >--- a/Tools/Scripts/webkitpy/common/config/ews.json >+++ b/Tools/Scripts/webkitpy/common/config/ews.json >@@ -50,5 +50,11 @@ > "port": "mac", > "name": "mac-32bit-ews", > "architecture": "i386" >+ }, >+ "JSC EWS": { >+ "port": "mac", >+ "name": "jsc-ews", >+ "group": "jsc", >+ "runTests": true > } > } >diff --git a/Tools/Scripts/webkitpy/common/config/ports.py b/Tools/Scripts/webkitpy/common/config/ports.py >index a0d50dcb6ea0b5fde0b3c17ef159ceafee1a2e98..1c1206576f57228d4e7560c61cee23c56533ac54 100644 >--- a/Tools/Scripts/webkitpy/common/config/ports.py >+++ b/Tools/Scripts/webkitpy/common/config/ports.py >@@ -103,8 +103,21 @@ class DeprecatedPort(object): > command.append("--release") > return command > >- def run_javascriptcore_tests_command(self): >- return self.script_shell_command("run-javascriptcore-tests") >+ def build_jsc_command(self, build_style=None): >+ command = self.script_shell_command("build-jsc") >+ if build_style == "debug": >+ command.append("--debug") >+ return command >+ >+ def run_javascriptcore_tests_command(self, build_style=None): >+ command = self.script_shell_command("run-javascriptcore-tests") >+ command.append("--no-fail-fast") >+ command.append("--json-output=jsc_test_results.json") >+ command.append("--no-mozilla-tests") >+ command.append("--no-build") >+ if (build_style == "debug"): >+ command.append("--debug") >+ return command > > def run_webkit_tests_command(self, build_style=None): > command = self.script_shell_command("run-webkit-tests") >@@ -150,7 +163,10 @@ class IOSSimulatorWK2Port(DeprecatedPort): > class MacPort(DeprecatedPort): > port_flag_name = "mac" > >- def run_webkit_tests_command(self, build_style=None): >+ def run_webkit_tests_command(self, build_style=None, test_suite=None): >+ if (test_suite == "jsc"): >+ return super(MacPort, self).run_javascriptcore_tests_command(build_style) >+ > command = super(MacPort, self).run_webkit_tests_command(build_style) > command.append("--dump-render-tree") > return command >diff --git a/Tools/Scripts/webkitpy/tool/bot/patchanalysistask.py b/Tools/Scripts/webkitpy/tool/bot/patchanalysistask.py >index 752316416c5f9d0a3e59ef6d05e31785f9174629..e86859cc2e3812c4cac03f9cd636c0e932411010 100644 >--- a/Tools/Scripts/webkitpy/tool/bot/patchanalysistask.py >+++ b/Tools/Scripts/webkitpy/tool/bot/patchanalysistask.py >@@ -122,28 +122,43 @@ class PatchAnalysisTask(object): > "Applied patch", > "Patch does not apply") > >+ > def _build(self): >- return self._run_command([ >+ args = [ > "build", > "--no-clean", > "--no-update", > "--build-style=%s" % self._delegate.build_style(), >- ], >- "Built patch", >- "Patch does not build") >+ ] >+ >+ try: >+ args.append("--group=%s" % self._delegate.group()) >+ finally: >+ return self._run_command( >+ args, >+ "Built patch", >+ "Patch does not build") >+ > > def _build_without_patch(self): >- return self._run_command([ >+ args = [ > "build", > "--force-clean", > "--no-update", > "--build-style=%s" % self._delegate.build_style(), >- ], >- "Able to build without patch", >- "Unable to build without patch") >+ ] >+ >+ try: >+ args.append("--group=%s" % self._delegate.group()) >+ finally: >+ return self._run_command( >+ args, >+ "Able to build without patch", >+ "Unable to build without patch") >+ > > def _test(self): >- return self._run_command([ >+ args = [ > "build-and-test", > "--no-clean", > "--no-update", >@@ -151,12 +166,19 @@ class PatchAnalysisTask(object): > "--test", > "--non-interactive", > "--build-style=%s" % self._delegate.build_style(), >- ], >- "Passed tests", >- "Patch does not pass tests") >+ ] >+ >+ try: >+ args.append("--group=%s" % self._delegate.group()) >+ finally: >+ return self._run_command( >+ args, >+ "Passed tests", >+ "Patch does not pass tests") >+ > > def _build_and_test_without_patch(self): >- return self._run_command([ >+ args = [ > "build-and-test", > "--force-clean", > "--no-update", >@@ -164,9 +186,16 @@ class PatchAnalysisTask(object): > "--test", > "--non-interactive", > "--build-style=%s" % self._delegate.build_style(), >- ], >- "Able to pass tests without patch", >- "Unable to pass tests without patch (tree is red?)") >+ ] >+ >+ try: >+ args.append("--group=%s" % self._delegate.group()) >+ finally: >+ return self._run_command( >+ args, >+ "Able to pass tests without patch", >+ "Unable to pass tests without patch (tree is red?)") >+ > > def _land(self): > # Unclear if this should pass --quiet or not. If --parent-command always does the reporting, then it should. >@@ -210,69 +239,88 @@ class PatchAnalysisTask(object): > if self._test(): > return True > >- # Note: archive_last_test_results deletes the results directory, making these calls order-sensitve. >- # We could remove this dependency by building the test_results from the archive. >- first_results = self._delegate.test_results() >- first_results_archive = self._delegate.archive_last_test_results(self._patch) >- first_script_error = self._script_error >- first_failure_status_id = self.failure_status_id >- >- if self._test() and not first_results.did_exceed_test_failure_limit(): >- # Only report flaky tests if we were successful at parsing results.json and archiving results. >- if first_results and first_results_archive: >- self._report_flaky_tests(first_results.failing_test_results(), first_results_archive) >- return True >+ if hasattr(self._delegate, 'group') and self._delegate.group() == "jsc": >+ first_results = self._delegate.test_results() >+ first_script_error = self._script_error >+ if first_results.all_api_tests_passed() is True and len(first_results.stress_test_failures()) == 0: >+ return True >+ else: >+ # TODO svijayaraghavan@apple.com: Comment this, and uncomment the below lines so it actually builds without patch >+ #clean_tree_results = first_results >+ #clean_tree_results['allApiTestsPassed'] = False > >- second_results = self._delegate.test_results() >- second_results_archive = self._delegate.archive_last_test_results(self._patch) >- second_script_error = self._script_error >- second_failure_status_id = self.failure_status_id >+ self._build_and_test_without_patch() >+ clean_tree_results = self._delegate.test_results() > >- if second_results.did_exceed_test_failure_limit() and first_results.did_exceed_test_failure_limit(): >- self._build_and_test_without_patch() >- clean_tree_results = self._delegate.test_results() >+ if clean_tree_results == first_results: >+ return True > >- if (len(first_results.failing_tests()) - len(clean_tree_results.failing_tests())) <= 5: >- return False >+ return self.report_failure(None, first_results, first_script_error) > >- self.failure_status_id = first_failure_status_id >+ else: >+ # Note: archive_last_test_results deletes the results directory, making these calls order-sensitve. >+ # We could remove this dependency by building the test_results from the archive. >+ first_results = self._delegate.test_results() >+ first_results_archive = self._delegate.archive_last_test_results(self._patch) >+ first_script_error = self._script_error >+ first_failure_status_id = self.failure_status_id > >- return self.report_failure(first_results_archive, first_results, first_script_error) >+ if self._test() and not first_results.did_exceed_test_failure_limit(): >+ # Only report flaky tests if we were successful at parsing results.json and archiving results. >+ if first_results and first_results_archive: >+ self._report_flaky_tests(first_results.failing_test_results(), first_results_archive) >+ return True > >- if second_results.did_exceed_test_failure_limit(): >- self._should_defer_patch_or_throw(first_results.failing_test_results(), first_results_archive, first_script_error, first_failure_status_id) >- return False >+ second_results = self._delegate.test_results() >+ second_results_archive = self._delegate.archive_last_test_results(self._patch) >+ second_script_error = self._script_error >+ second_failure_status_id = self.failure_status_id > >- if first_results.did_exceed_test_failure_limit(): >- self._should_defer_patch_or_throw(second_results.failing_test_results(), second_results_archive, second_script_error, second_failure_status_id) >- return False >+ if second_results.did_exceed_test_failure_limit() and first_results.did_exceed_test_failure_limit(): >+ self._build_and_test_without_patch() >+ clean_tree_results = self._delegate.test_results() > >- if self._results_failed_different_tests(first_results, second_results): >- first_failing_results_set = frozenset(first_results.failing_test_results()) >- second_failing_results_set = frozenset(second_results.failing_test_results()) >+ if (len(first_results.failing_tests()) - len(clean_tree_results.failing_tests())) <= 5: >+ return False > >- tests_that_only_failed_first = first_failing_results_set.difference(second_failing_results_set) >- self._report_flaky_tests(tests_that_only_failed_first, first_results_archive) >+ self.failure_status_id = first_failure_status_id > >- tests_that_only_failed_second = second_failing_results_set.difference(first_failing_results_set) >- self._report_flaky_tests(tests_that_only_failed_second, second_results_archive) >+ return self.report_failure(first_results_archive, first_results, first_script_error) > >- tests_that_consistently_failed = first_failing_results_set.intersection(second_failing_results_set) >- if tests_that_consistently_failed: >- if self._should_defer_patch_or_throw(tests_that_consistently_failed, first_results_archive, first_script_error, first_failure_status_id): >- return False # Defer patch >+ if second_results.did_exceed_test_failure_limit(): >+ self._should_defer_patch_or_throw(first_results.failing_test_results(), first_results_archive, first_script_error, first_failure_status_id) >+ return False >+ >+ if first_results.did_exceed_test_failure_limit(): >+ self._should_defer_patch_or_throw(second_results.failing_test_results(), second_results_archive, second_script_error, second_failure_status_id) >+ return False >+ >+ if self._results_failed_different_tests(first_results, second_results): >+ first_failing_results_set = frozenset(first_results.failing_test_results()) >+ second_failing_results_set = frozenset(second_results.failing_test_results()) > >- # At this point we know that at least one test flaked, but no consistent failures >- # were introduced. This is a bit of a grey-zone. >- return False # Defer patch >+ tests_that_only_failed_first = first_failing_results_set.difference(second_failing_results_set) >+ self._report_flaky_tests(tests_that_only_failed_first, first_results_archive) > >- if self._should_defer_patch_or_throw(first_results.failing_test_results(), first_results_archive, first_script_error, first_failure_status_id): >- return False # Defer patch >+ tests_that_only_failed_second = second_failing_results_set.difference(first_failing_results_set) >+ self._report_flaky_tests(tests_that_only_failed_second, second_results_archive) > >- # At this point, we know that the first and second runs had the exact same failures, >- # and that those failures are all present on the clean tree, so we can say with certainty >- # that the patch is good. >- return True >+ tests_that_consistently_failed = first_failing_results_set.intersection(second_failing_results_set) >+ if tests_that_consistently_failed: >+ if self._should_defer_patch_or_throw(tests_that_consistently_failed, first_results_archive, first_script_error, first_failure_status_id): >+ return False # Defer patch >+ >+ # At this point we know that at least one test flaked, but no consistent failures >+ # were introduced. This is a bit of a grey-zone. >+ return False # Defer patch >+ >+ if self._should_defer_patch_or_throw(first_results.failing_test_results(), first_results_archive, first_script_error, first_failure_status_id): >+ return False # Defer patch >+ >+ # At this point, we know that the first and second runs had the exact same failures, >+ # and that those failures are all present on the clean tree, so we can say with certainty >+ # that the patch is good. >+ return True > > def results_archive_from_patch_test_run(self, patch): > assert(self._patch.id() == patch.id()) # PatchAnalysisTask is not currently re-useable. >diff --git a/Tools/Scripts/webkitpy/tool/commands/earlywarningsystem.py b/Tools/Scripts/webkitpy/tool/commands/earlywarningsystem.py >index 9bc041860ce67454454e4b251438a9dbe5264513..01f47f8486c73bc62715e4c9d5bf7458b17bcdcd 100644 >--- a/Tools/Scripts/webkitpy/tool/commands/earlywarningsystem.py >+++ b/Tools/Scripts/webkitpy/tool/commands/earlywarningsystem.py >@@ -28,6 +28,7 @@ > > import json > import logging >+import os > from optparse import make_option > > from webkitpy.common.config.committers import CommitterList >@@ -36,6 +37,7 @@ 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.layouttestresultsreader import LayoutTestResultsReader >+from webkitpy.tool.bot.jsctestresultsreader import JSCTestResultsReader > from webkitpy.tool.bot.patchanalysistask import UnableToApplyPatch, PatchIsNotValid > from webkitpy.tool.bot.queueengine import QueueEngine > from webkitpy.tool.commands.queues import AbstractReviewQueue >@@ -53,7 +55,12 @@ class AbstractEarlyWarningSystem(AbstractReviewQueue, EarlyWarningSystemTaskDele > > def begin_work_queue(self): > AbstractReviewQueue.begin_work_queue(self) >- self._layout_test_results_reader = LayoutTestResultsReader(self._tool, self._port.results_directory(), self._log_directory()) >+ >+ if self.group() == "jsc": >+ dir = os.path.dirname(os.path.dirname(os.path.dirname(self._port.results_directory()))) >+ self._test_results_reader = JSCTestResultsReader(self._tool, dir) >+ else: >+ self._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) >@@ -117,14 +124,20 @@ class AbstractEarlyWarningSystem(AbstractReviewQueue, EarlyWarningSystemTaskDele > return self._update_status(message, patch=patch, results_file=failure_log) > > def test_results(self): >- return self._layout_test_results_reader.results() >+ return self._test_results_reader.results() > > def archive_last_test_results(self, patch): >- return self._layout_test_results_reader.archive(patch) >+ return self._test_results_reader.archive(patch) > > def build_style(self): > return self._build_style > >+ def group(self): >+ if hasattr(self, "_group"): >+ return self._group >+ else: >+ return None >+ > def refetch_patch(self, patch): > return self._tool.bugs.fetch_attachment(patch.id()) > >@@ -156,5 +169,6 @@ class AbstractEarlyWarningSystem(AbstractReviewQueue, EarlyWarningSystemTaskDele > '_build_style': config.get('style', "release"), > 'watchers': config.get('watchers', []), > 'run_tests': config.get('runTests', cls.run_tests), >+ '_group': config.get('group', None), > })) > return classes >diff --git a/Tools/Scripts/webkitpy/tool/commands/earlywarningsystem_unittest.py b/Tools/Scripts/webkitpy/tool/commands/earlywarningsystem_unittest.py >index 08887813ce2e93a8ec9da37636ecbde9eff3c9e7..f5bb536427ebe9f3ace4a04482bdbada27b59dde 100644 >--- a/Tools/Scripts/webkitpy/tool/commands/earlywarningsystem_unittest.py >+++ b/Tools/Scripts/webkitpy/tool/commands/earlywarningsystem_unittest.py >@@ -68,9 +68,10 @@ class EarlyWarningSystemTest(QueuesTest): > "port": ews.port_name, > "architecture": " --architecture=%s" % ews.architecture if ews.architecture else "", > "build_style": ews.build_style(), >+ "group": "jsc" if ews.name == "jsc-ews" else "None", > } > if ews.run_tests: >- run_tests_line = "Running: webkit-patch --status-host=example.com build-and-test --no-clean --no-update --test --non-interactive --build-style=%(build_style)s --port=%(port)s%(architecture)s\n" % string_replacements >+ run_tests_line = "Running: webkit-patch --status-host=example.com build-and-test --no-clean --no-update --test --non-interactive --build-style=%(build_style)s --group=%(group)s --port=%(port)s%(architecture)s\n" % string_replacements > else: > run_tests_line = "" > string_replacements['run_tests_line'] = run_tests_line >@@ -81,7 +82,7 @@ class EarlyWarningSystemTest(QueuesTest): > Running: webkit-patch --status-host=example.com clean --port=%(port)s%(architecture)s > Running: webkit-patch --status-host=example.com update --port=%(port)s%(architecture)s > Running: webkit-patch --status-host=example.com apply-attachment --no-update --non-interactive 10000 --port=%(port)s%(architecture)s >-Running: webkit-patch --status-host=example.com build --no-clean --no-update --build-style=%(build_style)s --port=%(port)s%(architecture)s >+Running: webkit-patch --status-host=example.com build --no-clean --no-update --build-style=%(build_style)s --group=%(group)s --port=%(port)s%(architecture)s > %(run_tests_line)sMOCK: update_status: %(name)s Pass > MOCK: release_work_item: %(name)s 10000 > """ % string_replacements, >diff --git a/Tools/Scripts/webkitpy/tool/commands/queues_unittest.py b/Tools/Scripts/webkitpy/tool/commands/queues_unittest.py >index bb76350b28804454ef410ad85c78ad697bbef6c5..1c23e6a8dc5f06c6635e25921bb79113ccb83406 100644 >--- a/Tools/Scripts/webkitpy/tool/commands/queues_unittest.py >+++ b/Tools/Scripts/webkitpy/tool/commands/queues_unittest.py >@@ -321,6 +321,7 @@ MOCK: release_work_item: commit-queue 10000 > self.assert_queue_outputs(queue, expected_logs=expected_logs) > > def test_rollout(self): >+ self.maxDiff = None > 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', '') >diff --git a/Tools/Scripts/webkitpy/tool/steps/build.py b/Tools/Scripts/webkitpy/tool/steps/build.py >index f74ffce70941c61e596792e4c60dcd7f8b65e9ec..64f703968707346ca32398c71d598a688d9a323b 100644 >--- a/Tools/Scripts/webkitpy/tool/steps/build.py >+++ b/Tools/Scripts/webkitpy/tool/steps/build.py >@@ -41,28 +41,38 @@ class Build(AbstractStep): > Options.build, > Options.quiet, > Options.build_style, >+ Options.group, > ] > >- def build(self, build_style): >+ def build(self, build_style, group): > environment = self._tool.copy_current_environment() > environment.disable_gcc_smartquotes() > environment.disable_jhbuild_VT100_output() > env = environment.to_dictionary() > >- build_webkit_command = self._tool.deprecated_port().build_webkit_command(build_style=build_style) >+ if group == "jsc": >+ build_command = self._tool.deprecated_port().build_jsc_command(build_style=build_style) >+ else: >+ build_command = self._tool.deprecated_port().build_webkit_command(build_style=build_style) > > if self._options.architecture: >- build_webkit_command += ['ARCHS=%s' % self._options.architecture] >+ build_command += ['ARCHS=%s' % self._options.architecture] > >- self._tool.executive.run_and_throw_if_fail(build_webkit_command, self._options.quiet, >+ self._tool.executive.run_and_throw_if_fail(build_command, self._options.quiet, > cwd=self._tool.scm().checkout_root, env=env) > > def run(self, state): > if not self._options.build: > return > _log.info("Building WebKit") >+ >+ if hasattr(self._options, 'group') and self._options.group == "jsc": >+ group = self._options.group >+ else: >+ group = None >+ > if self._options.build_style == "both": >- self.build("debug") >- self.build("release") >+ self.build("debug", group) >+ self.build("release", group) > else: >- self.build(self._options.build_style) >+ self.build(self._options.build_style, group) >diff --git a/Tools/Scripts/webkitpy/tool/steps/options.py b/Tools/Scripts/webkitpy/tool/steps/options.py >index 3ef47d008a59e050d4ca0c4877ddd1a60731a409..f8719e11be7a576a943a27137556ba02fcb6a91a 100644 >--- a/Tools/Scripts/webkitpy/tool/steps/options.py >+++ b/Tools/Scripts/webkitpy/tool/steps/options.py >@@ -46,6 +46,7 @@ class Options(object): > email = make_option("--email", action="store", type="string", dest="email", help="Email address to use in ChangeLogs.") > force_clean = make_option("--force-clean", action="store_true", dest="force_clean", default=False, help="Clean working directory before applying patches (removes local changes and commits)") > git_commit = make_option("-g", "--git-commit", action="store", dest="git_commit", help="Operate on a local commit. If a range, the commits are squashed into one. <ref>.... includes the working copy changes. UPSTREAM can be used for the upstream/tracking branch.") >+ group = make_option("--group", action="store", dest="group", default=None, help="") > local_commit = make_option("--local-commit", action="store_true", dest="local_commit", default=False, help="Make a local commit for each applied patch") > non_interactive = make_option("--non-interactive", action="store_true", dest="non_interactive", default=False, help="Never prompt the user, fail as fast as possible.") > obsolete_patches = make_option("--no-obsolete", action="store_false", dest="obsolete_patches", default=True, help="Do not obsolete old patches before posting this one.") >diff --git a/Tools/Scripts/webkitpy/tool/steps/runtests.py b/Tools/Scripts/webkitpy/tool/steps/runtests.py >index 75d72bc9ad2f4e36d45fdac90f1819481cf0288b..ed90dfd438c31cfadcefd832f15ded992a97ddbc 100644 >--- a/Tools/Scripts/webkitpy/tool/steps/runtests.py >+++ b/Tools/Scripts/webkitpy/tool/steps/runtests.py >@@ -1,4 +1,5 @@ > # Copyright (C) 2010 Google Inc. All rights reserved. >+# Copyright (C) 2016 Apple Inc. All rights reserved. > # > # Redistribution and use in source and binary forms, with or without > # modification, are permitted provided that the following conditions are >@@ -53,6 +54,7 @@ class RunTests(AbstractStep): > Options.iterate_on_new_tests, > Options.non_interactive, > Options.quiet, >+ Options.group, > ] > > def run(self, state): >@@ -63,6 +65,10 @@ class RunTests(AbstractStep): > if not self._options.test: > return > >+ if hasattr(self._options, "group") and self._options.group == "jsc": >+ self._run_javascriptcore_tests() >+ return >+ > python_unittests_command = self._tool.deprecated_port().run_python_unittests_command() > if python_unittests_command: > _log.info("Running Python unit tests") >@@ -143,3 +149,7 @@ class RunTests(AbstractStep): > args.append("--iterations=%d" % iterate_on_new_tests) > > self._tool.executive.run_and_throw_if_fail(args, cwd=self._tool.scm().checkout_root) >+ >+ def _run_javascriptcore_tests(self): >+ args = self._tool.deprecated_port().run_javascriptcore_tests_command(self._options.build_style) >+ self._tool.executive.run_and_throw_if_fail(args, cwd=self._tool.scm().checkout_root) >diff --git a/Tools/Scripts/webkitpy/tool/steps/steps_unittest.py b/Tools/Scripts/webkitpy/tool/steps/steps_unittest.py >index 7d94a13b3463d98a44f949f814cc7121c068ab5d..f0df878c3c988df16929432f90270c2152e5fe3c 100644 >--- a/Tools/Scripts/webkitpy/tool/steps/steps_unittest.py >+++ b/Tools/Scripts/webkitpy/tool/steps/steps_unittest.py >@@ -98,6 +98,7 @@ class StepsTest(unittest.TestCase): > self._assert_step_output_with_bug(steps.EnsureBugIsOpenAndAssigned, 50002, expected_logs) > > def test_runtests_args(self): >+ self.maxDiff = None > mock_options = self._step_options() > mock_options.non_interactive = False > mock_options.build_style = "release" >@@ -111,7 +112,7 @@ MOCK run_and_throw_if_fail: ['Tools/Scripts/test-webkitpy'], cwd=/mock-checkout > Running Perl unit tests > MOCK run_and_throw_if_fail: ['Tools/Scripts/test-webkitperl'], cwd=/mock-checkout > Running JavaScriptCore tests >-MOCK run_and_throw_if_fail: ['Tools/Scripts/run-javascriptcore-tests'], cwd=/mock-checkout >+MOCK run_and_throw_if_fail: ['Tools/Scripts/run-javascriptcore-tests', '--no-fail-fast', '--json-output=WebKitBuild/Results/jsc_test_results.json'], cwd=/mock-checkout > Running bindings generation tests > MOCK run_and_throw_if_fail: ['Tools/Scripts/run-bindings-tests'], cwd=/mock-checkout > Running run-webkit-tests >@@ -120,6 +121,7 @@ MOCK run_and_throw_if_fail: ['Tools/Scripts/run-webkit-tests', '--release', '--q > OutputCapture().assert_outputs(self, step.run, [{}], expected_logs=expected_logs) > > def test_runtests_debug_args(self): >+ self.maxDiff = None > mock_options = self._step_options() > mock_options.non_interactive = False > mock_options.build_style = "debug" >@@ -133,7 +135,7 @@ MOCK run_and_throw_if_fail: ['Tools/Scripts/test-webkitpy'], cwd=/mock-checkout > Running Perl unit tests > MOCK run_and_throw_if_fail: ['Tools/Scripts/test-webkitperl'], cwd=/mock-checkout > Running JavaScriptCore tests >-MOCK run_and_throw_if_fail: ['Tools/Scripts/run-javascriptcore-tests'], cwd=/mock-checkout >+MOCK run_and_throw_if_fail: ['Tools/Scripts/run-javascriptcore-tests', '--no-fail-fast', '--json-output=WebKitBuild/Results/jsc_test_results.json'], cwd=/mock-checkout > Running bindings generation tests > MOCK run_and_throw_if_fail: ['Tools/Scripts/run-bindings-tests'], cwd=/mock-checkout > Running run-webkit-tests
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 162458
:
297210
|
297239
|
297551
|
298160
|
298714
|
298739
|
298802
|
298807
|
300176
|
300294
|
300461
|
300474
|
300784
|
300838
|
301020
|
301069
|
301117
|
301137
|
301437
|
301572
|
301667
|
301848
|
301849
|
301972
|
302000