| OLD | NEW |
| 1 # Copyright (C) 2010 Google Inc. All rights reserved. | 1 # Copyright (C) 2010 Google Inc. All rights reserved. |
| 2 # | 2 # |
| 3 # Redistribution and use in source and binary forms, with or without | 3 # Redistribution and use in source and binary forms, with or without |
| 4 # modification, are permitted provided that the following conditions are | 4 # modification, are permitted provided that the following conditions are |
| 5 # met: | 5 # met: |
| 6 # | 6 # |
| 7 # * Redistributions of source code must retain the above copyright | 7 # * Redistributions of source code must retain the above copyright |
| 8 # notice, this list of conditions and the following disclaimer. | 8 # notice, this list of conditions and the following disclaimer. |
| 9 # * Redistributions in binary form must reproduce the above | 9 # * Redistributions in binary form must reproduce the above |
| 10 # copyright notice, this list of conditions and the following disclaimer | 10 # copyright notice, this list of conditions and the following disclaimer |
| (...skipping 15 matching lines...) Expand all Loading... |
| 26 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | 26 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
| 27 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 27 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
| 28 | 28 |
| 29 import webkitpy.thirdparty.unittest2 as unittest | 29 import webkitpy.thirdparty.unittest2 as unittest |
| 30 | 30 |
| 31 from webkitpy.common.checkout.baselineoptimizer import BaselineOptimizer | 31 from webkitpy.common.checkout.baselineoptimizer import BaselineOptimizer |
| 32 from webkitpy.common.checkout.scm.scm_mock import MockSCM | 32 from webkitpy.common.checkout.scm.scm_mock import MockSCM |
| 33 from webkitpy.common.host_mock import MockHost | 33 from webkitpy.common.host_mock import MockHost |
| 34 from webkitpy.common.net.buildbot.buildbot_mock import MockBuilder | 34 from webkitpy.common.net.buildbot.buildbot_mock import MockBuilder |
| 35 from webkitpy.common.net.layouttestresults import LayoutTestResults | 35 from webkitpy.common.net.layouttestresults import LayoutTestResults |
| 36 from webkitpy.common.system.executive_mock import MockExecutive |
| 36 from webkitpy.common.system.executive_mock import MockExecutive2 | 37 from webkitpy.common.system.executive_mock import MockExecutive2 |
| 37 from webkitpy.common.system.outputcapture import OutputCapture | 38 from webkitpy.common.system.outputcapture import OutputCapture |
| 38 from webkitpy.thirdparty.mock import Mock | 39 from webkitpy.thirdparty.mock import Mock |
| 39 from webkitpy.tool.commands.rebaseline import * | 40 from webkitpy.tool.commands.rebaseline import * |
| 40 from webkitpy.tool.mocktool import MockTool, MockOptions | 41 from webkitpy.tool.mocktool import MockTool, MockOptions |
| 41 | 42 |
| 42 | 43 |
| 43 class _BaseTestCase(unittest.TestCase): | 44 class _BaseTestCase(unittest.TestCase): |
| 44 MOCK_WEB_RESULT = 'MOCK Web result, convert 404 to None=True' | 45 MOCK_WEB_RESULT = 'MOCK Web result, convert 404 to None=True' |
| 45 WEB_PREFIX = 'http://example.com/f/builders/WebKit Mac10.7/results/layout-te
st-results' | 46 WEB_PREFIX = 'http://example.com/f/builders/WebKit Mac10.7/results/layout-te
st-results' |
| (...skipping 307 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 353 "actual": "PASS" | 354 "actual": "PASS" |
| 354 } | 355 } |
| 355 } | 356 } |
| 356 } | 357 } |
| 357 });""") | 358 });""") |
| 358 return self.command._builder_data | 359 return self.command._builder_data |
| 359 | 360 |
| 360 self.command.builder_data = builder_data | 361 self.command.builder_data = builder_data |
| 361 | 362 |
| 362 options = MockOptions(optimize=True, verbose=True, results_directory=Non
e) | 363 options = MockOptions(optimize=True, verbose=True, results_directory=Non
e) |
| 364 |
| 365 self._write(self.lion_expectations_path, "Bug(x) userscripts/first-test.
html [ ImageOnlyFailure ]\n") |
| 363 self._write("userscripts/first-test.html", "Dummy test contents") | 366 self._write("userscripts/first-test.html", "Dummy test contents") |
| 367 |
| 364 self.command._rebaseline(options, {"userscripts/first-test.html": {"MOC
K builder": ["txt", "png"]}}) | 368 self.command._rebaseline(options, {"userscripts/first-test.html": {"MOC
K builder": ["txt", "png"]}}) |
| 365 | 369 |
| 366 # Note that we have one run_in_parallel() call followed by a run_command
() | 370 # Note that we have one run_in_parallel() call followed by a run_command
() |
| 367 self.assertEqual(self.tool.executive.calls, | 371 self.assertEqual(self.tool.executive.calls, |
| 368 [[['echo', 'optimize-baselines', '--no-modify-scm', '--suffixes', ''
, 'userscripts/first-test.html', '--verbose']]]) | 372 [[['echo', 'optimize-baselines', '--no-modify-scm', '--suffixes', ''
, 'userscripts/first-test.html', '--verbose']]]) |
| 369 | 373 |
| 370 def test_rebaseline_all(self): | 374 def test_rebaseline_all(self): |
| 371 self._setup_mock_builder_data() | 375 self._setup_mock_builder_data() |
| 372 | 376 |
| 373 options = MockOptions(optimize=True, verbose=True, results_directory=Non
e) | 377 options = MockOptions(optimize=True, verbose=True, results_directory=Non
e) |
| (...skipping 133 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 507 self._write("SmokeTests", "fast/html/article-element.html") | 511 self._write("SmokeTests", "fast/html/article-element.html") |
| 508 self._write("userscripts/first-test.html", "Dummy test contents") | 512 self._write("userscripts/first-test.html", "Dummy test contents") |
| 509 self._setup_mock_builder_data() | 513 self._setup_mock_builder_data() |
| 510 | 514 |
| 511 self.command._rebaseline(options, {"userscripts/first-test.html": {"Web
Kit Mac10.7": ["txt", "png"]}}) | 515 self.command._rebaseline(options, {"userscripts/first-test.html": {"Web
Kit Mac10.7": ["txt", "png"]}}) |
| 512 | 516 |
| 513 new_expectations = self._read(self.lion_expectations_path) | 517 new_expectations = self._read(self.lion_expectations_path) |
| 514 self.assertMultiLineEqual(new_expectations, "Bug(x) [ Linux Mavericks Mo
untainLion Retina SnowLeopard Win ] userscripts/first-test.html [ ImageOnlyFailu
re ]\n") | 518 self.assertMultiLineEqual(new_expectations, "Bug(x) [ Linux Mavericks Mo
untainLion Retina SnowLeopard Win ] userscripts/first-test.html [ ImageOnlyFailu
re ]\n") |
| 515 | 519 |
| 516 | 520 |
| 517 | |
| 518 class TestRebaseline(_BaseTestCase): | 521 class TestRebaseline(_BaseTestCase): |
| 519 # This command shares most of its logic with RebaselineJson, so these tests
just test what is different. | 522 # This command shares most of its logic with RebaselineJson, so these tests
just test what is different. |
| 520 | 523 |
| 521 command_constructor = Rebaseline # AKA webkit-patch rebaseline | 524 command_constructor = Rebaseline # AKA webkit-patch rebaseline |
| 522 | 525 |
| 523 def test_rebaseline(self): | 526 def test_rebaseline(self): |
| 524 self.command._builders_to_pull_from = lambda: [MockBuilder('MOCK builder
')] | 527 self.command._builders_to_pull_from = lambda: [MockBuilder('MOCK builder
')] |
| 525 | 528 |
| 526 self._write("userscripts/first-test.html", "test data") | 529 self._write("userscripts/first-test.html", "test data") |
| 527 | 530 |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 560 builders._exact_matches = old_exact_matches | 563 builders._exact_matches = old_exact_matches |
| 561 | 564 |
| 562 calls = filter(lambda x: x != ['qmake', '-v'] and x[0] != 'perl', self.t
ool.executive.calls) | 565 calls = filter(lambda x: x != ['qmake', '-v'] and x[0] != 'perl', self.t
ool.executive.calls) |
| 563 self.assertEqual(calls, | 566 self.assertEqual(calls, |
| 564 [[['echo', 'copy-existing-baselines-internal', '--suffixes', 'txt,pn
g', '--builder', 'MOCK builder', '--test', 'userscripts/first-test.html', '--ver
bose'], | 567 [[['echo', 'copy-existing-baselines-internal', '--suffixes', 'txt,pn
g', '--builder', 'MOCK builder', '--test', 'userscripts/first-test.html', '--ver
bose'], |
| 565 ['echo', 'copy-existing-baselines-internal', '--suffixes', 'txt,pn
g', '--builder', 'MOCK builder', '--test', 'userscripts/second-test.html', '--ve
rbose']], | 568 ['echo', 'copy-existing-baselines-internal', '--suffixes', 'txt,pn
g', '--builder', 'MOCK builder', '--test', 'userscripts/second-test.html', '--ve
rbose']], |
| 566 [['echo', 'rebaseline-test-internal', '--suffixes', 'txt,png', '--b
uilder', 'MOCK builder', '--test', 'userscripts/first-test.html', '--verbose'], | 569 [['echo', 'rebaseline-test-internal', '--suffixes', 'txt,png', '--b
uilder', 'MOCK builder', '--test', 'userscripts/first-test.html', '--verbose'], |
| 567 ['echo', 'rebaseline-test-internal', '--suffixes', 'txt,png', '--b
uilder', 'MOCK builder', '--test', 'userscripts/second-test.html', '--verbose']]
]) | 570 ['echo', 'rebaseline-test-internal', '--suffixes', 'txt,png', '--b
uilder', 'MOCK builder', '--test', 'userscripts/second-test.html', '--verbose']]
]) |
| 568 | 571 |
| 569 | 572 |
| 573 class MockLineRemovingExecutive(MockExecutive): |
| 574 def run_in_parallel(self, commands): |
| 575 assert len(commands) |
| 576 |
| 577 num_previous_calls = len(self.calls) |
| 578 command_outputs = [] |
| 579 for cmd_line, cwd in commands: |
| 580 out = self.run_command(cmd_line, cwd=cwd) |
| 581 if 'rebaseline-test-internal' in cmd_line: |
| 582 out = '{"add": [], "remove-lines": [{"test": "%s", "builder": "%
s"}], "delete": []}\n' % (cmd_line[7], cmd_line[5]) |
| 583 command_outputs.append([0, out, '']) |
| 584 |
| 585 new_calls = self.calls[num_previous_calls:] |
| 586 self.calls = self.calls[:num_previous_calls] |
| 587 self.calls.append(new_calls) |
| 588 return command_outputs |
| 589 |
| 590 |
| 570 class TestRebaselineExpectations(_BaseTestCase): | 591 class TestRebaselineExpectations(_BaseTestCase): |
| 571 command_constructor = RebaselineExpectations | 592 command_constructor = RebaselineExpectations |
| 572 | 593 |
| 573 def setUp(self): | 594 def setUp(self): |
| 574 super(TestRebaselineExpectations, self).setUp() | 595 super(TestRebaselineExpectations, self).setUp() |
| 575 self.options = MockOptions(optimize=False, builders=None, suffixes=['txt
'], verbose=False, platform=None, results_directory=None) | 596 self.options = MockOptions(optimize=False, builders=None, suffixes=['txt
'], verbose=False, platform=None, results_directory=None) |
| 576 | 597 |
| 598 def _write_test_file(self, port, path, contents): |
| 599 abs_path = self.tool.filesystem.join(port.layout_tests_dir(), path) |
| 600 self.tool.filesystem.write_text_file(abs_path, contents) |
| 601 |
| 602 def _setup_test_port(self): |
| 603 test_port = self.tool.port_factory.get('test') |
| 604 original_get = self.tool.port_factory.get |
| 605 |
| 606 def get_test_port(port_name=None, options=None, **kwargs): |
| 607 if not port_name: |
| 608 return test_port |
| 609 return original_get(port_name, options, **kwargs) |
| 610 # Need to make sure all the ports grabbed use the test checkout path ins
tead of the mock checkout path. |
| 611 # FIXME: crbug.com/279494 - we shouldn't be doing this. |
| 612 self.tool.port_factory.get = get_test_port |
| 613 |
| 614 return test_port |
| 615 |
| 577 def test_rebaseline_expectations(self): | 616 def test_rebaseline_expectations(self): |
| 578 self._zero_out_test_expectations() | 617 self._zero_out_test_expectations() |
| 579 | 618 |
| 580 self.tool.executive = MockExecutive2() | 619 self.tool.executive = MockExecutive2() |
| 581 | 620 |
| 582 def builder_data(): | 621 def builder_data(): |
| 583 self.command._builder_data['MOCK SnowLeopard'] = self.command._build
er_data['MOCK Leopard'] = LayoutTestResults.results_from_string("""ADD_RESULTS({ | 622 self.command._builder_data['MOCK SnowLeopard'] = self.command._build
er_data['MOCK Leopard'] = LayoutTestResults.results_from_string("""ADD_RESULTS({ |
| 584 "tests": { | 623 "tests": { |
| 585 "userscripts": { | 624 "userscripts": { |
| 586 "another-test.html": { | 625 "another-test.html": { |
| (...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 658 self._write('/userscripts/another-test.html', '') | 697 self._write('/userscripts/another-test.html', '') |
| 659 | 698 |
| 660 self.assertDictEqual(self.command._tests_to_rebaseline(self.lion_port),
{'userscripts/another-test.html': set(['png', 'txt', 'wav'])}) | 699 self.assertDictEqual(self.command._tests_to_rebaseline(self.lion_port),
{'userscripts/another-test.html': set(['png', 'txt', 'wav'])}) |
| 661 self.assertEqual(self._read(self.lion_expectations_path), '') | 700 self.assertEqual(self._read(self.lion_expectations_path), '') |
| 662 | 701 |
| 663 def test_rebaseline_without_other_expectations(self): | 702 def test_rebaseline_without_other_expectations(self): |
| 664 self._write("userscripts/another-test.html", "Dummy test contents") | 703 self._write("userscripts/another-test.html", "Dummy test contents") |
| 665 self._write(self.lion_expectations_path, "Bug(x) userscripts/another-tes
t.html [ Rebaseline ]\n") | 704 self._write(self.lion_expectations_path, "Bug(x) userscripts/another-tes
t.html [ Rebaseline ]\n") |
| 666 self.assertDictEqual(self.command._tests_to_rebaseline(self.lion_port),
{'userscripts/another-test.html': ('png', 'wav', 'txt')}) | 705 self.assertDictEqual(self.command._tests_to_rebaseline(self.lion_port),
{'userscripts/another-test.html': ('png', 'wav', 'txt')}) |
| 667 | 706 |
| 707 def test_rebaseline_test_passes_everywhere(self): |
| 708 test_port = self._setup_test_port() |
| 709 |
| 710 old_builder_data = self.command.builder_data |
| 711 |
| 712 def builder_data(): |
| 713 self.command._builder_data['MOCK Leopard'] = self.command._builder_d
ata['MOCK SnowLeopard'] = LayoutTestResults.results_from_string("""ADD_RESULTS({ |
| 714 "tests": { |
| 715 "fast": { |
| 716 "dom": { |
| 717 "prototype-taco.html": { |
| 718 "expected": "FAIL", |
| 719 "actual": "PASS", |
| 720 "is_unexpected": true |
| 721 } |
| 722 } |
| 723 } |
| 724 } |
| 725 });""") |
| 726 return self.command._builder_data |
| 727 |
| 728 self.command.builder_data = builder_data |
| 729 |
| 730 self.tool.filesystem.write_text_file(test_port.path_to_generic_test_expe
ctations_file(), """ |
| 731 Bug(foo) fast/dom/prototype-taco.html [ Rebaseline ] |
| 732 """) |
| 733 |
| 734 self._write_test_file(test_port, 'fast/dom/prototype-taco.html', "Dummy
test contents") |
| 735 |
| 736 self.tool.executive = MockLineRemovingExecutive() |
| 737 |
| 738 old_exact_matches = builders._exact_matches |
| 739 try: |
| 740 builders._exact_matches = { |
| 741 "MOCK Leopard": {"port_name": "test-mac-leopard", "specifiers":
set(["mock-specifier"])}, |
| 742 "MOCK SnowLeopard": {"port_name": "test-mac-snowleopard", "speci
fiers": set(["mock-specifier"])}, |
| 743 } |
| 744 |
| 745 self.command.execute(self.options, [], self.tool) |
| 746 self.assertEqual(self.tool.executive.calls, []) |
| 747 |
| 748 # The mac ports should both be removed since they're the only ones i
n builders._exact_matches. |
| 749 self.assertEqual(self.tool.filesystem.read_text_file(test_port.path_
to_generic_test_expectations_file()), """ |
| 750 Bug(foo) [ Linux Win ] fast/dom/prototype-taco.html [ Rebaseline ] |
| 751 """) |
| 752 finally: |
| 753 builders._exact_matches = old_exact_matches |
| 754 |
| 668 | 755 |
| 669 class _FakeOptimizer(BaselineOptimizer): | 756 class _FakeOptimizer(BaselineOptimizer): |
| 670 def read_results_by_directory(self, baseline_name): | 757 def read_results_by_directory(self, baseline_name): |
| 671 if baseline_name.endswith('txt'): | 758 if baseline_name.endswith('txt'): |
| 672 return {'LayoutTests/passes/text.html': '123456'} | 759 return {'LayoutTests/passes/text.html': '123456'} |
| 673 return {} | 760 return {} |
| 674 | 761 |
| 675 | 762 |
| 676 class TestOptimizeBaselines(_BaseTestCase): | 763 class TestOptimizeBaselines(_BaseTestCase): |
| 677 command_constructor = OptimizeBaselines | 764 command_constructor = OptimizeBaselines |
| (...skipping 248 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 926 crbug.com/24182 [ SnowLeopard ] fast/dom/prototype-strawberry.html [ NeedsRebase
line ] | 1013 crbug.com/24182 [ SnowLeopard ] fast/dom/prototype-strawberry.html [ NeedsRebase
line ] |
| 927 crbug.com/24182 fast/dom/prototype-chocolate.html [ NeedsRebaseline ] | 1014 crbug.com/24182 fast/dom/prototype-chocolate.html [ NeedsRebaseline ] |
| 928 crbug.com/24182 path/to/not-cycled-through-bots.html [ NeedsRebaseline ] | 1015 crbug.com/24182 path/to/not-cycled-through-bots.html [ NeedsRebaseline ] |
| 929 crbug.com/24182 path/to/locally-changed-lined.html [ NeedsRebaseline ] | 1016 crbug.com/24182 path/to/locally-changed-lined.html [ NeedsRebaseline ] |
| 930 """) | 1017 """) |
| 931 | 1018 |
| 932 self._write_test_file(test_port, 'fast/dom/prototype-taco.html', "Dummy
test contents") | 1019 self._write_test_file(test_port, 'fast/dom/prototype-taco.html', "Dummy
test contents") |
| 933 self._write_test_file(test_port, 'fast/dom/prototype-strawberry.html', "
Dummy test contents") | 1020 self._write_test_file(test_port, 'fast/dom/prototype-strawberry.html', "
Dummy test contents") |
| 934 self._write_test_file(test_port, 'fast/dom/prototype-chocolate.html', "D
ummy test contents") | 1021 self._write_test_file(test_port, 'fast/dom/prototype-chocolate.html', "D
ummy test contents") |
| 935 | 1022 |
| 1023 self.tool.executive = MockLineRemovingExecutive() |
| 1024 |
| 936 old_exact_matches = builders._exact_matches | 1025 old_exact_matches = builders._exact_matches |
| 937 try: | 1026 try: |
| 938 builders._exact_matches = { | 1027 builders._exact_matches = { |
| 939 "MOCK Leopard": {"port_name": "test-mac-leopard", "specifiers":
set(["mock-specifier"])}, | 1028 "MOCK Leopard": {"port_name": "test-mac-leopard", "specifiers":
set(["mock-specifier"])}, |
| 940 "MOCK SnowLeopard": {"port_name": "test-mac-snowleopard", "speci
fiers": set(["mock-specifier"])}, | 1029 "MOCK SnowLeopard": {"port_name": "test-mac-snowleopard", "speci
fiers": set(["mock-specifier"])}, |
| 941 } | 1030 } |
| 942 | 1031 |
| 943 self.command.tree_status = lambda: 'closed' | 1032 self.command.tree_status = lambda: 'closed' |
| 944 self.command.execute(MockOptions(optimize=True, verbose=False, move_
overwritten_baselines=False, results_directory=False, log_server=None), [], self
.tool) | 1033 self.command.execute(MockOptions(optimize=True, verbose=False, move_
overwritten_baselines=False, results_directory=False, log_server=None), [], self
.tool) |
| 945 self.assertEqual(self.tool.executive.calls, []) | 1034 self.assertEqual(self.tool.executive.calls, []) |
| (...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1055 test_port = self._setup_test_port() | 1144 test_port = self._setup_test_port() |
| 1056 | 1145 |
| 1057 old_builder_data = self.command.builder_data | 1146 old_builder_data = self.command.builder_data |
| 1058 | 1147 |
| 1059 def builder_data(): | 1148 def builder_data(): |
| 1060 self.command._builder_data['MOCK Leopard'] = self.command._builder_d
ata['MOCK SnowLeopard'] = LayoutTestResults.results_from_string("""ADD_RESULTS({ | 1149 self.command._builder_data['MOCK Leopard'] = self.command._builder_d
ata['MOCK SnowLeopard'] = LayoutTestResults.results_from_string("""ADD_RESULTS({ |
| 1061 "tests": { | 1150 "tests": { |
| 1062 "fast": { | 1151 "fast": { |
| 1063 "dom": { | 1152 "dom": { |
| 1064 "prototype-taco.html": { | 1153 "prototype-taco.html": { |
| 1065 "expected": "PASS", | 1154 "expected": "FAIL", |
| 1066 "actual": "PASS TEXT", | 1155 "actual": "PASS", |
| 1067 "is_unexpected": true | 1156 "is_unexpected": true |
| 1068 } | 1157 } |
| 1069 } | 1158 } |
| 1070 } | 1159 } |
| 1071 } | 1160 } |
| 1072 });""") | 1161 });""") |
| 1073 return self.command._builder_data | 1162 return self.command._builder_data |
| 1074 | 1163 |
| 1075 self.command.builder_data = builder_data | 1164 self.command.builder_data = builder_data |
| 1076 | 1165 |
| 1077 self.tool.filesystem.write_text_file(test_port.path_to_generic_test_expe
ctations_file(), """ | 1166 self.tool.filesystem.write_text_file(test_port.path_to_generic_test_expe
ctations_file(), """ |
| 1078 Bug(foo) fast/dom/prototype-taco.html [ NeedsRebaseline ] | 1167 Bug(foo) fast/dom/prototype-taco.html [ NeedsRebaseline ] |
| 1079 """) | 1168 """) |
| 1080 | 1169 |
| 1081 self._write_test_file(test_port, 'fast/dom/prototype-taco.html', "Dummy
test contents") | 1170 self._write_test_file(test_port, 'fast/dom/prototype-taco.html', "Dummy
test contents") |
| 1082 | 1171 |
| 1172 self.tool.executive = MockLineRemovingExecutive() |
| 1173 |
| 1083 old_exact_matches = builders._exact_matches | 1174 old_exact_matches = builders._exact_matches |
| 1084 try: | 1175 try: |
| 1085 builders._exact_matches = { | 1176 builders._exact_matches = { |
| 1086 "MOCK Leopard": {"port_name": "test-mac-leopard", "specifiers":
set(["mock-specifier"])}, | 1177 "MOCK Leopard": {"port_name": "test-mac-leopard", "specifiers":
set(["mock-specifier"])}, |
| 1087 "MOCK SnowLeopard": {"port_name": "test-mac-snowleopard", "speci
fiers": set(["mock-specifier"])}, | 1178 "MOCK SnowLeopard": {"port_name": "test-mac-snowleopard", "speci
fiers": set(["mock-specifier"])}, |
| 1088 } | 1179 } |
| 1089 | 1180 |
| 1090 self.command.tree_status = lambda: 'open' | 1181 self.command.tree_status = lambda: 'open' |
| 1091 self.command.execute(MockOptions(optimize=True, verbose=False, move_
overwritten_baselines=False, results_directory=False, log_server=None), [], self
.tool) | 1182 self.command.execute(MockOptions(optimize=True, verbose=False, move_
overwritten_baselines=False, results_directory=False, log_server=None), [], self
.tool) |
| 1092 self.assertEqual(self.tool.executive.calls, [ | 1183 self.assertEqual(self.tool.executive.calls, [ |
| 1093 [ | 1184 [['echo', 'optimize-baselines', '--no-modify-scm', '--suffixes',
'', 'fast/dom/prototype-taco.html']], |
| 1094 ['echo', 'copy-existing-baselines-internal', '--suffixes', '
txt', '--builder', 'MOCK Leopard', '--test', 'fast/dom/prototype-taco.html'], | |
| 1095 ['echo', 'copy-existing-baselines-internal', '--suffixes', '
txt', '--builder', 'MOCK SnowLeopard', '--test', 'fast/dom/prototype-taco.html']
, | |
| 1096 ], | |
| 1097 [ | |
| 1098 ['echo', 'rebaseline-test-internal', '--suffixes', 'txt', '-
-builder', 'MOCK Leopard', '--test', 'fast/dom/prototype-taco.html'], | |
| 1099 ['echo', 'rebaseline-test-internal', '--suffixes', 'txt', '-
-builder', 'MOCK SnowLeopard', '--test', 'fast/dom/prototype-taco.html'], | |
| 1100 ], | |
| 1101 [['echo', 'optimize-baselines', '--no-modify-scm', '--suffixes',
'txt', 'fast/dom/prototype-taco.html']], | |
| 1102 ['git', 'cl', 'upload', '-f'], | 1185 ['git', 'cl', 'upload', '-f'], |
| 1103 ['git', 'pull'], | 1186 ['git', 'pull'], |
| 1104 ['git', 'cl', 'dcommit', '-f'], | 1187 ['git', 'cl', 'dcommit', '-f'], |
| 1105 ['git', 'cl', 'set_close'], | 1188 ['git', 'cl', 'set_close'], |
| 1106 ]) | 1189 ]) |
| 1107 | 1190 |
| 1108 # The mac ports should both be removed since they're the only ones i
n builders._exact_matches. | 1191 # The mac ports should both be removed since they're the only ones i
n builders._exact_matches. |
| 1109 self.assertEqual(self.tool.filesystem.read_text_file(test_port.path_
to_generic_test_expectations_file()), """ | 1192 self.assertEqual(self.tool.filesystem.read_text_file(test_port.path_
to_generic_test_expectations_file()), """ |
| 1110 Bug(foo) [ Linux Win ] fast/dom/prototype-taco.html [ NeedsRebaseline ] | 1193 Bug(foo) [ Linux Win ] fast/dom/prototype-taco.html [ NeedsRebaseline ] |
| 1111 """) | 1194 """) |
| 1112 finally: | 1195 finally: |
| 1113 builders._exact_matches = old_exact_matches | 1196 builders._exact_matches = old_exact_matches |
| OLD | NEW |