Changeset 92493 in webkit
- Timestamp:
- Aug 5, 2011 11:50:37 AM (13 years ago)
- Location:
- trunk/Tools
- Files:
-
- 10 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Tools/ChangeLog
r92492 r92493 1 2011-08-05 Adam Barth <abarth@webkit.org> 2 3 Rebuild rebaseline-chromium-webkit-tests on top of modern infrastructure 4 https://bugs.webkit.org/show_bug.cgi?id=65759 5 6 Reviewed by Dimitri Glazkov. 7 8 rebaseline-chromium-webkit-tests doesn't really fit into webkitpy's 9 architecture, is poorly tested, and has a bunch of quirks. This patch 10 rebuilds the core functionality of rebaseline-chromium-webkit-tests on 11 top of more modern infrastructure. In the process, we get more code 12 re-use and better testing. 13 14 Once we're satisfied with this new implementation, we can delete the 15 old implementation. 16 17 * Scripts/webkitpy/common/checkout/baselineoptimizer.py: 18 * Scripts/webkitpy/common/net/web.py: 19 * Scripts/webkitpy/layout_tests/models/test_expectations.py: 20 * Scripts/webkitpy/layout_tests/port/builders.py: 21 * Scripts/webkitpy/layout_tests/port/chromium.py: 22 * Scripts/webkitpy/layout_tests/port/factory.py: 23 * Scripts/webkitpy/layout_tests/port/webkit.py: 24 * Scripts/webkitpy/tool/commands/rebaseline.py: 25 * Scripts/webkitpy/tool/commands/rebaseline_unittest.py: 26 1 27 2011-08-05 Anders Carlsson <andersca@apple.com> 2 28 -
trunk/Tools/Scripts/webkitpy/common/checkout/baselineoptimizer.py
r92153 r92493 146 146 file_name = self._filesystem.join(self._scm.checkout_root, directory, baseline_name) 147 147 self._scm.delete(file_name) 148 # FIXME: Check for empty directories and remove them as well. 148 149 149 150 def optimize(self, baseline_name): -
trunk/Tools/Scripts/webkitpy/common/net/web.py
r90770 r92493 33 33 34 34 class Web(object): 35 def get_binary(self, url ):36 return NetworkTransaction( ).run(lambda: urllib2.urlopen(url).read())35 def get_binary(self, url, convert_404_to_None=False): 36 return NetworkTransaction(convert_404_to_None=convert_404_to_None).run(lambda: urllib2.urlopen(url).read()) -
trunk/Tools/Scripts/webkitpy/layout_tests/models/test_expectations.py
r92317 r92493 777 777 778 778 def __init__(self, port, tests, expectations, 779 test_config, is_lint_mode , overrides=None):779 test_config, is_lint_mode=False, overrides=None): 780 780 """Loads and parses the test expectations given in the string. 781 781 Args: -
trunk/Tools/Scripts/webkitpy/layout_tests/port/builders.py
r90770 r92493 30 30 import re 31 31 32 from webkitpy.common.memoized import memoized 33 34 35 _exact_matches = { 36 # These builders are on build.chromium.org. 37 "Webkit Win": "chromium-win-xp", 38 "Webkit Vista": "chromium-win-vista", 39 "Webkit Win7": "chromium-win-win7", 40 "Webkit Win (dbg)(1)": "chromium-win-xp", 41 "Webkit Win (dbg)(2)": "chromium-win-xp", 42 "Webkit Linux": "chromium-linux-x86_64", 43 "Webkit Linux 32": "chromium-linux-x86", 44 "Webkit Linux (dbg)(1)": "chromium-linux-x86_64", 45 "Webkit Linux (dbg)(2)": "chromium-linux-x86_64", 46 "Webkit Mac10.5": "chromium-mac-leopard", 47 "Webkit Mac10.5 (dbg)(1)": "chromium-mac-leopard", 48 "Webkit Mac10.5 (dbg)(2)": "chromium-mac-leopard", 49 "Webkit Mac10.6": "chromium-mac-snowleopard", 50 "Webkit Mac10.6 (dbg)": "chromium-mac-snowleopard", 51 "Webkit Mac10.6 - GPU": "chromium-gpu-mac-snowleopard", 52 "Webkit Win - GPU": "chromium-gpu-win-xp", 53 "Webkit Win7 - GPU": "chromium-gpu-win-win7", 54 # FIXME: For some reason, these port names don't work correctly. 55 # "Webkit Linux - GPU": "chromium-gpu-linux-x86_64", 56 # "Webkit Linux 32 - GPU": "chromium-gpu-linux-x86", 57 "Webkit Mac10.5 - GPU": "chromium-gpu-mac-leopard", 58 "Webkit Mac10.6 - GPU": "chromium-gpu-mac-snowleopard", 59 60 # These builders are on build.webkit.org. 61 "GTK Linux 32-bit Debug": "gtk", 62 "Leopard Intel Debug (Tests)": "mac-leopard", 63 "SnowLeopard Intel Release (Tests)": "mac-snowleopard", 64 "SnowLeopard Intel Release (WebKit2 Tests)": "mac-wk2", 65 "Qt Linux Release": "qt-linux", 66 "Windows XP Debug (Tests)": "win-xp", 67 "Windows 7 Release (WebKit2 Tests)": "win-wk2", 68 } 69 70 71 _fuzzy_matches = { 72 # These builders are on build.webkit.org. 73 r"SnowLeopard": "mac-snowleopard", 74 r"Leopard": "mac-leopard", 75 r"Windows": "win", 76 r"GTK": "gtk", 77 r"Qt": "qt", 78 r"Chromium Mac": "chromium-mac", 79 r"Chromium Linux": "chromium-linux", 80 r"Chromium Win": "chromium-win", 81 } 82 83 84 _ports_without_builders = [ 85 # FIXME: Including chromium-gpu-linux below is a workaroudn for 86 # chromium-gpu-linux-x86_64 and chromium-gpu-linux-x86 not working properly. 87 "chromium-gpu-linux", 88 "google-chrome-linux32", 89 "google-chrome-linux64", 90 "qt-mac", 91 "qt-win", 92 "qt-wk2", 93 ] 94 32 95 33 96 def builder_path_from_name(builder_name): … … 35 98 36 99 37 # Compiled manually from http://build.chromium.org/p/chromium/json/builders/help?as_text=1 38 # Values of None mean there are no bots running at build.webkit.org or 39 # build.chromium.org for that port. 40 # FIXME Make the values in this map into lists. 41 CHROMIUM_PORT_TO_BUILDER_NAME = { 42 'chromium-gpu-linux': builder_path_from_name('Webkit Linux - GPU'), 43 44 'chromium-gpu-mac-snowleopard': builder_path_from_name('Webkit Mac10.6 - GPU'), 45 'chromium-gpu-mac-leopard': builder_path_from_name('Webkit Mac10.5 - GPU'), 46 47 'chromium-gpu-win-xp': builder_path_from_name('Webkit Win - GPU'), 48 'chromium-gpu-win-vista': builder_path_from_name('Webkit Vista - GPU'), 49 'chromium-gpu-win-win7': builder_path_from_name('Webkit Win7 - GPU'), 50 51 'chromium-linux-x86_64': builder_path_from_name('Linux Tests x64'), 52 'chromium-linux-x86': builder_path_from_name('Linux Tests (dbg)(1)'), 53 54 'chromium-mac-leopard': builder_path_from_name('Mac10.5 Tests (1)'), 55 'chromium-mac-snowleopard': builder_path_from_name('Mac 10.6 Tests (dbg)(1)'), 56 57 'chromium-win-xp': builder_path_from_name('XP Tests (dbg)(5)'), 58 'chromium-win-vista': builder_path_from_name('Vista Tests (dbg)(1)'), 59 'chromium-win-win7': None, 60 61 'google-chrome-linux32': None, 62 'google-chrome-linux64': None, 63 } 64 65 # Compiled manually from http://build.webkit.org/builders 66 WEBKIT_PORT_TO_BUILDER_NAME = { 67 'gtk': 'GTK Linux 32-bit Debug', 68 69 'mac-leopard': 'Leopard Intel Debug (Tests)', 70 'mac-snowleopard': 'SnowLeopard Intel Release (Tests)', 71 'mac-wk2': 'SnowLeopard Intel Release (WebKit2 Tests)', 72 73 'qt-linux': 'Qt Linux Release', 74 'qt-mac': None, 75 'qt-win': None, 76 'qt-wk2': None, 77 78 'win-xp': 'Windows XP Debug (Tests)', 79 'win': None, 80 'win-wk2': 'Windows 7 Release (WebKit2 Tests)', 81 } 82 83 PORT_TO_BUILDER_NAME = {} 84 PORT_TO_BUILDER_NAME.update(CHROMIUM_PORT_TO_BUILDER_NAME) 85 PORT_TO_BUILDER_NAME.update(WEBKIT_PORT_TO_BUILDER_NAME) 100 @memoized 101 def all_port_names(): 102 return sorted(set(_exact_matches.values() + _ports_without_builders)) 86 103 87 104 88 def builder_name_for_platform(platform): 89 return PORT_TO_BUILDER_NAME.get(platform) 105 def port_name_for_builder_name(builder_name): 106 if builder_name in _exact_matches: 107 return _exact_matches[builder_name] 108 109 for regexp, port_name in _fuzzy_matches.items(): 110 if re.match(regexp, builder_name): 111 return port_name 112 113 114 def builder_name_for_port_name(target_port_name): 115 for builder_name, port_name in _exact_matches.items(): 116 if port_name == target_port_name: 117 return builder_name 118 return None 119 120 121 def builder_path_for_port_name(port_name): 122 builder_path_from_name(builder_name_for_port_name(port_name)) -
trunk/Tools/Scripts/webkitpy/layout_tests/port/chromium.py
r92026 r92493 227 227 228 228 def _results_for_platform(self, platform): 229 builder_name = builders.builder_ name_for_platform(platform)229 builder_name = builders.builder_path_for_port_name(platform) 230 230 if not builder_name: 231 231 raise Exception("Can't find builder for %s" % platform) -
trunk/Tools/Scripts/webkitpy/layout_tests/port/factory.py
r90826 r92493 43 43 or "mock-mac", and it does not include any directories that are not .""" 44 44 # FIXME: There's probably a better way to generate this list ... 45 return builders. PORT_TO_BUILDER_NAME.keys()45 return builders.all_port_names() 46 46 47 47 -
trunk/Tools/Scripts/webkitpy/layout_tests/port/webkit.py
r91315 r92493 82 82 83 83 def _results_for_platform(self, platform): 84 builder_name = builders.builder_ name_for_platform(platform)84 builder_name = builders.builder_path_for_port_name(platform) 85 85 if not builder_name: 86 86 raise Exception("Can't find builder for %s" % platform) -
trunk/Tools/Scripts/webkitpy/tool/commands/rebaseline.py
r92294 r92493 36 36 from webkitpy.common.net.buildbot import BuildBot 37 37 from webkitpy.common.net.layouttestresults import LayoutTestResults 38 from webkitpy.common.system.executive import ScriptError 38 39 from webkitpy.common.system.user import User 39 40 from webkitpy.layout_tests.layout_package.test_result_writer import TestResultWriter 40 41 from webkitpy.layout_tests.models import test_failures 41 from webkitpy.layout_tests.port import factory 42 from webkitpy.layout_tests.models.test_expectations import TestExpectations 43 from webkitpy.layout_tests.port import factory, builders 42 44 from webkitpy.tool.grammar import pluralize 43 45 from webkitpy.tool.multicommandtool import AbstractDeclarativeCommand 46 47 48 _baseline_suffix_list = ['png', 'txt'] 49 50 51 def _port_for_builder(builder_name): 52 port_name = builders.port_name_for_builder_name(builder_name) 53 assert(port_name) # Need to update port_name_for_builder_name 54 port = factory.get(port_name, RebaseliningOptions(builder_name)) 55 assert(port) # Need to update port_name_for_builder_name 56 return port 44 57 45 58 … … 53 66 54 67 55 # FIXME: This logic should be moved to builders.py.56 class BuilderToPort(object):57 58 _builder_name_to_port_name = {59 # These builders are on build.webkit.org.60 r"SnowLeopard": "mac-snowleopard",61 r"Leopard": "mac-leopard",62 r"Windows": "win",63 r"GTK": "gtk",64 r"Qt": "qt",65 r"Chromium Mac": "chromium-mac",66 r"Chromium Linux": "chromium-linux",67 r"Chromium Win": "chromium-win",68 69 # These builders are on build.chromium.org.70 r"Webkit Win$": "chromium-win-xp",71 r"Webkit Vista": "chromium-win-vista",72 r"Webkit Win7": "chromium-win-win7",73 r"Webkit Win \(dbg\)\(1\)": "chromium-win-xp",74 r"Webkit Win \(dbg\)\(2\)": "chromium-win-xp",75 r"Webkit Linux": "chromium-linux-x86_64",76 r"Webkit Linux 32": "chromium-linux-x86",77 r"Webkit Linux \(dbg\)\(1\)": "chromium-linux-x86_64",78 r"Webkit Linux \(dbg\)\(2\)": "chromium-linux-x86_64",79 r"Webkit Mac10\.5": "chromium-mac-leopard",80 r"Webkit Mac10\.5 \(dbg\)\(1\)": "chromium-mac-leopard",81 r"Webkit Mac10\.5 \(dbg\)\(2\)": "chromium-mac-leopard",82 r"Webkit Mac10\.6": "chromium-mac-snowleopard",83 r"Webkit Mac10\.6 \(dbg\)": "chromium-mac-snowleopard",84 }85 86 def _port_name_for_builder_name(self, builder_name):87 for regexp, port_name in self._builder_name_to_port_name.items():88 if re.match(regexp, builder_name):89 return port_name90 91 def port_for_builder(self, builder_name):92 port_name = self._port_name_for_builder_name(builder_name)93 assert(port_name) # Need to update _builder_name_to_port_name94 port = factory.get(port_name, RebaseliningOptions(builder_name))95 assert(port) # Need to update _builder_name_to_port_name96 return port97 98 99 68 class RebaselineTest(AbstractDeclarativeCommand): 100 69 name = "rebaseline-test" 101 70 help_text = "Rebaseline a single test from a buildbot. (Currently works only with build.chromium.org buildbots.)" 102 argument_names = "BUILDER_NAME TEST_NAME SUFFIX" 71 # FIXME: Remove SUFFIX argument. 72 argument_names = "BUILDER_NAME TEST_NAME [SUFFIX]" 103 73 104 74 def _results_url(self, builder_name): … … 108 78 109 79 def _baseline_directory(self, builder_name): 110 port = BuilderToPort().port_for_builder(builder_name)80 port = _port_for_builder(builder_name) 111 81 return port.baseline_path() 112 82 113 83 def _save_baseline(self, data, target_baseline): 84 if not data: 85 return 114 86 filesystem = self._tool.filesystem 115 87 filesystem.maybe_make_directory(filesystem.dirname(target_baseline)) … … 131 103 baseline_directory = self._baseline_directory(builder_name) 132 104 133 source_baseline = "%s /%s" % (results_url, self._file_name_for_actual_result(test_name, suffix))105 source_baseline = "%s%s" % (results_url, self._file_name_for_actual_result(test_name, suffix)) 134 106 target_baseline = os.path.join(baseline_directory, self._file_name_for_expected_result(test_name, suffix)) 135 107 136 print "Retrieving %s ..." % source_baseline 137 self._save_baseline(self._tool.web.get_binary(source_baseline), target_baseline) 138 139 def execute(self, options, args, tool): 140 self._rebaseline_test(args[0], args[1], args[2]) 108 print "Retrieving %s." % source_baseline 109 self._save_baseline(self._tool.web.get_binary(source_baseline, convert_404_to_None=True), target_baseline) 110 111 def execute(self, options, args, tool): 112 for suffix in _baseline_suffix_list: 113 self._rebaseline_test(args[0], args[1], suffix) 141 114 142 115 … … 148 121 # FIXME: Should TestResultWriter know how to compute this string? 149 122 def _baseline_name(self, test_name, suffix): 150 return self._tool.filesystem.splitext(test_name)[0] + TestResultWriter.FILENAME_SUFFIX_EXPECTED + suffix123 return self._tool.filesystem.splitext(test_name)[0] + TestResultWriter.FILENAME_SUFFIX_EXPECTED + "." + suffix 151 124 152 125 def execute(self, options, args, tool): … … 154 127 155 128 test_name = args[0] 156 for suffix in ['.png', '.txt']:129 for suffix in _baseline_suffix_list: 157 130 baseline_name = self._baseline_name(test_name, suffix) 158 131 if not baseline_optimizer.optimize(baseline_name): 159 132 print "Hueristics failed to optimize %s" % baseline_name 133 134 135 class RebaselineExpectations(AbstractDeclarativeCommand): 136 name = "rebaseline-expectations" 137 help_text = "Rebaselines the tests indicated in test_expectations.txt." 138 139 def _run_webkit_patch(self, args): 140 try: 141 self._tool.executive.run_command([self._tool.path()] + args, cwd=self._tool.scm().checkout_root) 142 except ScriptError, e: 143 pass 144 145 def _is_supported_port(self, port_name): 146 # FIXME: Support non-Chromium ports. 147 return port_name.startswith('chromium-') 148 149 def _update_expectations_file(self, port, expectations, tests_to_rebaseline): 150 new_expectations = expectations.remove_rebaselined_tests(tests_to_rebaseline) 151 path = port.path_to_test_expectations_file() 152 self._tool.filesystem.write_text_file(path, new_expectations) 153 154 # FIXME: We read and write the test_expectations.txt file once for each port. That seems excessive. 155 def _tests_to_rebaseline(self, port): 156 expectations = TestExpectations(port, None, port.test_expectations(), port.test_configuration()) 157 tests_to_rebaseline = expectations.get_rebaselining_failures() 158 self._update_expectations_file(port, expectations, tests_to_rebaseline) 159 return tests_to_rebaseline 160 161 def _rebaseline_port(self, port_name): 162 if not self._is_supported_port(port_name): 163 return 164 builder_name = builders.builder_name_for_port_name(port_name) 165 if not builder_name: 166 return 167 print "Retrieving results for %s from %s." % (port_name, builder_name) 168 for test_name in self._tests_to_rebaseline(factory.get(port_name)): 169 self._touched_test_names.add(test_name) 170 print " %s" % test_name 171 self._run_webkit_patch(['rebaseline-test', builder_name, test_name]) 172 173 def execute(self, options, args, tool): 174 self._touched_test_names = set([]) 175 for port_name in factory.all_port_names(): 176 self._rebaseline_port(port_name) 177 for test_name in self._touched_test_names: 178 print "Optimizing baselines for %s." % test_name 179 self._run_webkit_patch(['optimize-baselines', test_name]) 160 180 161 181 … … 192 212 builder, build_number = self._builder_to_pull_from() 193 213 build = builder.build(build_number) 194 port = BuilderToPort().port_for_builder(builder.name())214 port = builder_name_for_port_name.port_for_builder(builder.name()) 195 215 196 216 for test in self._tests_to_update(build): -
trunk/Tools/Scripts/webkitpy/tool/commands/rebaseline_unittest.py
r92294 r92493 32 32 from webkitpy.thirdparty.mock import Mock 33 33 from webkitpy.tool.commands.rebaseline import * 34 from webkitpy.tool.mocktool import MockTool 34 from webkitpy.tool.mocktool import MockTool, MockExecutive 35 35 36 36 37 37 class TestRebaseline(unittest.TestCase): 38 # This just makes sure the code runs without exceptions.39 38 def test_tests_to_update(self): 40 39 command = Rebaseline() … … 43 42 OutputCapture().assert_outputs(self, command._tests_to_update, [build]) 44 43 45 46 class TestRebaselineTest(unittest.TestCase): 47 def test_tests_to_update(self): 44 def test_rebaseline_test(self): 48 45 command = RebaselineTest() 49 46 command.bind_to_tool(MockTool()) 50 build = Mock() 51 expected_stdout = "Retrieving http://example.com/f/builders/Webkit Linux/results//userscripts/another-test-actual.txt ...\n" 47 expected_stdout = "Retrieving http://example.com/f/builders/Webkit Linux/results/userscripts/another-test-actual.txt.\n" 52 48 OutputCapture().assert_outputs(self, command._rebaseline_test, ["Webkit Linux", "userscripts/another-test.html", "txt"], expected_stdout=expected_stdout) 53 49 54 55 class BuilderToPortTest(unittest.TestCase): 56 def test_port_for_builder(self): 57 converter = BuilderToPort() 58 port = converter.port_for_builder("Leopard Intel Debug (Tests)") 59 self.assertEqual(str(port.test_configuration()), "<leopard, x86, debug, cpu>") 60 port = converter.port_for_builder("Leopard Intel Release (Tests)") 61 self.assertEqual(str(port.test_configuration()), "<leopard, x86, release, cpu>") 62 port = converter.port_for_builder("Webkit Win (dbg)(1)") 63 self.assertEqual(str(port.test_configuration()), "<xp, x86, debug, cpu>") 50 def test_rebaseline_expectations(self): 51 command = RebaselineExpectations() 52 tool = MockTool() 53 tool.executive = MockExecutive(should_log=True) 54 command.bind_to_tool(tool) 55 expected_stdout = """Retrieving results for chromium-gpu-mac-leopard from Webkit Mac10.5 - GPU. 56 Retrieving results for chromium-gpu-mac-snowleopard from Webkit Mac10.6 - GPU. 57 Retrieving results for chromium-gpu-win-win7 from Webkit Win7 - GPU. 58 Retrieving results for chromium-gpu-win-xp from Webkit Win - GPU. 59 Retrieving results for chromium-linux-x86 from Webkit Linux 32. 60 userscripts/another-test.html 61 userscripts/images.svg 62 Retrieving results for chromium-linux-x86_64 from Webkit Linux (dbg)(2). 63 userscripts/another-test.html 64 userscripts/images.svg 65 Retrieving results for chromium-mac-leopard from Webkit Mac10.5 (dbg)(1). 66 userscripts/another-test.html 67 userscripts/images.svg 68 Retrieving results for chromium-mac-snowleopard from Webkit Mac10.6 (dbg). 69 userscripts/another-test.html 70 userscripts/images.svg 71 Retrieving results for chromium-win-vista from Webkit Vista. 72 userscripts/another-test.html 73 userscripts/images.svg 74 Retrieving results for chromium-win-win7 from Webkit Win7. 75 userscripts/another-test.html 76 userscripts/images.svg 77 Retrieving results for chromium-win-xp from Webkit Win (dbg)(2). 78 userscripts/another-test.html 79 userscripts/images.svg 80 Optimizing baselines for userscripts/another-test.html. 81 Optimizing baselines for userscripts/images.svg. 82 """ 83 expected_stderr = """MOCK run_command: ['echo', 'rebaseline-test', 'Webkit Linux 32', 'userscripts/another-test.html'], cwd=/mock-checkout 84 MOCK run_command: ['echo', 'rebaseline-test', 'Webkit Linux 32', 'userscripts/images.svg'], cwd=/mock-checkout 85 MOCK run_command: ['echo', 'rebaseline-test', 'Webkit Linux (dbg)(2)', 'userscripts/another-test.html'], cwd=/mock-checkout 86 MOCK run_command: ['echo', 'rebaseline-test', 'Webkit Linux (dbg)(2)', 'userscripts/images.svg'], cwd=/mock-checkout 87 MOCK run_command: ['echo', 'rebaseline-test', 'Webkit Mac10.5 (dbg)(1)', 'userscripts/another-test.html'], cwd=/mock-checkout 88 MOCK run_command: ['echo', 'rebaseline-test', 'Webkit Mac10.5 (dbg)(1)', 'userscripts/images.svg'], cwd=/mock-checkout 89 MOCK run_command: ['echo', 'rebaseline-test', 'Webkit Mac10.6 (dbg)', 'userscripts/another-test.html'], cwd=/mock-checkout 90 MOCK run_command: ['echo', 'rebaseline-test', 'Webkit Mac10.6 (dbg)', 'userscripts/images.svg'], cwd=/mock-checkout 91 MOCK run_command: ['echo', 'rebaseline-test', 'Webkit Vista', 'userscripts/another-test.html'], cwd=/mock-checkout 92 MOCK run_command: ['echo', 'rebaseline-test', 'Webkit Vista', 'userscripts/images.svg'], cwd=/mock-checkout 93 MOCK run_command: ['echo', 'rebaseline-test', 'Webkit Win7', 'userscripts/another-test.html'], cwd=/mock-checkout 94 MOCK run_command: ['echo', 'rebaseline-test', 'Webkit Win7', 'userscripts/images.svg'], cwd=/mock-checkout 95 MOCK run_command: ['echo', 'rebaseline-test', 'Webkit Win (dbg)(2)', 'userscripts/another-test.html'], cwd=/mock-checkout 96 MOCK run_command: ['echo', 'rebaseline-test', 'Webkit Win (dbg)(2)', 'userscripts/images.svg'], cwd=/mock-checkout 97 MOCK run_command: ['echo', 'optimize-baselines', 'userscripts/another-test.html'], cwd=/mock-checkout 98 MOCK run_command: ['echo', 'optimize-baselines', 'userscripts/images.svg'], cwd=/mock-checkout 99 """ 100 command._tests_to_rebaseline = lambda port: [] if not port.name().find('-gpu-') == -1 else ['userscripts/another-test.html', 'userscripts/images.svg'] 101 OutputCapture().assert_outputs(self, command.execute, [MockTool(), None, None], expected_stdout=expected_stdout, expected_stderr=expected_stderr)
Note: See TracChangeset
for help on using the changeset viewer.