OLD | NEW |
1 # Copyright 2016 The Chromium Authors. All rights reserved. | 1 # Copyright 2016 The Chromium Authors. All rights reserved. |
2 # Use of this source code is governed by a BSD-style license that can be | 2 # Use of this source code is governed by a BSD-style license that can be |
3 # found in the LICENSE file. | 3 # found in the LICENSE file. |
4 | 4 |
5 import optparse | 5 import optparse |
6 import unittest | 6 import unittest |
7 | 7 |
8 from webkitpy.common.net.buildbot import Build | 8 from webkitpy.common.net.buildbot import Build |
9 from webkitpy.common.net.layouttestresults import LayoutTestResults | 9 from webkitpy.common.net.layouttestresults import LayoutTestResults |
10 from webkitpy.common.system.executive_mock import MockExecutive, MockExecutive2 | 10 from webkitpy.common.system.executive_mock import MockExecutive, MockExecutive2 |
11 from webkitpy.common.system.outputcapture import OutputCapture | 11 from webkitpy.common.system.outputcapture import OutputCapture |
12 from webkitpy.layout_tests.builder_list import BuilderList | 12 from webkitpy.layout_tests.builder_list import BuilderList |
13 from webkitpy.tool.commands.rebaseline import ( | 13 from webkitpy.tool.commands.rebaseline import ( |
14 AbstractParallelRebaselineCommand, CopyExistingBaselinesInternal, | 14 AbstractParallelRebaselineCommand, CopyExistingBaselinesInternal, |
15 Rebaseline, RebaselineExpectations, RebaselineJson, RebaselineTest | 15 Rebaseline, RebaselineExpectations, RebaselineJson, RebaselineTest, ChangeSe
t |
16 ) | 16 ) |
17 from webkitpy.tool.mock_tool import MockWebKitPatch | 17 from webkitpy.tool.mock_tool import MockWebKitPatch |
18 | 18 |
19 | 19 |
20 # pylint: disable=protected-access | 20 # pylint: disable=protected-access |
21 class BaseTestCase(unittest.TestCase): | 21 class BaseTestCase(unittest.TestCase): |
22 MOCK_WEB_RESULT = 'MOCK Web result, convert 404 to None=True' | 22 MOCK_WEB_RESULT = 'MOCK Web result, convert 404 to None=True' |
23 WEB_PREFIX = 'https://storage.googleapis.com/chromium-layout-test-archives/M
OCK_Mac10_11/results/layout-test-results' | 23 WEB_PREFIX = 'https://storage.googleapis.com/chromium-layout-test-archives/M
OCK_Mac10_11/results/layout-test-results' |
24 | 24 |
25 command_constructor = None | 25 command_constructor = None |
(...skipping 287 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
313 "bug(z) [ Linux ] userscripts/another-test.html [ Failure ]\n")) | 313 "bug(z) [ Linux ] userscripts/another-test.html [ Failure ]\n")) |
314 self.command._rebaseline_test_and_update_expectations(self.options(resul
ts_directory='/tmp')) | 314 self.command._rebaseline_test_and_update_expectations(self.options(resul
ts_directory='/tmp')) |
315 self.assertItemsEqual(self.tool.web.urls_fetched, ['file:///tmp/userscri
pts/another-test-actual.txt']) | 315 self.assertItemsEqual(self.tool.web.urls_fetched, ['file:///tmp/userscri
pts/another-test-actual.txt']) |
316 | 316 |
317 def test_rebaseline_reftest(self): | 317 def test_rebaseline_reftest(self): |
318 self._write("userscripts/another-test.html", "test data") | 318 self._write("userscripts/another-test.html", "test data") |
319 self._write("userscripts/another-test-expected.html", "generic result") | 319 self._write("userscripts/another-test-expected.html", "generic result") |
320 OutputCapture().assert_outputs( | 320 OutputCapture().assert_outputs( |
321 self, self.command._rebaseline_test_and_update_expectations, args=[s
elf.options(suffixes='png')], | 321 self, self.command._rebaseline_test_and_update_expectations, args=[s
elf.options(suffixes='png')], |
322 expected_logs="Cannot rebaseline image result for reftest: userscrip
ts/another-test.html\n") | 322 expected_logs="Cannot rebaseline image result for reftest: userscrip
ts/another-test.html\n") |
323 self.assertDictEqual(self.command._scm_changes, {'add': [], 'remove-line
s': [], "delete": []}) | 323 self.assertDictEqual(self.command._scm_changes.to_dict(), {'add': [], 'r
emove-lines': [], "delete": []}) |
324 | 324 |
325 def test_rebaseline_test_and_print_scm_changes(self): | 325 def test_rebaseline_test_and_print_scm_changes(self): |
326 self.command._print_scm_changes = True | 326 self.command._print_scm_changes = True |
327 self.command._scm_changes = {'add': [], 'delete': []} | 327 self.command._scm_changes = ChangeSet() |
328 self.tool._scm.exists = lambda x: False | 328 self.tool._scm.exists = lambda x: False |
329 | 329 |
330 self.command._rebaseline_test("MOCK Trusty", "userscripts/another-test.h
tml", "txt", None) | 330 self.command._rebaseline_test("MOCK Trusty", "userscripts/another-test.h
tml", "txt", None) |
331 | 331 |
332 self.assertDictEqual(self.command._scm_changes, { | 332 self.assertDictEqual( |
333 'add': ['/test.checkout/LayoutTests/platform/test-linux-trusty/users
cripts/another-test-expected.txt'], | 333 self.command._scm_changes.to_dict(), |
334 'delete': [] | 334 { |
335 }) | 335 'add': ['/test.checkout/LayoutTests/platform/test-linux-trusty/u
serscripts/another-test-expected.txt'], |
| 336 'delete': [], |
| 337 'remove-lines': [] |
| 338 }) |
336 | 339 |
337 def test_rebaseline_test_internal_with_port_that_lacks_buildbot(self): | 340 def test_rebaseline_test_internal_with_port_that_lacks_buildbot(self): |
338 self.tool.executive = MockExecutive2() | 341 self.tool.executive = MockExecutive2() |
339 | 342 |
340 port = self.tool.port_factory.get('test-win-win7') | 343 port = self.tool.port_factory.get('test-win-win7') |
341 self._write(port._filesystem.join(port.layout_tests_dir(), | 344 self._write(port._filesystem.join(port.layout_tests_dir(), |
342 'platform/test-win-win10/failures/expe
cted/image-expected.txt'), 'original win10 result') | 345 'platform/test-win-win10/failures/expe
cted/image-expected.txt'), 'original win10 result') |
343 | 346 |
344 oc = OutputCapture() | 347 oc = OutputCapture() |
345 try: | 348 try: |
(...skipping 578 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
924 for cmd_line, cwd in commands: | 927 for cmd_line, cwd in commands: |
925 out = self.run_command(cmd_line, cwd=cwd) | 928 out = self.run_command(cmd_line, cwd=cwd) |
926 if 'rebaseline-test-internal' in cmd_line: | 929 if 'rebaseline-test-internal' in cmd_line: |
927 out = '{"add": [], "remove-lines": [{"test": "%s", "builder": "%
s"}], "delete": []}\n' % (cmd_line[8], cmd_line[6]) | 930 out = '{"add": [], "remove-lines": [{"test": "%s", "builder": "%
s"}], "delete": []}\n' % (cmd_line[8], cmd_line[6]) |
928 command_outputs.append([0, out, '']) | 931 command_outputs.append([0, out, '']) |
929 | 932 |
930 new_calls = self.calls[num_previous_calls:] | 933 new_calls = self.calls[num_previous_calls:] |
931 self.calls = self.calls[:num_previous_calls] | 934 self.calls = self.calls[:num_previous_calls] |
932 self.calls.append(new_calls) | 935 self.calls.append(new_calls) |
933 return command_outputs | 936 return command_outputs |
OLD | NEW |