| 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 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 101 | 101 |
| 102 class TestCopyExistingBaselinesInternal(_BaseTestCase): | 102 class TestCopyExistingBaselinesInternal(_BaseTestCase): |
| 103 command_constructor = CopyExistingBaselinesInternal | 103 command_constructor = CopyExistingBaselinesInternal |
| 104 | 104 |
| 105 def setUp(self): | 105 def setUp(self): |
| 106 super(TestCopyExistingBaselinesInternal, self).setUp() | 106 super(TestCopyExistingBaselinesInternal, self).setUp() |
| 107 | 107 |
| 108 def test_copying_overwritten_baseline(self): | 108 def test_copying_overwritten_baseline(self): |
| 109 self.tool.executive = MockExecutive2() | 109 self.tool.executive = MockExecutive2() |
| 110 | 110 |
| 111 # FIXME: crbug.com/279494. it's confusing that this is the test- port, a
nd not the regular mac10.10 port. Really all of the tests should be using the te
st ports. | 111 # FIXME: crbug.com/279494. it's confusing that this is the test- port, a
nd |
| 112 # not the regular mac10.10 port. Really all of the tests should be using |
| 113 # the test ports. |
| 112 port = self.tool.port_factory.get('test-mac-mac10.10') | 114 port = self.tool.port_factory.get('test-mac-mac10.10') |
| 113 self._write(port._filesystem.join(port.layout_tests_dir(), 'platform/tes
t-mac-mac10.10/failures/expected/image-expected.txt'), 'original mac10.11 result
') | 115 self._write(port._filesystem.join(port.layout_tests_dir(), |
| 116 'platform/test-mac-mac10.10/failures/e
xpected/image-expected.txt'), 'original mac10.11 result') |
| 114 | 117 |
| 115 old_exact_matches = builders._exact_matches | 118 old_exact_matches = builders._exact_matches |
| 116 oc = OutputCapture() | 119 oc = OutputCapture() |
| 117 try: | 120 try: |
| 118 builders._exact_matches = { | 121 builders._exact_matches = { |
| 119 "MOCK Mac10.10": {"port_name": "test-mac-mac10.10", "specifiers"
: set(["mock-specifier"])}, | 122 "MOCK Mac10.10": {"port_name": "test-mac-mac10.10", "specifiers"
: set(["mock-specifier"])}, |
| 120 "MOCK Mac10.11": {"port_name": "test-mac-mac10.11", "specifiers"
: set(["mock-specifier"])}, | 123 "MOCK Mac10.11": {"port_name": "test-mac-mac10.11", "specifiers"
: set(["mock-specifier"])}, |
| 121 } | 124 } |
| 122 | 125 |
| 123 options = MockOptions(builder="MOCK Mac10.11", suffixes="txt", verbo
se=True, test="failures/expected/image.html", results_directory=None) | 126 options = MockOptions(builder="MOCK Mac10.11", suffixes="txt", verbo
se=True, |
| 127 test="failures/expected/image.html", results_d
irectory=None) |
| 124 | 128 |
| 125 oc.capture_output() | 129 oc.capture_output() |
| 126 self.command.execute(options, [], self.tool) | 130 self.command.execute(options, [], self.tool) |
| 127 finally: | 131 finally: |
| 128 out, _, _ = oc.restore_output() | 132 out, _, _ = oc.restore_output() |
| 129 builders._exact_matches = old_exact_matches | 133 builders._exact_matches = old_exact_matches |
| 130 | 134 |
| 131 self.assertMultiLineEqual(self._read(self.tool.filesystem.join(port.layo
ut_tests_dir(), 'platform/test-mac-mac10.10/failures/expected/image-expected.txt
')), 'original mac10.11 result') | 135 self.assertMultiLineEqual(self._read(self.tool.filesystem.join(port.layo
ut_tests_dir(), |
| 136 'platform
/test-mac-mac10.10/failures/expected/image-expected.txt')), 'original mac10.11 r
esult') |
| 132 self.assertMultiLineEqual(out, '{"add": [], "remove-lines": [], "delete"
: []}\n') | 137 self.assertMultiLineEqual(out, '{"add": [], "remove-lines": [], "delete"
: []}\n') |
| 133 | 138 |
| 134 def test_copying_overwritten_baseline_to_multiple_locations(self): | 139 def test_copying_overwritten_baseline_to_multiple_locations(self): |
| 135 self.tool.executive = MockExecutive2() | 140 self.tool.executive = MockExecutive2() |
| 136 | 141 |
| 137 # FIXME: crbug.com/279494. it's confusing that this is the test- port, a
nd not the regular win port. Really all of the tests should be using the test po
rts. | 142 # FIXME: crbug.com/279494. it's confusing that this is the test- port, a
nd |
| 143 # not the regular win port. Really all of the tests should be using the |
| 144 # test ports. |
| 138 port = self.tool.port_factory.get('test-win-win7') | 145 port = self.tool.port_factory.get('test-win-win7') |
| 139 self._write(port._filesystem.join(port.layout_tests_dir(), 'platform/tes
t-win-win7/failures/expected/image-expected.txt'), 'original win7 result') | 146 self._write(port._filesystem.join(port.layout_tests_dir(), |
| 147 'platform/test-win-win7/failures/expec
ted/image-expected.txt'), 'original win7 result') |
| 140 | 148 |
| 141 old_exact_matches = builders._exact_matches | 149 old_exact_matches = builders._exact_matches |
| 142 oc = OutputCapture() | 150 oc = OutputCapture() |
| 143 try: | 151 try: |
| 144 builders._exact_matches = { | 152 builders._exact_matches = { |
| 145 "MOCK Mac10.10": {"port_name": "test-mac-mac10.10", "specifiers"
: set(["mock-specifier"])}, | 153 "MOCK Mac10.10": {"port_name": "test-mac-mac10.10", "specifiers"
: set(["mock-specifier"])}, |
| 146 "MOCK Trusty": {"port_name": "test-linux-trusty", "specifiers":
set(["mock-specifier"])}, | 154 "MOCK Trusty": {"port_name": "test-linux-trusty", "specifiers":
set(["mock-specifier"])}, |
| 147 "MOCK Precise": {"port_name": "test-linux-precise", "specifiers"
: set(["mock-specifier"])}, | 155 "MOCK Precise": {"port_name": "test-linux-precise", "specifiers"
: set(["mock-specifier"])}, |
| 148 "MOCK Win7": {"port_name": "test-win-win7", "specifiers": set(["
mock-specifier"])}, | 156 "MOCK Win7": {"port_name": "test-win-win7", "specifiers": set(["
mock-specifier"])}, |
| 149 } | 157 } |
| 150 | 158 |
| 151 options = MockOptions(builder="MOCK Win7", suffixes="txt", verbose=T
rue, test="failures/expected/image.html", results_directory=None) | 159 options = MockOptions(builder="MOCK Win7", suffixes="txt", verbose=T
rue, |
| 160 test="failures/expected/image.html", results_d
irectory=None) |
| 152 | 161 |
| 153 oc.capture_output() | 162 oc.capture_output() |
| 154 self.command.execute(options, [], self.tool) | 163 self.command.execute(options, [], self.tool) |
| 155 finally: | 164 finally: |
| 156 out, _, _ = oc.restore_output() | 165 out, _, _ = oc.restore_output() |
| 157 builders._exact_matches = old_exact_matches | 166 builders._exact_matches = old_exact_matches |
| 158 | 167 |
| 159 self.assertMultiLineEqual(self._read(self.tool.filesystem.join(port.layo
ut_tests_dir(), 'platform/test-linux-trusty/failures/expected/image-expected.txt
')), 'original win7 result') | 168 self.assertMultiLineEqual(self._read(self.tool.filesystem.join(port.layo
ut_tests_dir(), |
| 160 self.assertFalse(self.tool.filesystem.exists(self.tool.filesystem.join(p
ort.layout_tests_dir(), 'platform/test-linux-precise/userscripts/another-test-ex
pected.txt'))) | 169 'platform
/test-linux-trusty/failures/expected/image-expected.txt')), 'original win7 resul
t') |
| 161 self.assertFalse(self.tool.filesystem.exists(self.tool.filesystem.join(p
ort.layout_tests_dir(), 'platform/test-mac-mac10.10/userscripts/another-test-exp
ected.txt'))) | 170 self.assertFalse(self.tool.filesystem.exists(self.tool.filesystem.join( |
| 171 port.layout_tests_dir(), 'platform/test-linux-precise/userscripts/an
other-test-expected.txt'))) |
| 172 self.assertFalse(self.tool.filesystem.exists(self.tool.filesystem.join( |
| 173 port.layout_tests_dir(), 'platform/test-mac-mac10.10/userscripts/ano
ther-test-expected.txt'))) |
| 162 self.assertMultiLineEqual(out, '{"add": [], "remove-lines": [], "delete"
: []}\n') | 174 self.assertMultiLineEqual(out, '{"add": [], "remove-lines": [], "delete"
: []}\n') |
| 163 | 175 |
| 164 def test_no_copy_existing_baseline(self): | 176 def test_no_copy_existing_baseline(self): |
| 165 self.tool.executive = MockExecutive2() | 177 self.tool.executive = MockExecutive2() |
| 166 | 178 |
| 167 # FIXME: it's confusing that this is the test- port, and not the regular
win port. Really all of the tests should be using the test ports. | 179 # FIXME: it's confusing that this is the test- port, and not the regular |
| 180 # win port. Really all of the tests should be using the test ports. |
| 168 port = self.tool.port_factory.get('test-win-win7') | 181 port = self.tool.port_factory.get('test-win-win7') |
| 169 self._write(port._filesystem.join(port.layout_tests_dir(), 'platform/tes
t-win-win7/failures/expected/image-expected.txt'), 'original win7 result') | 182 self._write(port._filesystem.join(port.layout_tests_dir(), |
| 183 'platform/test-win-win7/failures/expec
ted/image-expected.txt'), 'original win7 result') |
| 170 | 184 |
| 171 old_exact_matches = builders._exact_matches | 185 old_exact_matches = builders._exact_matches |
| 172 oc = OutputCapture() | 186 oc = OutputCapture() |
| 173 try: | 187 try: |
| 174 builders._exact_matches = { | 188 builders._exact_matches = { |
| 175 "MOCK Mac10.10": {"port_name": "test-mac-mac10.10", "specifiers"
: set(["mock-specifier"])}, | 189 "MOCK Mac10.10": {"port_name": "test-mac-mac10.10", "specifiers"
: set(["mock-specifier"])}, |
| 176 "MOCK Trusty": {"port_name": "test-linux-trusty", "specifiers":
set(["mock-specifier"])}, | 190 "MOCK Trusty": {"port_name": "test-linux-trusty", "specifiers":
set(["mock-specifier"])}, |
| 177 "MOCK Win7": {"port_name": "test-win-win7", "specifiers": set(["
mock-specifier"])}, | 191 "MOCK Win7": {"port_name": "test-win-win7", "specifiers": set(["
mock-specifier"])}, |
| 178 } | 192 } |
| 179 | 193 |
| 180 options = MockOptions(builder="MOCK Win7", suffixes="txt", verbose=T
rue, test="failures/expected/image.html", results_directory=None) | 194 options = MockOptions(builder="MOCK Win7", suffixes="txt", verbose=T
rue, |
| 195 test="failures/expected/image.html", results_d
irectory=None) |
| 181 | 196 |
| 182 oc.capture_output() | 197 oc.capture_output() |
| 183 self.command.execute(options, [], self.tool) | 198 self.command.execute(options, [], self.tool) |
| 184 finally: | 199 finally: |
| 185 out, _, _ = oc.restore_output() | 200 out, _, _ = oc.restore_output() |
| 186 builders._exact_matches = old_exact_matches | 201 builders._exact_matches = old_exact_matches |
| 187 | 202 |
| 188 self.assertMultiLineEqual(self._read(self.tool.filesystem.join(port.layo
ut_tests_dir(), 'platform/test-linux-trusty/failures/expected/image-expected.txt
')), 'original win7 result') | 203 self.assertMultiLineEqual(self._read(self.tool.filesystem.join(port.layo
ut_tests_dir(), |
| 189 self.assertMultiLineEqual(self._read(self.tool.filesystem.join(port.layo
ut_tests_dir(), 'platform/test-win-win7/failures/expected/image-expected.txt')),
'original win7 result') | 204 'platform
/test-linux-trusty/failures/expected/image-expected.txt')), 'original win7 resul
t') |
| 190 self.assertFalse(self.tool.filesystem.exists(self.tool.filesystem.join(p
ort.layout_tests_dir(), 'platform/test-mac-mac10.10/userscripts/another-test-exp
ected.txt'))) | 205 self.assertMultiLineEqual(self._read(self.tool.filesystem.join(port.layo
ut_tests_dir(), |
| 206 'platform
/test-win-win7/failures/expected/image-expected.txt')), 'original win7 result') |
| 207 self.assertFalse(self.tool.filesystem.exists(self.tool.filesystem.join( |
| 208 port.layout_tests_dir(), 'platform/test-mac-mac10.10/userscripts/ano
ther-test-expected.txt'))) |
| 191 self.assertMultiLineEqual(out, '{"add": [], "remove-lines": [], "delete"
: []}\n') | 209 self.assertMultiLineEqual(out, '{"add": [], "remove-lines": [], "delete"
: []}\n') |
| 192 | 210 |
| 193 def test_no_copy_skipped_test(self): | 211 def test_no_copy_skipped_test(self): |
| 194 self.tool.executive = MockExecutive2() | 212 self.tool.executive = MockExecutive2() |
| 195 port = self.tool.port_factory.get('test-win-win7') | 213 port = self.tool.port_factory.get('test-win-win7') |
| 196 fs = self.tool.filesystem | 214 fs = self.tool.filesystem |
| 197 self._write(fs.join(port.layout_tests_dir(), 'platform/test-win-win7/fai
lures/expected/image-expected.txt'), 'original win7 result') | 215 self._write(fs.join(port.layout_tests_dir(), 'platform/test-win-win7/fai
lures/expected/image-expected.txt'), 'original win7 result') |
| 198 expectations_path = fs.join(port.path_to_generic_test_expectations_file(
)) | 216 expectations_path = fs.join(port.path_to_generic_test_expectations_file(
)) |
| 199 self._write(expectations_path, ( | 217 self._write(expectations_path, ( |
| 200 "[ Win ] failures/expected/image.html [ Failure ]\n" | 218 "[ Win ] failures/expected/image.html [ Failure ]\n" |
| 201 "[ Linux ] failures/expected/image.html [ Skip ]\n")) | 219 "[ Linux ] failures/expected/image.html [ Skip ]\n")) |
| 202 old_exact_matches = builders._exact_matches | 220 old_exact_matches = builders._exact_matches |
| 203 oc = OutputCapture() | 221 oc = OutputCapture() |
| 204 try: | 222 try: |
| 205 builders._exact_matches = { | 223 builders._exact_matches = { |
| 206 "MOCK Mac10.10": {"port_name": "test-mac-mac10.10", "specifiers"
: set(["mock-specifier"])}, | 224 "MOCK Mac10.10": {"port_name": "test-mac-mac10.10", "specifiers"
: set(["mock-specifier"])}, |
| 207 "MOCK Trusty": {"port_name": "test-linux-trusty", "specifiers":
set(["mock-specifier"])}, | 225 "MOCK Trusty": {"port_name": "test-linux-trusty", "specifiers":
set(["mock-specifier"])}, |
| 208 "MOCK Precise": {"port_name": "test-linux-precise", "specifiers"
: set(["mock-specifier"])}, | 226 "MOCK Precise": {"port_name": "test-linux-precise", "specifiers"
: set(["mock-specifier"])}, |
| 209 "MOCK Win7": {"port_name": "test-win-win7", "specifiers": set(["
mock-specifier"])}, | 227 "MOCK Win7": {"port_name": "test-win-win7", "specifiers": set(["
mock-specifier"])}, |
| 210 } | 228 } |
| 211 | 229 |
| 212 options = MockOptions(builder="MOCK Win7", suffixes="txt", verbose=T
rue, test="failures/expected/image.html", results_directory=None) | 230 options = MockOptions(builder="MOCK Win7", suffixes="txt", verbose=T
rue, |
| 231 test="failures/expected/image.html", results_d
irectory=None) |
| 213 | 232 |
| 214 oc.capture_output() | 233 oc.capture_output() |
| 215 self.command.execute(options, [], self.tool) | 234 self.command.execute(options, [], self.tool) |
| 216 finally: | 235 finally: |
| 217 out, _, _ = oc.restore_output() | 236 out, _, _ = oc.restore_output() |
| 218 builders._exact_matches = old_exact_matches | 237 builders._exact_matches = old_exact_matches |
| 219 | 238 |
| 220 self.assertFalse(fs.exists(fs.join(port.layout_tests_dir(), 'platform/te
st-mac-mac10.10/failures/expected/image-expected.txt'))) | 239 self.assertFalse(fs.exists(fs.join(port.layout_tests_dir(), 'platform/te
st-mac-mac10.10/failures/expected/image-expected.txt'))) |
| 221 self.assertFalse(fs.exists(fs.join(port.layout_tests_dir(), 'platform/te
st-linux-trusty/failures/expected/image-expected.txt'))) | 240 self.assertFalse(fs.exists(fs.join(port.layout_tests_dir(), 'platform/te
st-linux-trusty/failures/expected/image-expected.txt'))) |
| 222 self.assertFalse(fs.exists(fs.join(port.layout_tests_dir(), 'platform/te
st-linux-precise/failures/expected/image-expected.txt'))) | 241 self.assertFalse(fs.exists(fs.join(port.layout_tests_dir(), |
| 242 'platform/test-linux-precise/failures
/expected/image-expected.txt'))) |
| 223 self.assertEqual(self._read(fs.join(port.layout_tests_dir(), 'platform/t
est-win-win7/failures/expected/image-expected.txt')), | 243 self.assertEqual(self._read(fs.join(port.layout_tests_dir(), 'platform/t
est-win-win7/failures/expected/image-expected.txt')), |
| 224 'original win7 result') | 244 'original win7 result') |
| 225 | 245 |
| 226 | 246 |
| 227 class TestRebaselineTest(_BaseTestCase): | 247 class TestRebaselineTest(_BaseTestCase): |
| 228 command_constructor = RebaselineTest # AKA webkit-patch rebaseline-test-int
ernal | 248 command_constructor = RebaselineTest # AKA webkit-patch rebaseline-test-int
ernal |
| 229 | 249 |
| 230 def setUp(self): | 250 def setUp(self): |
| 231 super(TestRebaselineTest, self).setUp() | 251 super(TestRebaselineTest, self).setUp() |
| 232 self.options = MockOptions(builder="WebKit Mac10.11", test="userscripts/
another-test.html", suffixes="txt", results_directory=None) | 252 self.options = MockOptions(builder="WebKit Mac10.11", test="userscripts/
another-test.html", |
| 253 suffixes="txt", results_directory=None) |
| 233 | 254 |
| 234 def test_baseline_directory(self): | 255 def test_baseline_directory(self): |
| 235 command = self.command | 256 command = self.command |
| 236 self.assertMultiLineEqual(command._baseline_directory("WebKit Mac10.11")
, "/mock-checkout/third_party/WebKit/LayoutTests/platform/mac") | 257 self.assertMultiLineEqual(command._baseline_directory("WebKit Mac10.11")
, |
| 237 self.assertMultiLineEqual(command._baseline_directory("WebKit Mac10.10")
, "/mock-checkout/third_party/WebKit/LayoutTests/platform/mac-mac10.10") | 258 "/mock-checkout/third_party/WebKit/LayoutTests
/platform/mac") |
| 238 self.assertMultiLineEqual(command._baseline_directory("WebKit Linux Trus
ty"), "/mock-checkout/third_party/WebKit/LayoutTests/platform/linux") | 259 self.assertMultiLineEqual(command._baseline_directory("WebKit Mac10.10")
, |
| 239 self.assertMultiLineEqual(command._baseline_directory("WebKit Linux"), "
/mock-checkout/third_party/WebKit/LayoutTests/platform/linux-precise") | 260 "/mock-checkout/third_party/WebKit/LayoutTests
/platform/mac-mac10.10") |
| 261 self.assertMultiLineEqual(command._baseline_directory("WebKit Linux Trus
ty"), |
| 262 "/mock-checkout/third_party/WebKit/LayoutTests
/platform/linux") |
| 263 self.assertMultiLineEqual(command._baseline_directory("WebKit Linux"), |
| 264 "/mock-checkout/third_party/WebKit/LayoutTests
/platform/linux-precise") |
| 240 | 265 |
| 241 def test_rebaseline_updates_expectations_file_noop(self): | 266 def test_rebaseline_updates_expectations_file_noop(self): |
| 242 self._zero_out_test_expectations() | 267 self._zero_out_test_expectations() |
| 243 self._write(self.mac_expectations_path, """Bug(B) [ Mac Linux Win7 Debug
] fast/dom/Window/window-postmessage-clone-really-deep-array.html [ Pass ] | 268 self._write(self.mac_expectations_path, """Bug(B) [ Mac Linux Win7 Debug
] fast/dom/Window/window-postmessage-clone-really-deep-array.html [ Pass ] |
| 244 Bug(A) [ Debug ] : fast/css/large-list-of-rules-crash.html [ Failure ] | 269 Bug(A) [ Debug ] : fast/css/large-list-of-rules-crash.html [ Failure ] |
| 245 """) | 270 """) |
| 246 self._write("fast/dom/Window/window-postmessage-clone-really-deep-array.
html", "Dummy test contents") | 271 self._write("fast/dom/Window/window-postmessage-clone-really-deep-array.
html", "Dummy test contents") |
| 247 self._write("fast/css/large-list-of-rules-crash.html", "Dummy test conte
nts") | 272 self._write("fast/css/large-list-of-rules-crash.html", "Dummy test conte
nts") |
| 248 self._write("userscripts/another-test.html", "Dummy test contents") | 273 self._write("userscripts/another-test.html", "Dummy test contents") |
| 249 | 274 |
| 250 self.options.suffixes = "png,wav,txt" | 275 self.options.suffixes = "png,wav,txt" |
| 251 self.command._rebaseline_test_and_update_expectations(self.options) | 276 self.command._rebaseline_test_and_update_expectations(self.options) |
| 252 | 277 |
| 253 self.assertItemsEqual(self.tool.web.urls_fetched, | 278 self.assertItemsEqual(self.tool.web.urls_fetched, |
| 254 [self.WEB_PREFIX + '/userscripts/another-test-actual.png', | 279 [self.WEB_PREFIX + '/userscripts/another-test-actu
al.png', |
| 255 self.WEB_PREFIX + '/userscripts/another-test-actual.wav', | 280 self.WEB_PREFIX + '/userscripts/another-test-actu
al.wav', |
| 256 self.WEB_PREFIX + '/userscripts/another-test-actual.txt']) | 281 self.WEB_PREFIX + '/userscripts/another-test-actu
al.txt']) |
| 257 new_expectations = self._read(self.mac_expectations_path) | 282 new_expectations = self._read(self.mac_expectations_path) |
| 258 self.assertMultiLineEqual(new_expectations, """Bug(B) [ Mac Linux Win7 D
ebug ] fast/dom/Window/window-postmessage-clone-really-deep-array.html [ Pass ] | 283 self.assertMultiLineEqual(new_expectations, """Bug(B) [ Mac Linux Win7 D
ebug ] fast/dom/Window/window-postmessage-clone-really-deep-array.html [ Pass ] |
| 259 Bug(A) [ Debug ] : fast/css/large-list-of-rules-crash.html [ Failure ] | 284 Bug(A) [ Debug ] : fast/css/large-list-of-rules-crash.html [ Failure ] |
| 260 """) | 285 """) |
| 261 | 286 |
| 262 def test_rebaseline_test(self): | 287 def test_rebaseline_test(self): |
| 263 self.command._rebaseline_test("WebKit Linux Trusty", "userscripts/anothe
r-test.html", "txt", self.WEB_PREFIX) | 288 self.command._rebaseline_test("WebKit Linux Trusty", "userscripts/anothe
r-test.html", "txt", self.WEB_PREFIX) |
| 264 self.assertItemsEqual(self.tool.web.urls_fetched, [self.WEB_PREFIX + '/u
serscripts/another-test-actual.txt']) | 289 self.assertItemsEqual(self.tool.web.urls_fetched, [self.WEB_PREFIX + '/u
serscripts/another-test-actual.txt']) |
| 265 | 290 |
| 266 def test_rebaseline_test_with_results_directory(self): | 291 def test_rebaseline_test_with_results_directory(self): |
| 267 self._write("userscripts/another-test.html", "test data") | 292 self._write("userscripts/another-test.html", "test data") |
| 268 self._write(self.mac_expectations_path, "Bug(x) [ Mac ] userscripts/anot
her-test.html [ Failure ]\nbug(z) [ Linux ] userscripts/another-test.html [ Fail
ure ]\n") | 293 self._write(self.mac_expectations_path, |
| 294 "Bug(x) [ Mac ] userscripts/another-test.html [ Failure ]\nb
ug(z) [ Linux ] userscripts/another-test.html [ Failure ]\n") |
| 269 self.options.results_directory = '/tmp' | 295 self.options.results_directory = '/tmp' |
| 270 self.command._rebaseline_test_and_update_expectations(self.options) | 296 self.command._rebaseline_test_and_update_expectations(self.options) |
| 271 self.assertItemsEqual(self.tool.web.urls_fetched, ['file:///tmp/userscri
pts/another-test-actual.txt']) | 297 self.assertItemsEqual(self.tool.web.urls_fetched, ['file:///tmp/userscri
pts/another-test-actual.txt']) |
| 272 | 298 |
| 273 def test_rebaseline_reftest(self): | 299 def test_rebaseline_reftest(self): |
| 274 self._write("userscripts/another-test.html", "test data") | 300 self._write("userscripts/another-test.html", "test data") |
| 275 self._write("userscripts/another-test-expected.html", "generic result") | 301 self._write("userscripts/another-test-expected.html", "generic result") |
| 276 OutputCapture().assert_outputs(self, self.command._rebaseline_test_and_u
pdate_expectations, args=[self.options], | 302 OutputCapture().assert_outputs(self, self.command._rebaseline_test_and_u
pdate_expectations, args=[self.options], |
| 277 expected_logs="Cannot rebaseline reftest: userscripts/another-test.h
tml\n") | 303 expected_logs="Cannot rebaseline reftest:
userscripts/another-test.html\n") |
| 278 self.assertDictEqual(self.command._scm_changes, {'add': [], 'remove-line
s': [], "delete": []}) | 304 self.assertDictEqual(self.command._scm_changes, {'add': [], 'remove-line
s': [], "delete": []}) |
| 279 | 305 |
| 280 def test_rebaseline_test_and_print_scm_changes(self): | 306 def test_rebaseline_test_and_print_scm_changes(self): |
| 281 self.command._print_scm_changes = True | 307 self.command._print_scm_changes = True |
| 282 self.command._scm_changes = {'add': [], 'delete': []} | 308 self.command._scm_changes = {'add': [], 'delete': []} |
| 283 self.tool._scm.exists = lambda x: False | 309 self.tool._scm.exists = lambda x: False |
| 284 | 310 |
| 285 self.command._rebaseline_test("WebKit Linux Trusty", "userscripts/anothe
r-test.html", "txt", None) | 311 self.command._rebaseline_test("WebKit Linux Trusty", "userscripts/anothe
r-test.html", "txt", None) |
| 286 | 312 |
| 287 self.assertDictEqual(self.command._scm_changes, {'add': ['/mock-checkout
/third_party/WebKit/LayoutTests/platform/linux/userscripts/another-test-expected
.txt'], 'delete': []}) | 313 self.assertDictEqual(self.command._scm_changes, { |
| 314 'add': ['/mock-checkout/third_party/WebKit/LayoutTe
sts/platform/linux/userscripts/another-test-expected.txt'], 'delete': []}) |
| 288 | 315 |
| 289 def test_rebaseline_test_internal_with_port_that_lacks_buildbot(self): | 316 def test_rebaseline_test_internal_with_port_that_lacks_buildbot(self): |
| 290 self.tool.executive = MockExecutive2() | 317 self.tool.executive = MockExecutive2() |
| 291 | 318 |
| 292 # FIXME: it's confusing that this is the test- port, and not the regular
win port. Really all of the tests should be using the test ports. | 319 # FIXME: it's confusing that this is the test- port, and not the regular |
| 320 # win port. Really all of the tests should be using the test ports. |
| 293 port = self.tool.port_factory.get('test-win-win7') | 321 port = self.tool.port_factory.get('test-win-win7') |
| 294 self._write(port._filesystem.join(port.layout_tests_dir(), 'platform/tes
t-win-win10/failures/expected/image-expected.txt'), 'original win10 result') | 322 self._write(port._filesystem.join(port.layout_tests_dir(), |
| 323 'platform/test-win-win10/failures/expe
cted/image-expected.txt'), 'original win10 result') |
| 295 | 324 |
| 296 old_exact_matches = builders._exact_matches | 325 old_exact_matches = builders._exact_matches |
| 297 oc = OutputCapture() | 326 oc = OutputCapture() |
| 298 try: | 327 try: |
| 299 builders._exact_matches = { | 328 builders._exact_matches = { |
| 300 "MOCK Win7": {"port_name": "test-win-win7"}, | 329 "MOCK Win7": {"port_name": "test-win-win7"}, |
| 301 "MOCK Win10": {"port_name": "test-win-win10"}, | 330 "MOCK Win10": {"port_name": "test-win-win10"}, |
| 302 } | 331 } |
| 303 | 332 |
| 304 options = MockOptions(optimize=True, builder="MOCK Win10", suffixes=
"txt", | 333 options = MockOptions(optimize=True, builder="MOCK Win10", suffixes=
"txt", |
| 305 verbose=True, test="failures/expected/image.html", results_direc
tory=None) | 334 verbose=True, test="failures/expected/image.ht
ml", results_directory=None) |
| 306 | 335 |
| 307 oc.capture_output() | 336 oc.capture_output() |
| 308 self.command.execute(options, [], self.tool) | 337 self.command.execute(options, [], self.tool) |
| 309 finally: | 338 finally: |
| 310 out, _, _ = oc.restore_output() | 339 out, _, _ = oc.restore_output() |
| 311 builders._exact_matches = old_exact_matches | 340 builders._exact_matches = old_exact_matches |
| 312 | 341 |
| 313 self.assertMultiLineEqual(self._read(self.tool.filesystem.join(port.layo
ut_tests_dir(), 'platform/test-win-win10/failures/expected/image-expected.txt'))
, 'MOCK Web result, convert 404 to None=True') | 342 self.assertMultiLineEqual(self._read(self.tool.filesystem.join(port.layo
ut_tests_dir( |
| 314 self.assertFalse(self.tool.filesystem.exists(self.tool.filesystem.join(p
ort.layout_tests_dir(), 'platform/test-win-win7/failures/expected/image-expected
.txt'))) | 343 ), 'platform/test-win-win10/failures/expected/image-expected.txt')), 'MO
CK Web result, convert 404 to None=True') |
| 315 self.assertMultiLineEqual(out, '{"add": [], "remove-lines": [{"test": "f
ailures/expected/image.html", "builder": "MOCK Win10"}], "delete": []}\n') | 344 self.assertFalse(self.tool.filesystem.exists(self.tool.filesystem.join( |
| 345 port.layout_tests_dir(), 'platform/test-win-win7/failures/expected/i
mage-expected.txt'))) |
| 346 self.assertMultiLineEqual( |
| 347 out, '{"add": [], "remove-lines": [{"test": "failures/expected/image
.html", "builder": "MOCK Win10"}], "delete": []}\n') |
| 316 | 348 |
| 317 | 349 |
| 318 class TestAbstractParallelRebaselineCommand(_BaseTestCase): | 350 class TestAbstractParallelRebaselineCommand(_BaseTestCase): |
| 319 command_constructor = AbstractParallelRebaselineCommand | 351 command_constructor = AbstractParallelRebaselineCommand |
| 320 | 352 |
| 321 def test_builders_to_fetch_from(self): | 353 def test_builders_to_fetch_from(self): |
| 322 old_exact_matches = builders._exact_matches | 354 old_exact_matches = builders._exact_matches |
| 323 try: | 355 try: |
| 324 builders._exact_matches = { | 356 builders._exact_matches = { |
| 325 "MOCK Win10": {"port_name": "test-win-win10"}, | 357 "MOCK Win10": {"port_name": "test-win-win10"}, |
| 326 "MOCK Win7": {"port_name": "test-win-win7"}, | 358 "MOCK Win7": {"port_name": "test-win-win7"}, |
| 327 "MOCK Win7 (dbg)(1)": {"port_name": "test-win-win7"}, | 359 "MOCK Win7 (dbg)(1)": {"port_name": "test-win-win7"}, |
| 328 "MOCK Win7 (dbg)(2)": {"port_name": "test-win-win7"}, | 360 "MOCK Win7 (dbg)(2)": {"port_name": "test-win-win7"}, |
| 329 } | 361 } |
| 330 | 362 |
| 331 builders_to_fetch = self.command._builders_to_fetch_from(["MOCK Win1
0", "MOCK Win7 (dbg)(1)", "MOCK Win7 (dbg)(2)", "MOCK Win7"]) | 363 builders_to_fetch = self.command._builders_to_fetch_from( |
| 364 ["MOCK Win10", "MOCK Win7 (dbg)(1)", "MOCK Win7 (dbg)(2)", "MOCK
Win7"]) |
| 332 self.assertEqual(builders_to_fetch, ["MOCK Win7", "MOCK Win10"]) | 365 self.assertEqual(builders_to_fetch, ["MOCK Win7", "MOCK Win10"]) |
| 333 finally: | 366 finally: |
| 334 builders._exact_matches = old_exact_matches | 367 builders._exact_matches = old_exact_matches |
| 335 | 368 |
| 336 | 369 |
| 337 class TestRebaselineJson(_BaseTestCase): | 370 class TestRebaselineJson(_BaseTestCase): |
| 338 command_constructor = RebaselineJson | 371 command_constructor = RebaselineJson |
| 339 | 372 |
| 340 def setUp(self): | 373 def setUp(self): |
| 341 super(TestRebaselineJson, self).setUp() | 374 super(TestRebaselineJson, self).setUp() |
| (...skipping 24 matching lines...) Expand all Loading... |
| 366 });""") | 399 });""") |
| 367 return self.command._builder_data | 400 return self.command._builder_data |
| 368 | 401 |
| 369 self.command.builder_data = builder_data | 402 self.command.builder_data = builder_data |
| 370 | 403 |
| 371 options = MockOptions(optimize=True, verbose=True, results_directory=Non
e) | 404 options = MockOptions(optimize=True, verbose=True, results_directory=Non
e) |
| 372 | 405 |
| 373 self._write(self.mac_expectations_path, "Bug(x) userscripts/first-test.h
tml [ Failure ]\n") | 406 self._write(self.mac_expectations_path, "Bug(x) userscripts/first-test.h
tml [ Failure ]\n") |
| 374 self._write("userscripts/first-test.html", "Dummy test contents") | 407 self._write("userscripts/first-test.html", "Dummy test contents") |
| 375 | 408 |
| 376 self.command._rebaseline(options, {"userscripts/first-test.html": {"MOC
K builder": ["txt", "png"]}}) | 409 self.command._rebaseline(options, {"userscripts/first-test.html": {"MOCK
builder": ["txt", "png"]}}) |
| 377 | 410 |
| 378 self.assertEqual(self.tool.executive.calls, []) | 411 self.assertEqual(self.tool.executive.calls, []) |
| 379 | 412 |
| 380 def test_rebaseline_all(self): | 413 def test_rebaseline_all(self): |
| 381 self._setup_mock_builder_data() | 414 self._setup_mock_builder_data() |
| 382 | 415 |
| 383 options = MockOptions(optimize=True, verbose=True, results_directory=Non
e) | 416 options = MockOptions(optimize=True, verbose=True, results_directory=Non
e) |
| 384 self._write("userscripts/first-test.html", "Dummy test contents") | 417 self._write("userscripts/first-test.html", "Dummy test contents") |
| 385 self.command._rebaseline(options, {"userscripts/first-test.html": {"MOC
K builder": ["txt", "png"]}}) | 418 self.command._rebaseline(options, {"userscripts/first-test.html": {"MOCK
builder": ["txt", "png"]}}) |
| 386 | 419 |
| 387 # Note that we have one run_in_parallel() call followed by a run_command
() | 420 # Note that we have one run_in_parallel() call followed by a run_command
() |
| 388 self.assertEqual(self.tool.executive.calls, | 421 self.assertEqual(self.tool.executive.calls, |
| 389 [[['python', 'echo', 'copy-existing-baselines-internal', '--suffixes
', 'txt,png', '--builder', 'MOCK builder', '--test', 'userscripts/first-test.htm
l', '--verbose']], | 422 [[['python', 'echo', 'copy-existing-baselines-internal'
, '--suffixes', 'txt,png', '--builder', 'MOCK builder', '--test', 'userscripts/f
irst-test.html', '--verbose']], |
| 390 [['python', 'echo', 'rebaseline-test-internal', '--suffixes', 'txt,
png', '--builder', 'MOCK builder', '--test', 'userscripts/first-test.html', '--v
erbose']], | 423 [['python', 'echo', 'rebaseline-test-internal', '--suf
fixes', 'txt,png', '--builder', |
| 391 [['python', 'echo', 'optimize-baselines', '--no-modify-scm', '--suf
fixes', 'txt,png', 'userscripts/first-test.html', '--verbose']]]) | 424 'MOCK builder', '--test', 'userscripts/first-test.ht
ml', '--verbose']], |
| 425 [['python', 'echo', 'optimize-baselines', '--no-mod
ify-scm', '--suffixes', 'txt,png', 'userscripts/first-test.html', '--verbose']]]
) |
| 392 | 426 |
| 393 def test_rebaseline_debug(self): | 427 def test_rebaseline_debug(self): |
| 394 self._setup_mock_builder_data() | 428 self._setup_mock_builder_data() |
| 395 | 429 |
| 396 options = MockOptions(optimize=True, verbose=True, results_directory=Non
e) | 430 options = MockOptions(optimize=True, verbose=True, results_directory=Non
e) |
| 397 self._write("userscripts/first-test.html", "Dummy test contents") | 431 self._write("userscripts/first-test.html", "Dummy test contents") |
| 398 self.command._rebaseline(options, {"userscripts/first-test.html": {"MOC
K builder (Debug)": ["txt", "png"]}}) | 432 self.command._rebaseline(options, {"userscripts/first-test.html": {"MOCK
builder (Debug)": ["txt", "png"]}}) |
| 399 | 433 |
| 400 # Note that we have one run_in_parallel() call followed by a run_command
() | 434 # Note that we have one run_in_parallel() call followed by a run_command
() |
| 401 self.assertEqual(self.tool.executive.calls, | 435 self.assertEqual(self.tool.executive.calls, |
| 402 [[['python', 'echo', 'copy-existing-baselines-internal', '--suffixes
', 'txt,png', '--builder', 'MOCK builder (Debug)', '--test', 'userscripts/first-
test.html', '--verbose']], | 436 [[['python', 'echo', 'copy-existing-baselines-internal'
, '--suffixes', 'txt,png', '--builder', 'MOCK builder (Debug)', '--test', 'users
cripts/first-test.html', '--verbose']], |
| 403 [['python', 'echo', 'rebaseline-test-internal', '--suffixes', 'txt,
png', '--builder', 'MOCK builder (Debug)', '--test', 'userscripts/first-test.htm
l', '--verbose']], | 437 [['python', 'echo', 'rebaseline-test-internal', '--suf
fixes', 'txt,png', '--builder', |
| 404 [['python', 'echo', 'optimize-baselines', '--no-modify-scm', '--suf
fixes', 'txt,png', 'userscripts/first-test.html', '--verbose']]]) | 438 'MOCK builder (Debug)', '--test', 'userscripts/first
-test.html', '--verbose']], |
| 439 [['python', 'echo', 'optimize-baselines', '--no-mod
ify-scm', '--suffixes', 'txt,png', 'userscripts/first-test.html', '--verbose']]]
) |
| 405 | 440 |
| 406 def test_no_optimize(self): | 441 def test_no_optimize(self): |
| 407 self._setup_mock_builder_data() | 442 self._setup_mock_builder_data() |
| 408 | 443 |
| 409 options = MockOptions(optimize=False, verbose=True, results_directory=No
ne) | 444 options = MockOptions(optimize=False, verbose=True, results_directory=No
ne) |
| 410 self._write("userscripts/first-test.html", "Dummy test contents") | 445 self._write("userscripts/first-test.html", "Dummy test contents") |
| 411 self.command._rebaseline(options, {"userscripts/first-test.html": {"MOC
K builder (Debug)": ["txt", "png"]}}) | 446 self.command._rebaseline(options, {"userscripts/first-test.html": {"MOCK
builder (Debug)": ["txt", "png"]}}) |
| 412 | 447 |
| 413 # Note that we have only one run_in_parallel() call | 448 # Note that we have only one run_in_parallel() call |
| 414 self.assertEqual(self.tool.executive.calls, | 449 self.assertEqual(self.tool.executive.calls, |
| 415 [[['python', 'echo', 'copy-existing-baselines-internal', '--suffixes
', 'txt,png', '--builder', 'MOCK builder (Debug)', '--test', 'userscripts/first-
test.html', '--verbose']], | 450 [[['python', 'echo', 'copy-existing-baselines-internal'
, '--suffixes', 'txt,png', '--builder', 'MOCK builder (Debug)', '--test', 'users
cripts/first-test.html', '--verbose']], |
| 416 [['python', 'echo', 'rebaseline-test-internal', '--suffixes', 'txt,
png', '--builder', 'MOCK builder (Debug)', '--test', 'userscripts/first-test.htm
l', '--verbose']]]) | 451 [['python', 'echo', 'rebaseline-test-internal', '--suf
fixes', 'txt,png', '--builder', 'MOCK builder (Debug)', '--test', 'userscripts/f
irst-test.html', '--verbose']]]) |
| 417 | 452 |
| 418 def test_results_directory(self): | 453 def test_results_directory(self): |
| 419 self._setup_mock_builder_data() | 454 self._setup_mock_builder_data() |
| 420 | 455 |
| 421 options = MockOptions(optimize=False, verbose=True, results_directory='/
tmp') | 456 options = MockOptions(optimize=False, verbose=True, results_directory='/
tmp') |
| 422 self._write("userscripts/first-test.html", "Dummy test contents") | 457 self._write("userscripts/first-test.html", "Dummy test contents") |
| 423 self.command._rebaseline(options, {"userscripts/first-test.html": {"MOC
K builder": ["txt", "png"]}}) | 458 self.command._rebaseline(options, {"userscripts/first-test.html": {"MOCK
builder": ["txt", "png"]}}) |
| 424 | 459 |
| 425 # Note that we have only one run_in_parallel() call | 460 # Note that we have only one run_in_parallel() call |
| 426 self.assertEqual(self.tool.executive.calls, | 461 self.assertEqual(self.tool.executive.calls, |
| 427 [[['python', 'echo', 'copy-existing-baselines-internal', '--suffixes
', 'txt,png', '--builder', 'MOCK builder', '--test', 'userscripts/first-test.htm
l', '--results-directory', '/tmp', '--verbose']], | 462 [[['python', 'echo', 'copy-existing-baselines-internal'
, '--suffixes', 'txt,png', '--builder', 'MOCK builder', '--test', 'userscripts/f
irst-test.html', '--results-directory', '/tmp', '--verbose']], |
| 428 [['python', 'echo', 'rebaseline-test-internal', '--suffixes', 'txt,
png', '--builder', 'MOCK builder', '--test', 'userscripts/first-test.html', '--r
esults-directory', '/tmp', '--verbose']]]) | 463 [['python', 'echo', 'rebaseline-test-internal', '--suf
fixes', 'txt,png', '--builder', 'MOCK builder', '--test', 'userscripts/first-tes
t.html', '--results-directory', '/tmp', '--verbose']]]) |
| 464 |
| 429 | 465 |
| 430 class TestRebaselineJsonUpdatesExpectationsFiles(_BaseTestCase): | 466 class TestRebaselineJsonUpdatesExpectationsFiles(_BaseTestCase): |
| 431 command_constructor = RebaselineJson | 467 command_constructor = RebaselineJson |
| 432 | 468 |
| 433 def setUp(self): | 469 def setUp(self): |
| 434 super(TestRebaselineJsonUpdatesExpectationsFiles, self).setUp() | 470 super(TestRebaselineJsonUpdatesExpectationsFiles, self).setUp() |
| 435 self.tool.executive = MockExecutive2() | 471 self.tool.executive = MockExecutive2() |
| 436 | 472 |
| 437 def mock_run_command(args, | 473 def mock_run_command(args, |
| 438 cwd=None, | 474 cwd=None, |
| 439 input=None, | 475 input=None, |
| 440 error_handler=None, | 476 error_handler=None, |
| 441 return_exit_code=False, | 477 return_exit_code=False, |
| 442 return_stderr=True, | 478 return_stderr=True, |
| 443 decode_output=False, | 479 decode_output=False, |
| 444 env=None): | 480 env=None): |
| 445 return '{"add": [], "remove-lines": [{"test": "userscripts/first-tes
t.html", "builder": "WebKit Mac10.11"}]}\n' | 481 return '{"add": [], "remove-lines": [{"test": "userscripts/first-tes
t.html", "builder": "WebKit Mac10.11"}]}\n' |
| 446 self.tool.executive.run_command = mock_run_command | 482 self.tool.executive.run_command = mock_run_command |
| 447 | 483 |
| 448 def test_rebaseline_updates_expectations_file(self): | 484 def test_rebaseline_updates_expectations_file(self): |
| 449 options = MockOptions(optimize=False, verbose=True, results_directory=No
ne) | 485 options = MockOptions(optimize=False, verbose=True, results_directory=No
ne) |
| 450 | 486 |
| 451 self._write(self.mac_expectations_path, "Bug(x) [ Mac ] userscripts/firs
t-test.html [ Failure ]\nbug(z) [ Linux ] userscripts/first-test.html [ Failure
]\n") | 487 self._write(self.mac_expectations_path, |
| 488 "Bug(x) [ Mac ] userscripts/first-test.html [ Failure ]\nbug
(z) [ Linux ] userscripts/first-test.html [ Failure ]\n") |
| 452 self._write("userscripts/first-test.html", "Dummy test contents") | 489 self._write("userscripts/first-test.html", "Dummy test contents") |
| 453 self._setup_mock_builder_data() | 490 self._setup_mock_builder_data() |
| 454 | 491 |
| 455 self.command._rebaseline(options, {"userscripts/first-test.html": {"Web
Kit Mac10.11": ["txt", "png"]}}) | 492 self.command._rebaseline(options, {"userscripts/first-test.html": {"WebK
it Mac10.11": ["txt", "png"]}}) |
| 456 | 493 |
| 457 new_expectations = self._read(self.mac_expectations_path) | 494 new_expectations = self._read(self.mac_expectations_path) |
| 458 self.assertMultiLineEqual(new_expectations, "Bug(x) [ Mac10.10 Mac10.9 R
etina ] userscripts/first-test.html [ Failure ]\nbug(z) [ Linux ] userscripts/fi
rst-test.html [ Failure ]\n") | 495 self.assertMultiLineEqual( |
| 496 new_expectations, "Bug(x) [ Mac10.10 Mac10.9 Retina ] userscripts/fi
rst-test.html [ Failure ]\nbug(z) [ Linux ] userscripts/first-test.html [ Failur
e ]\n") |
| 459 | 497 |
| 460 def test_rebaseline_updates_expectations_file_all_platforms(self): | 498 def test_rebaseline_updates_expectations_file_all_platforms(self): |
| 461 options = MockOptions(optimize=False, verbose=True, results_directory=No
ne) | 499 options = MockOptions(optimize=False, verbose=True, results_directory=No
ne) |
| 462 | 500 |
| 463 self._write(self.mac_expectations_path, "Bug(x) userscripts/first-test.h
tml [ Failure ]\n") | 501 self._write(self.mac_expectations_path, "Bug(x) userscripts/first-test.h
tml [ Failure ]\n") |
| 464 self._write("userscripts/first-test.html", "Dummy test contents") | 502 self._write("userscripts/first-test.html", "Dummy test contents") |
| 465 self._setup_mock_builder_data() | 503 self._setup_mock_builder_data() |
| 466 | 504 |
| 467 self.command._rebaseline(options, {"userscripts/first-test.html": {"Web
Kit Mac10.11": ["txt", "png"]}}) | 505 self.command._rebaseline(options, {"userscripts/first-test.html": {"WebK
it Mac10.11": ["txt", "png"]}}) |
| 468 | 506 |
| 469 new_expectations = self._read(self.mac_expectations_path) | 507 new_expectations = self._read(self.mac_expectations_path) |
| 470 self.assertMultiLineEqual(new_expectations, "Bug(x) [ Android Linux Mac1
0.10 Mac10.9 Retina Win ] userscripts/first-test.html [ Failure ]\n") | 508 self.assertMultiLineEqual( |
| 509 new_expectations, "Bug(x) [ Android Linux Mac10.10 Mac10.9 Retina Wi
n ] userscripts/first-test.html [ Failure ]\n") |
| 471 | 510 |
| 472 def test_rebaseline_handles_platform_skips(self): | 511 def test_rebaseline_handles_platform_skips(self): |
| 473 # This test is just like test_rebaseline_updates_expectations_file_all_p
latforms(), | 512 # This test is just like test_rebaseline_updates_expectations_file_all_p
latforms(), |
| 474 # except that if a particular port happens to SKIP a test in an override
s file, | 513 # except that if a particular port happens to SKIP a test in an override
s file, |
| 475 # we count that as passing, and do not think that we still need to rebas
eline it. | 514 # we count that as passing, and do not think that we still need to rebas
eline it. |
| 476 options = MockOptions(optimize=False, verbose=True, results_directory=No
ne) | 515 options = MockOptions(optimize=False, verbose=True, results_directory=No
ne) |
| 477 | 516 |
| 478 self._write(self.mac_expectations_path, "Bug(x) userscripts/first-test.h
tml [ Failure ]\n") | 517 self._write(self.mac_expectations_path, "Bug(x) userscripts/first-test.h
tml [ Failure ]\n") |
| 479 self._write("NeverFixTests", "Bug(y) [ Android ] userscripts [ WontFix ]
\n") | 518 self._write("NeverFixTests", "Bug(y) [ Android ] userscripts [ WontFix ]
\n") |
| 480 self._write("userscripts/first-test.html", "Dummy test contents") | 519 self._write("userscripts/first-test.html", "Dummy test contents") |
| 481 self._setup_mock_builder_data() | 520 self._setup_mock_builder_data() |
| 482 | 521 |
| 483 self.command._rebaseline(options, {"userscripts/first-test.html": {"Web
Kit Mac10.11": ["txt", "png"]}}) | 522 self.command._rebaseline(options, {"userscripts/first-test.html": {"WebK
it Mac10.11": ["txt", "png"]}}) |
| 484 | 523 |
| 485 new_expectations = self._read(self.mac_expectations_path) | 524 new_expectations = self._read(self.mac_expectations_path) |
| 486 self.assertMultiLineEqual(new_expectations, "Bug(x) [ Linux Mac10.10 Mac
10.9 Retina Win ] userscripts/first-test.html [ Failure ]\n") | 525 self.assertMultiLineEqual( |
| 526 new_expectations, "Bug(x) [ Linux Mac10.10 Mac10.9 Retina Win ] user
scripts/first-test.html [ Failure ]\n") |
| 487 | 527 |
| 488 def test_rebaseline_handles_skips_in_file(self): | 528 def test_rebaseline_handles_skips_in_file(self): |
| 489 # This test is like test_Rebaseline_handles_platform_skips, except that
the | 529 # This test is like test_Rebaseline_handles_platform_skips, except that
the |
| 490 # Skip is in the same (generic) file rather than a platform file. In thi
s case, | 530 # Skip is in the same (generic) file rather than a platform file. In thi
s case, |
| 491 # the Skip line should be left unmodified. Note that the first line is n
ow | 531 # the Skip line should be left unmodified. Note that the first line is n
ow |
| 492 # qualified as "[Linux Mac Win]"; if it was unqualified, it would confli
ct with | 532 # qualified as "[Linux Mac Win]"; if it was unqualified, it would confli
ct with |
| 493 # the second line. | 533 # the second line. |
| 494 options = MockOptions(optimize=False, verbose=True, results_directory=No
ne) | 534 options = MockOptions(optimize=False, verbose=True, results_directory=No
ne) |
| 495 | 535 |
| 496 self._write(self.mac_expectations_path, | 536 self._write(self.mac_expectations_path, |
| 497 ("Bug(x) [ Linux Mac Win ] userscripts/first-test.html [ Failure ]\n
" | 537 ("Bug(x) [ Linux Mac Win ] userscripts/first-test.html [ Fai
lure ]\n" |
| 498 "Bug(y) [ Android ] userscripts/first-test.html [ Skip ]\n")) | 538 "Bug(y) [ Android ] userscripts/first-test.html [ Skip ]\n"
)) |
| 499 self._write("userscripts/first-test.html", "Dummy test contents") | 539 self._write("userscripts/first-test.html", "Dummy test contents") |
| 500 self._setup_mock_builder_data() | 540 self._setup_mock_builder_data() |
| 501 | 541 |
| 502 self.command._rebaseline(options, {"userscripts/first-test.html": {"Web
Kit Mac10.11": ["txt", "png"]}}) | 542 self.command._rebaseline(options, {"userscripts/first-test.html": {"WebK
it Mac10.11": ["txt", "png"]}}) |
| 503 | 543 |
| 504 new_expectations = self._read(self.mac_expectations_path) | 544 new_expectations = self._read(self.mac_expectations_path) |
| 505 self.assertMultiLineEqual( | 545 self.assertMultiLineEqual( |
| 506 new_expectations, | 546 new_expectations, |
| 507 ("Bug(x) [ Linux Mac10.10 Mac10.9 Retina Win ] userscripts/first-tes
t.html [ Failure ]\n" | 547 ("Bug(x) [ Linux Mac10.10 Mac10.9 Retina Win ] userscripts/first-tes
t.html [ Failure ]\n" |
| 508 "Bug(y) [ Android ] userscripts/first-test.html [ Skip ]\n")) | 548 "Bug(y) [ Android ] userscripts/first-test.html [ Skip ]\n")) |
| 509 | 549 |
| 510 def test_rebaseline_handles_smoke_tests(self): | 550 def test_rebaseline_handles_smoke_tests(self): |
| 511 # This test is just like test_rebaseline_handles_platform_skips, except
that we check for | 551 # This test is just like test_rebaseline_handles_platform_skips, except
that we check for |
| 512 # a test not being in the SmokeTests file, instead of using overrides fi
les. | 552 # a test not being in the SmokeTests file, instead of using overrides fi
les. |
| 513 # If a test is not part of the smoke tests, we count that as passing on
ports that only | 553 # If a test is not part of the smoke tests, we count that as passing on
ports that only |
| 514 # run smoke tests, and do not think that we still need to rebaseline it. | 554 # run smoke tests, and do not think that we still need to rebaseline it. |
| 515 options = MockOptions(optimize=False, verbose=True, results_directory=No
ne) | 555 options = MockOptions(optimize=False, verbose=True, results_directory=No
ne) |
| 516 | 556 |
| 517 self._write(self.mac_expectations_path, "Bug(x) userscripts/first-test.h
tml [ Failure ]\n") | 557 self._write(self.mac_expectations_path, "Bug(x) userscripts/first-test.h
tml [ Failure ]\n") |
| 518 self._write("SmokeTests", "fast/html/article-element.html") | 558 self._write("SmokeTests", "fast/html/article-element.html") |
| 519 self._write("userscripts/first-test.html", "Dummy test contents") | 559 self._write("userscripts/first-test.html", "Dummy test contents") |
| 520 self._setup_mock_builder_data() | 560 self._setup_mock_builder_data() |
| 521 | 561 |
| 522 self.command._rebaseline(options, {"userscripts/first-test.html": {"Web
Kit Mac10.11": ["txt", "png"]}}) | 562 self.command._rebaseline(options, {"userscripts/first-test.html": {"WebK
it Mac10.11": ["txt", "png"]}}) |
| 523 | 563 |
| 524 new_expectations = self._read(self.mac_expectations_path) | 564 new_expectations = self._read(self.mac_expectations_path) |
| 525 self.assertMultiLineEqual(new_expectations, "Bug(x) [ Linux Mac10.10 Mac
10.9 Retina Win ] userscripts/first-test.html [ Failure ]\n") | 565 self.assertMultiLineEqual( |
| 566 new_expectations, "Bug(x) [ Linux Mac10.10 Mac10.9 Retina Win ] user
scripts/first-test.html [ Failure ]\n") |
| 526 | 567 |
| 527 | 568 |
| 528 class TestRebaseline(_BaseTestCase): | 569 class TestRebaseline(_BaseTestCase): |
| 529 # This command shares most of its logic with RebaselineJson, so these tests
just test what is different. | 570 # This command shares most of its logic with RebaselineJson, so these tests
just test what is different. |
| 530 | 571 |
| 531 command_constructor = Rebaseline # AKA webkit-patch rebaseline | 572 command_constructor = Rebaseline # AKA webkit-patch rebaseline |
| 532 | 573 |
| 533 def test_rebaseline(self): | 574 def test_rebaseline(self): |
| 534 self.command._builders_to_pull_from = lambda: [MockBuilder('MOCK builder
')] | 575 self.command._builders_to_pull_from = lambda: [MockBuilder('MOCK builder
')] |
| 535 | 576 |
| 536 self._write("userscripts/first-test.html", "test data") | 577 self._write("userscripts/first-test.html", "test data") |
| 537 | 578 |
| 538 self._zero_out_test_expectations() | 579 self._zero_out_test_expectations() |
| 539 self._setup_mock_builder_data() | 580 self._setup_mock_builder_data() |
| 540 | 581 |
| 541 old_exact_matches = builders._exact_matches | 582 old_exact_matches = builders._exact_matches |
| 542 try: | 583 try: |
| 543 builders._exact_matches = { | 584 builders._exact_matches = { |
| 544 "MOCK builder": {"port_name": "test-mac-mac10.10", "specifiers":
set(["mock-specifier"])}, | 585 "MOCK builder": {"port_name": "test-mac-mac10.10", "specifiers":
set(["mock-specifier"])}, |
| 545 } | 586 } |
| 546 self.command.execute(MockOptions(results_directory=False, optimize=F
alse, builders=None, suffixes="txt,png", verbose=True), ['userscripts/first-test
.html'], self.tool) | 587 self.command.execute(MockOptions(results_directory=False, optimize=F
alse, builders=None, |
| 588 suffixes="txt,png", verbose=True),
['userscripts/first-test.html'], self.tool) |
| 547 finally: | 589 finally: |
| 548 builders._exact_matches = old_exact_matches | 590 builders._exact_matches = old_exact_matches |
| 549 | 591 |
| 550 calls = filter(lambda x: x != ['qmake', '-v'] and x[0] != 'perl', self.t
ool.executive.calls) | 592 calls = filter(lambda x: x != ['qmake', '-v'] and x[0] != 'perl', self.t
ool.executive.calls) |
| 551 self.assertEqual(calls, | 593 self.assertEqual(calls, |
| 552 [[['python', 'echo', 'copy-existing-baselines-internal', '--suffixes
', 'txt,png', '--builder', 'MOCK builder', '--test', 'userscripts/first-test.htm
l', '--verbose']], | 594 [[['python', 'echo', 'copy-existing-baselines-internal'
, '--suffixes', 'txt,png', '--builder', 'MOCK builder', '--test', 'userscripts/f
irst-test.html', '--verbose']], |
| 553 [['python', 'echo', 'rebaseline-test-internal', '--suffixes', 'txt,
png', '--builder', 'MOCK builder', '--test', 'userscripts/first-test.html', '--v
erbose']]]) | 595 [['python', 'echo', 'rebaseline-test-internal', '--suf
fixes', 'txt,png', '--builder', 'MOCK builder', '--test', 'userscripts/first-tes
t.html', '--verbose']]]) |
| 554 | 596 |
| 555 def test_rebaseline_directory(self): | 597 def test_rebaseline_directory(self): |
| 556 self.command._builders_to_pull_from = lambda: [MockBuilder('MOCK builder
')] | 598 self.command._builders_to_pull_from = lambda: [MockBuilder('MOCK builder
')] |
| 557 | 599 |
| 558 self._write("userscripts/first-test.html", "test data") | 600 self._write("userscripts/first-test.html", "test data") |
| 559 self._write("userscripts/second-test.html", "test data") | 601 self._write("userscripts/second-test.html", "test data") |
| 560 | 602 |
| 561 self._setup_mock_builder_data() | 603 self._setup_mock_builder_data() |
| 562 | 604 |
| 563 old_exact_matches = builders._exact_matches | 605 old_exact_matches = builders._exact_matches |
| 564 try: | 606 try: |
| 565 builders._exact_matches = { | 607 builders._exact_matches = { |
| 566 "MOCK builder": {"port_name": "test-mac-mac10.10", "specifiers":
set(["mock-specifier"])}, | 608 "MOCK builder": {"port_name": "test-mac-mac10.10", "specifiers":
set(["mock-specifier"])}, |
| 567 } | 609 } |
| 568 self.command.execute(MockOptions(results_directory=False, optimize=F
alse, builders=None, suffixes="txt,png", verbose=True), ['userscripts'], self.to
ol) | 610 self.command.execute(MockOptions(results_directory=False, optimize=F
alse, builders=None, |
| 611 suffixes="txt,png", verbose=True),
['userscripts'], self.tool) |
| 569 finally: | 612 finally: |
| 570 builders._exact_matches = old_exact_matches | 613 builders._exact_matches = old_exact_matches |
| 571 | 614 |
| 572 calls = filter(lambda x: x != ['qmake', '-v'] and x[0] != 'perl', self.t
ool.executive.calls) | 615 calls = filter(lambda x: x != ['qmake', '-v'] and x[0] != 'perl', self.t
ool.executive.calls) |
| 573 self.assertEqual(calls, | 616 self.assertEqual(calls, |
| 574 [[['python', 'echo', 'copy-existing-baselines-internal', '--suffixes
', 'txt,png', '--builder', 'MOCK builder', '--test', 'userscripts/first-test.htm
l', '--verbose'], | 617 [[['python', 'echo', 'copy-existing-baselines-internal'
, '--suffixes', 'txt,png', '--builder', 'MOCK builder', '--test', 'userscripts/f
irst-test.html', '--verbose'], |
| 575 ['python', 'echo', 'copy-existing-baselines-internal', '--suffixes
', 'txt,png', '--builder', 'MOCK builder', '--test', 'userscripts/second-test.ht
ml', '--verbose']], | 618 ['python', 'echo', 'copy-existing-baselines-internal'
, '--suffixes', 'txt,png', '--builder', 'MOCK builder', '--test', 'userscripts/s
econd-test.html', '--verbose']], |
| 576 [['python', 'echo', 'rebaseline-test-internal', '--suffixes', 'txt,
png', '--builder', 'MOCK builder', '--test', 'userscripts/first-test.html', '--v
erbose'], | 619 [['python', 'echo', 'rebaseline-test-internal', '--
suffixes', 'txt,png', '--builder', 'MOCK builder', '--test', 'userscripts/first-
test.html', '--verbose'], |
| 577 ['python', 'echo', 'rebaseline-test-internal', '--suffixes', 'txt,
png', '--builder', 'MOCK builder', '--test', 'userscripts/second-test.html', '--
verbose']]]) | 620 ['python', 'echo', 'rebaseline-test-internal', '--
suffixes', 'txt,png', '--builder', 'MOCK builder', '--test', 'userscripts/second
-test.html', '--verbose']]]) |
| 578 | 621 |
| 579 | 622 |
| 580 class MockLineRemovingExecutive(MockExecutive): | 623 class MockLineRemovingExecutive(MockExecutive): |
| 624 |
| 581 def run_in_parallel(self, commands): | 625 def run_in_parallel(self, commands): |
| 582 assert len(commands) | 626 assert len(commands) |
| 583 | 627 |
| 584 num_previous_calls = len(self.calls) | 628 num_previous_calls = len(self.calls) |
| 585 command_outputs = [] | 629 command_outputs = [] |
| 586 for cmd_line, cwd in commands: | 630 for cmd_line, cwd in commands: |
| 587 out = self.run_command(cmd_line, cwd=cwd) | 631 out = self.run_command(cmd_line, cwd=cwd) |
| 588 if 'rebaseline-test-internal' in cmd_line: | 632 if 'rebaseline-test-internal' in cmd_line: |
| 589 out = '{"add": [], "remove-lines": [{"test": "%s", "builder": "%
s"}], "delete": []}\n' % (cmd_line[8], cmd_line[6]) | 633 out = '{"add": [], "remove-lines": [{"test": "%s", "builder": "%
s"}], "delete": []}\n' % (cmd_line[8], cmd_line[6]) |
| 590 command_outputs.append([0, out, '']) | 634 command_outputs.append([0, out, '']) |
| 591 | 635 |
| 592 new_calls = self.calls[num_previous_calls:] | 636 new_calls = self.calls[num_previous_calls:] |
| 593 self.calls = self.calls[:num_previous_calls] | 637 self.calls = self.calls[:num_previous_calls] |
| 594 self.calls.append(new_calls) | 638 self.calls.append(new_calls) |
| 595 return command_outputs | 639 return command_outputs |
| 596 | 640 |
| 597 | 641 |
| 598 class TestRebaselineExpectations(_BaseTestCase): | 642 class TestRebaselineExpectations(_BaseTestCase): |
| 599 command_constructor = RebaselineExpectations | 643 command_constructor = RebaselineExpectations |
| 600 | 644 |
| 601 def setUp(self): | 645 def setUp(self): |
| 602 super(TestRebaselineExpectations, self).setUp() | 646 super(TestRebaselineExpectations, self).setUp() |
| 603 self.options = MockOptions(optimize=False, builders=None, suffixes=['txt
'], verbose=False, platform=None, results_directory=None) | 647 self.options = MockOptions(optimize=False, builders=None, suffixes=[ |
| 648 'txt'], verbose=False, platform=None, results
_directory=None) |
| 604 | 649 |
| 605 def _write_test_file(self, port, path, contents): | 650 def _write_test_file(self, port, path, contents): |
| 606 abs_path = self.tool.filesystem.join(port.layout_tests_dir(), path) | 651 abs_path = self.tool.filesystem.join(port.layout_tests_dir(), path) |
| 607 self.tool.filesystem.write_text_file(abs_path, contents) | 652 self.tool.filesystem.write_text_file(abs_path, contents) |
| 608 | 653 |
| 609 def _setup_test_port(self): | 654 def _setup_test_port(self): |
| 610 test_port = self.tool.port_factory.get('test') | 655 test_port = self.tool.port_factory.get('test') |
| 611 original_get = self.tool.port_factory.get | 656 original_get = self.tool.port_factory.get |
| 612 | 657 |
| 613 def get_test_port(port_name=None, options=None, **kwargs): | 658 def get_test_port(port_name=None, options=None, **kwargs): |
| (...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 659 "MOCK Mac10.11": {"port_name": "test-mac-mac10.11", "specifiers"
: set(["mock-specifier"])}, | 704 "MOCK Mac10.11": {"port_name": "test-mac-mac10.11", "specifiers"
: set(["mock-specifier"])}, |
| 660 } | 705 } |
| 661 self.command.execute(self.options, [], self.tool) | 706 self.command.execute(self.options, [], self.tool) |
| 662 finally: | 707 finally: |
| 663 builders._exact_matches = old_exact_matches | 708 builders._exact_matches = old_exact_matches |
| 664 | 709 |
| 665 # FIXME: change this to use the test- ports. | 710 # FIXME: change this to use the test- ports. |
| 666 calls = filter(lambda x: x != ['qmake', '-v'], self.tool.executive.calls
) | 711 calls = filter(lambda x: x != ['qmake', '-v'], self.tool.executive.calls
) |
| 667 self.assertEqual(self.tool.executive.calls, [ | 712 self.assertEqual(self.tool.executive.calls, [ |
| 668 [ | 713 [ |
| 669 ['python', 'echo', 'copy-existing-baselines-internal', '--suffix
es', 'txt', '--builder', 'MOCK Mac10.10', '--test', 'userscripts/another-test.ht
ml'], | 714 ['python', 'echo', 'copy-existing-baselines-internal', '--suffix
es', 'txt', |
| 670 ['python', 'echo', 'copy-existing-baselines-internal', '--suffix
es', 'txt', '--builder', 'MOCK Mac10.11', '--test', 'userscripts/another-test.ht
ml'], | 715 '--builder', 'MOCK Mac10.10', '--test', 'userscripts/another
-test.html'], |
| 671 ['python', 'echo', 'copy-existing-baselines-internal', '--suffix
es', 'png', '--builder', 'MOCK Mac10.10', '--test', 'userscripts/images.svg'], | 716 ['python', 'echo', 'copy-existing-baselines-internal', '--suffix
es', 'txt', |
| 672 ['python', 'echo', 'copy-existing-baselines-internal', '--suffix
es', 'png', '--builder', 'MOCK Mac10.11', '--test', 'userscripts/images.svg'], | 717 '--builder', 'MOCK Mac10.11', '--test', 'userscripts/another
-test.html'], |
| 718 ['python', 'echo', 'copy-existing-baselines-internal', '--suffix
es', 'png', |
| 719 '--builder', 'MOCK Mac10.10', '--test', 'userscripts/images.
svg'], |
| 720 ['python', 'echo', 'copy-existing-baselines-internal', '--suffix
es', 'png', |
| 721 '--builder', 'MOCK Mac10.11', '--test', 'userscripts/images.
svg'], |
| 673 ], | 722 ], |
| 674 [ | 723 [ |
| 675 ['python', 'echo', 'rebaseline-test-internal', '--suffixes', 'tx
t', '--builder', 'MOCK Mac10.10', '--test', 'userscripts/another-test.html'], | 724 ['python', 'echo', 'rebaseline-test-internal', '--suffixes', 'tx
t', |
| 676 ['python', 'echo', 'rebaseline-test-internal', '--suffixes', 'tx
t', '--builder', 'MOCK Mac10.11', '--test', 'userscripts/another-test.html'], | 725 '--builder', 'MOCK Mac10.10', '--test', 'userscripts/another
-test.html'], |
| 677 ['python', 'echo', 'rebaseline-test-internal', '--suffixes', 'pn
g', '--builder', 'MOCK Mac10.10', '--test', 'userscripts/images.svg'], | 726 ['python', 'echo', 'rebaseline-test-internal', '--suffixes', 'tx
t', |
| 678 ['python', 'echo', 'rebaseline-test-internal', '--suffixes', 'pn
g', '--builder', 'MOCK Mac10.11', '--test', 'userscripts/images.svg'], | 727 '--builder', 'MOCK Mac10.11', '--test', 'userscripts/another
-test.html'], |
| 728 ['python', 'echo', 'rebaseline-test-internal', '--suffixes', 'pn
g', |
| 729 '--builder', 'MOCK Mac10.10', '--test', 'userscripts/images.
svg'], |
| 730 ['python', 'echo', 'rebaseline-test-internal', '--suffixes', 'pn
g', |
| 731 '--builder', 'MOCK Mac10.11', '--test', 'userscripts/images.
svg'], |
| 679 ], | 732 ], |
| 680 ]) | 733 ]) |
| 681 | 734 |
| 682 def test_rebaseline_expectations_noop(self): | 735 def test_rebaseline_expectations_noop(self): |
| 683 self._zero_out_test_expectations() | 736 self._zero_out_test_expectations() |
| 684 | 737 |
| 685 oc = OutputCapture() | 738 oc = OutputCapture() |
| 686 try: | 739 try: |
| 687 oc.capture_output() | 740 oc.capture_output() |
| 688 self.command.execute(self.options, [], self.tool) | 741 self.command.execute(self.options, [], self.tool) |
| 689 finally: | 742 finally: |
| 690 _, _, logs = oc.restore_output() | 743 _, _, logs = oc.restore_output() |
| 691 self.assertEqual(self.tool.filesystem.written_files, {}) | 744 self.assertEqual(self.tool.filesystem.written_files, {}) |
| 692 self.assertEqual(logs, 'Did not find any tests marked Rebaseline.\n'
) | 745 self.assertEqual(logs, 'Did not find any tests marked Rebaseline.\n'
) |
| 693 | 746 |
| 694 def disabled_test_overrides_are_included_correctly(self): | 747 def disabled_test_overrides_are_included_correctly(self): |
| 695 # This tests that the any tests marked as REBASELINE in the overrides ar
e found, but | 748 # This tests that the any tests marked as REBASELINE in the overrides ar
e found, but |
| 696 # that the overrides do not get written into the main file. | 749 # that the overrides do not get written into the main file. |
| 697 self._zero_out_test_expectations() | 750 self._zero_out_test_expectations() |
| 698 | 751 |
| 699 self._write(self.mac_expectations_path, '') | 752 self._write(self.mac_expectations_path, '') |
| 700 self.mac_port.expectations_dict = lambda: { | 753 self.mac_port.expectations_dict = lambda: { |
| 701 self.mac_expectations_path: '', | 754 self.mac_expectations_path: '', |
| 702 'overrides': ('Bug(x) userscripts/another-test.html [ Failure Rebase
line ]\n' | 755 'overrides': ('Bug(x) userscripts/another-test.html [ Failure Rebase
line ]\n' |
| 703 'Bug(y) userscripts/test.html [ Crash ]\n')} | 756 'Bug(y) userscripts/test.html [ Crash ]\n')} |
| 704 self._write('/userscripts/another-test.html', '') | 757 self._write('/userscripts/another-test.html', '') |
| 705 | 758 |
| 706 self.assertDictEqual(self.command._tests_to_rebaseline(self.mac_port), {
'userscripts/another-test.html': set(['png', 'txt', 'wav'])}) | 759 self.assertDictEqual(self.command._tests_to_rebaseline(self.mac_port), { |
| 760 'userscripts/another-test.html': set(['png', 'txt',
'wav'])}) |
| 707 self.assertEqual(self._read(self.mac_expectations_path), '') | 761 self.assertEqual(self._read(self.mac_expectations_path), '') |
| 708 | 762 |
| 709 def test_rebaseline_without_other_expectations(self): | 763 def test_rebaseline_without_other_expectations(self): |
| 710 self._write("userscripts/another-test.html", "Dummy test contents") | 764 self._write("userscripts/another-test.html", "Dummy test contents") |
| 711 self._write(self.mac_expectations_path, "Bug(x) userscripts/another-test
.html [ Rebaseline ]\n") | 765 self._write(self.mac_expectations_path, "Bug(x) userscripts/another-test
.html [ Rebaseline ]\n") |
| 712 self.assertDictEqual(self.command._tests_to_rebaseline(self.mac_port), {
'userscripts/another-test.html': ('png', 'wav', 'txt')}) | 766 self.assertDictEqual(self.command._tests_to_rebaseline(self.mac_port), { |
| 767 'userscripts/another-test.html': ('png', 'wav', 'tx
t')}) |
| 713 | 768 |
| 714 def test_rebaseline_test_passes_everywhere(self): | 769 def test_rebaseline_test_passes_everywhere(self): |
| 715 test_port = self._setup_test_port() | 770 test_port = self._setup_test_port() |
| 716 | 771 |
| 717 old_builder_data = self.command.builder_data | 772 old_builder_data = self.command.builder_data |
| 718 | 773 |
| 719 def builder_data(): | 774 def builder_data(): |
| 720 self.command._builder_data['MOCK Mac10.10'] = self.command._builder_
data['MOCK Mac10.11'] = LayoutTestResults.results_from_string("""ADD_RESULTS({ | 775 self.command._builder_data['MOCK Mac10.10'] = self.command._builder_
data['MOCK Mac10.11'] = LayoutTestResults.results_from_string("""ADD_RESULTS({ |
| 721 "tests": { | 776 "tests": { |
| 722 "fast": { | 777 "fast": { |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 754 | 809 |
| 755 # The mac ports should both be removed since they're the only ones i
n builders._exact_matches. | 810 # The mac ports should both be removed since they're the only ones i
n builders._exact_matches. |
| 756 self.assertEqual(self.tool.filesystem.read_text_file(test_port.path_
to_generic_test_expectations_file()), """ | 811 self.assertEqual(self.tool.filesystem.read_text_file(test_port.path_
to_generic_test_expectations_file()), """ |
| 757 Bug(foo) [ Linux Win ] fast/dom/prototype-taco.html [ Rebaseline ] | 812 Bug(foo) [ Linux Win ] fast/dom/prototype-taco.html [ Rebaseline ] |
| 758 """) | 813 """) |
| 759 finally: | 814 finally: |
| 760 builders._exact_matches = old_exact_matches | 815 builders._exact_matches = old_exact_matches |
| 761 | 816 |
| 762 | 817 |
| 763 class _FakeOptimizer(BaselineOptimizer): | 818 class _FakeOptimizer(BaselineOptimizer): |
| 819 |
| 764 def read_results_by_directory(self, baseline_name): | 820 def read_results_by_directory(self, baseline_name): |
| 765 if baseline_name.endswith('txt'): | 821 if baseline_name.endswith('txt'): |
| 766 return {'LayoutTests/passes/text.html': '123456'} | 822 return {'LayoutTests/passes/text.html': '123456'} |
| 767 return {} | 823 return {} |
| 768 | 824 |
| 769 | 825 |
| 770 class TestOptimizeBaselines(_BaseTestCase): | 826 class TestOptimizeBaselines(_BaseTestCase): |
| 771 command_constructor = OptimizeBaselines | 827 command_constructor = OptimizeBaselines |
| 772 | 828 |
| 773 def _write_test_file(self, port, path, contents): | 829 def _write_test_file(self, port, path, contents): |
| (...skipping 20 matching lines...) Expand all Loading... |
| 794 "MOCK Mac10.10 Debug": {"port_name": "test-mac-mac10.10", "speci
fiers": set(["mock-specifier"])}, | 850 "MOCK Mac10.10 Debug": {"port_name": "test-mac-mac10.10", "speci
fiers": set(["mock-specifier"])}, |
| 795 } | 851 } |
| 796 OutputCapture().assert_outputs(self, self.command.execute, args=[ | 852 OutputCapture().assert_outputs(self, self.command.execute, args=[ |
| 797 MockOptions(suffixes='txt', no_modify_scm=False, platform='test-
mac-mac10.10'), | 853 MockOptions(suffixes='txt', no_modify_scm=False, platform='test-
mac-mac10.10'), |
| 798 ['another/test.html'], | 854 ['another/test.html'], |
| 799 self.tool, | 855 self.tool, |
| 800 ], expected_stdout='{"add": [], "remove-lines": [], "delete": []}\n'
) | 856 ], expected_stdout='{"add": [], "remove-lines": [], "delete": []}\n'
) |
| 801 finally: | 857 finally: |
| 802 builders._exact_matches = old_exact_matches | 858 builders._exact_matches = old_exact_matches |
| 803 | 859 |
| 804 self.assertFalse(self.tool.filesystem.exists(self.tool.filesystem.join(t
est_port.layout_tests_dir(), 'platform/mac/another/test-expected.txt'))) | 860 self.assertFalse(self.tool.filesystem.exists(self.tool.filesystem.join( |
| 805 self.assertTrue(self.tool.filesystem.exists(self.tool.filesystem.join(te
st_port.layout_tests_dir(), 'another/test-expected.txt'))) | 861 test_port.layout_tests_dir(), 'platform/mac/another/test-expected.tx
t'))) |
| 862 self.assertTrue(self.tool.filesystem.exists(self.tool.filesystem.join( |
| 863 test_port.layout_tests_dir(), 'another/test-expected.txt'))) |
| 806 | 864 |
| 807 def test_no_modify_scm(self): | 865 def test_no_modify_scm(self): |
| 808 test_port = self.tool.port_factory.get('test') | 866 test_port = self.tool.port_factory.get('test') |
| 809 self._write_test_file(test_port, 'another/test.html', "Dummy test conten
ts") | 867 self._write_test_file(test_port, 'another/test.html', "Dummy test conten
ts") |
| 810 self._write_test_file(test_port, 'platform/mac-mac10.10/another/test-exp
ected.txt', "result A") | 868 self._write_test_file(test_port, 'platform/mac-mac10.10/another/test-exp
ected.txt', "result A") |
| 811 self._write_test_file(test_port, 'another/test-expected.txt', "result A"
) | 869 self._write_test_file(test_port, 'another/test-expected.txt', "result A"
) |
| 812 | 870 |
| 813 old_exact_matches = builders._exact_matches | 871 old_exact_matches = builders._exact_matches |
| 814 try: | 872 try: |
| 815 builders._exact_matches = { | 873 builders._exact_matches = { |
| 816 "MOCK Mac10.10 Debug": {"port_name": "test-mac-mac10.10", "speci
fiers": set(["mock-specifier"])}, | 874 "MOCK Mac10.10 Debug": {"port_name": "test-mac-mac10.10", "speci
fiers": set(["mock-specifier"])}, |
| 817 } | 875 } |
| 818 OutputCapture().assert_outputs(self, self.command.execute, args=[ | 876 OutputCapture().assert_outputs(self, self.command.execute, args=[ |
| 819 MockOptions(suffixes='txt', no_modify_scm=True, platform='test-m
ac-mac10.10'), | 877 MockOptions(suffixes='txt', no_modify_scm=True, platform='test-m
ac-mac10.10'), |
| 820 ['another/test.html'], | 878 ['another/test.html'], |
| 821 self.tool, | 879 self.tool, |
| 822 ], expected_stdout='{"add": [], "remove-lines": [], "delete": ["/moc
k-checkout/third_party/WebKit/LayoutTests/platform/mac-mac10.10/another/test-exp
ected.txt"]}\n') | 880 ], expected_stdout='{"add": [], "remove-lines": [], "delete": ["/moc
k-checkout/third_party/WebKit/LayoutTests/platform/mac-mac10.10/another/test-exp
ected.txt"]}\n') |
| 823 finally: | 881 finally: |
| 824 builders._exact_matches = old_exact_matches | 882 builders._exact_matches = old_exact_matches |
| 825 | 883 |
| 826 self.assertFalse(self.tool.filesystem.exists(self.tool.filesystem.join(t
est_port.layout_tests_dir(), 'platform/mac/another/test-expected.txt'))) | 884 self.assertFalse(self.tool.filesystem.exists(self.tool.filesystem.join( |
| 827 self.assertTrue(self.tool.filesystem.exists(self.tool.filesystem.join(te
st_port.layout_tests_dir(), 'another/test-expected.txt'))) | 885 test_port.layout_tests_dir(), 'platform/mac/another/test-expected.tx
t'))) |
| 886 self.assertTrue(self.tool.filesystem.exists(self.tool.filesystem.join( |
| 887 test_port.layout_tests_dir(), 'another/test-expected.txt'))) |
| 828 | 888 |
| 829 def test_optimize_all_suffixes_by_default(self): | 889 def test_optimize_all_suffixes_by_default(self): |
| 830 test_port = self.tool.port_factory.get('test') | 890 test_port = self.tool.port_factory.get('test') |
| 831 self._write_test_file(test_port, 'another/test.html', "Dummy test conten
ts") | 891 self._write_test_file(test_port, 'another/test.html', "Dummy test conten
ts") |
| 832 self._write_test_file(test_port, 'platform/mac-mac10.10/another/test-exp
ected.txt', "result A") | 892 self._write_test_file(test_port, 'platform/mac-mac10.10/another/test-exp
ected.txt', "result A") |
| 833 self._write_test_file(test_port, 'platform/mac-mac10.10/another/test-exp
ected.png', "result A png") | 893 self._write_test_file(test_port, 'platform/mac-mac10.10/another/test-exp
ected.png', "result A png") |
| 834 self._write_test_file(test_port, 'another/test-expected.txt', "result A"
) | 894 self._write_test_file(test_port, 'another/test-expected.txt', "result A"
) |
| 835 self._write_test_file(test_port, 'another/test-expected.png', "result A
png") | 895 self._write_test_file(test_port, 'another/test-expected.png', "result A
png") |
| 836 | 896 |
| 837 old_exact_matches = builders._exact_matches | 897 old_exact_matches = builders._exact_matches |
| 838 try: | 898 try: |
| 839 builders._exact_matches = { | 899 builders._exact_matches = { |
| 840 "MOCK Mac10.10 Debug": {"port_name": "test-mac-mac10.10", "speci
fiers": set(["mock-specifier"])}, | 900 "MOCK Mac10.10 Debug": {"port_name": "test-mac-mac10.10", "speci
fiers": set(["mock-specifier"])}, |
| 841 } | 901 } |
| 842 oc = OutputCapture() | 902 oc = OutputCapture() |
| 843 oc.capture_output() | 903 oc.capture_output() |
| 844 self.command.execute(MockOptions(suffixes='txt,wav,png', no_modify_s
cm=True, platform='test-mac-mac10.10'), | 904 self.command.execute(MockOptions(suffixes='txt,wav,png', no_modify_s
cm=True, platform='test-mac-mac10.10'), |
| 845 ['another/test.html'], | 905 ['another/test.html'], |
| 846 self.tool) | 906 self.tool) |
| 847 finally: | 907 finally: |
| 848 out, err, logs = oc.restore_output() | 908 out, err, logs = oc.restore_output() |
| 849 builders._exact_matches = old_exact_matches | 909 builders._exact_matches = old_exact_matches |
| 850 | 910 |
| 851 self.assertEquals(out, '{"add": [], "remove-lines": [], "delete": ["/moc
k-checkout/third_party/WebKit/LayoutTests/platform/mac-mac10.10/another/test-exp
ected.txt", "/mock-checkout/third_party/WebKit/LayoutTests/platform/mac-mac10.10
/another/test-expected.png"]}\n') | 911 self.assertEquals(out, '{"add": [], "remove-lines": [], "delete": ["/moc
k-checkout/third_party/WebKit/LayoutTests/platform/mac-mac10.10/another/test-exp
ected.txt", "/mock-checkout/third_party/WebKit/LayoutTests/platform/mac-mac10.10
/another/test-expected.png"]}\n') |
| 852 self.assertFalse(self.tool.filesystem.exists(self.tool.filesystem.join(t
est_port.layout_tests_dir(), 'platform/mac/another/test-expected.txt'))) | 912 self.assertFalse(self.tool.filesystem.exists(self.tool.filesystem.join( |
| 853 self.assertFalse(self.tool.filesystem.exists(self.tool.filesystem.join(t
est_port.layout_tests_dir(), 'platform/mac/another/test-expected.png'))) | 913 test_port.layout_tests_dir(), 'platform/mac/another/test-expected.tx
t'))) |
| 854 self.assertTrue(self.tool.filesystem.exists(self.tool.filesystem.join(te
st_port.layout_tests_dir(), 'another/test-expected.txt'))) | 914 self.assertFalse(self.tool.filesystem.exists(self.tool.filesystem.join( |
| 855 self.assertTrue(self.tool.filesystem.exists(self.tool.filesystem.join(te
st_port.layout_tests_dir(), 'another/test-expected.png'))) | 915 test_port.layout_tests_dir(), 'platform/mac/another/test-expected.pn
g'))) |
| 916 self.assertTrue(self.tool.filesystem.exists(self.tool.filesystem.join( |
| 917 test_port.layout_tests_dir(), 'another/test-expected.txt'))) |
| 918 self.assertTrue(self.tool.filesystem.exists(self.tool.filesystem.join( |
| 919 test_port.layout_tests_dir(), 'another/test-expected.png'))) |
| 856 | 920 |
| 857 | 921 |
| 858 class TestAnalyzeBaselines(_BaseTestCase): | 922 class TestAnalyzeBaselines(_BaseTestCase): |
| 859 command_constructor = AnalyzeBaselines | 923 command_constructor = AnalyzeBaselines |
| 860 | 924 |
| 861 def setUp(self): | 925 def setUp(self): |
| 862 super(TestAnalyzeBaselines, self).setUp() | 926 super(TestAnalyzeBaselines, self).setUp() |
| 863 self.port = self.tool.port_factory.get('test') | 927 self.port = self.tool.port_factory.get('test') |
| 864 self.tool.port_factory.get = (lambda port_name=None, options=None: self.
port) | 928 self.tool.port_factory.get = (lambda port_name=None, options=None: self.
port) |
| 865 self.lines = [] | 929 self.lines = [] |
| 866 self.command._optimizer_class = _FakeOptimizer | 930 self.command._optimizer_class = _FakeOptimizer |
| 867 self.command._write = (lambda msg: self.lines.append(msg)) # pylint bug
warning about unnecessary lambda? pylint: disable=W0108 | 931 # pylint bug warning about unnecessary lambda? pylint: disable=W0108 |
| 932 self.command._write = (lambda msg: self.lines.append(msg)) |
| 868 | 933 |
| 869 def test_default(self): | 934 def test_default(self): |
| 870 self.command.execute(MockOptions(suffixes='txt', missing=False, platform
=None), ['passes/text.html'], self.tool) | 935 self.command.execute(MockOptions(suffixes='txt', missing=False, platform
=None), ['passes/text.html'], self.tool) |
| 871 self.assertEqual(self.lines, | 936 self.assertEqual(self.lines, |
| 872 ['passes/text-expected.txt:', | 937 ['passes/text-expected.txt:', |
| 873 ' (generic): 123456']) | 938 ' (generic): 123456']) |
| 874 | 939 |
| 875 def test_missing_baselines(self): | 940 def test_missing_baselines(self): |
| 876 self.command.execute(MockOptions(suffixes='png,txt', missing=True, platf
orm=None), ['passes/text.html'], self.tool) | 941 self.command.execute(MockOptions(suffixes='png,txt', missing=True, platf
orm=None), ['passes/text.html'], self.tool) |
| 877 self.assertEqual(self.lines, | 942 self.assertEqual(self.lines, |
| 878 ['passes/text-expected.png: (no baselines found)', | 943 ['passes/text-expected.png: (no baselines found)', |
| 879 'passes/text-expected.txt:', | 944 'passes/text-expected.txt:', |
| 880 ' (generic): 123456']) | 945 ' (generic): 123456']) |
| 881 | 946 |
| 882 | 947 |
| 883 class TestAutoRebaseline(_BaseTestCase): | 948 class TestAutoRebaseline(_BaseTestCase): |
| 884 command_constructor = AutoRebaseline | 949 command_constructor = AutoRebaseline |
| 885 | 950 |
| 886 def _write_test_file(self, port, path, contents): | 951 def _write_test_file(self, port, path, contents): |
| 887 abs_path = self.tool.filesystem.join(port.layout_tests_dir(), path) | 952 abs_path = self.tool.filesystem.join(port.layout_tests_dir(), path) |
| 888 self.tool.filesystem.write_text_file(abs_path, contents) | 953 self.tool.filesystem.write_text_file(abs_path, contents) |
| 889 | 954 |
| 890 def _setup_test_port(self): | 955 def _setup_test_port(self): |
| (...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 933 624c3081c0 path/to/TestExpectations (<foobarbaz1@chromium.org>
2013-06-14 20:18:46 +0000 11) crbug.com/24182 [ Debug ] path/to/rebaseline-wi
th-modifiers.html [ NeedsRebaseline ] | 998 624c3081c0 path/to/TestExpectations (<foobarbaz1@chromium.org>
2013-06-14 20:18:46 +0000 11) crbug.com/24182 [ Debug ] path/to/rebaseline-wi
th-modifiers.html [ NeedsRebaseline ] |
| 934 624c3081c0 path/to/TestExpectations (<foobarbaz1@chromium.org>
2013-04-28 04:52:41 +0000 12) crbug.com/24182 crbug.com/234 path/to/rebaselin
e-without-modifiers.html [ NeedsRebaseline ] | 999 624c3081c0 path/to/TestExpectations (<foobarbaz1@chromium.org>
2013-04-28 04:52:41 +0000 12) crbug.com/24182 crbug.com/234 path/to/rebaselin
e-without-modifiers.html [ NeedsRebaseline ] |
| 935 6469e754a1 path/to/TestExpectations (<foobarbaz1@chromium.org@
bbb929c8-8fbe-4397-9dbb-9b2b20218538> 2013-04-28 04:52:41 +0000 12) crbug.com/
24182 path/to/rebaseline-new-revision.html [ NeedsRebaseline ] | 1000 6469e754a1 path/to/TestExpectations (<foobarbaz1@chromium.org@
bbb929c8-8fbe-4397-9dbb-9b2b20218538> 2013-04-28 04:52:41 +0000 12) crbug.com/
24182 path/to/rebaseline-new-revision.html [ NeedsRebaseline ] |
| 936 624caaaaaa path/to/TestExpectations (<foo@chromium.org>
2013-04-28 04:52:41 +0000 12) crbug.com/24182 path/to/not-cycled-through-bots
.html [ NeedsRebaseline ] | 1001 624caaaaaa path/to/TestExpectations (<foo@chromium.org>
2013-04-28 04:52:41 +0000 12) crbug.com/24182 path/to/not-cycled-through-bots
.html [ NeedsRebaseline ] |
| 937 0000000000 path/to/TestExpectations (<foo@chromium.org@@bbb929
c8-8fbe-4397-9dbb-9b2b20218538> 2013-04-28 04:52:41 +0000 12) crbug.com
/24182 path/to/locally-changed-lined.html [ NeedsRebaseline ] | 1002 0000000000 path/to/TestExpectations (<foo@chromium.org@@bbb929
c8-8fbe-4397-9dbb-9b2b20218538> 2013-04-28 04:52:41 +0000 12) crbug.com
/24182 path/to/locally-changed-lined.html [ NeedsRebaseline ] |
| 938 """ | 1003 """ |
| 939 self.tool.scm().blame = blame | 1004 self.tool.scm().blame = blame |
| 940 | 1005 |
| 941 min_revision = 9000 | 1006 min_revision = 9000 |
| 942 self.assertEqual(self.command.tests_to_rebaseline(self.tool, min_revisio
n, print_revisions=False), ( | 1007 self.assertEqual(self.command.tests_to_rebaseline(self.tool, min_revisio
n, print_revisions=False), ( |
| 943 set(['path/to/rebaseline-without-bug-number.html', 'path/to/reba
seline-with-modifiers.html', 'path/to/rebaseline-without-modifiers.html']), | 1008 set(['path/to/rebaseline-without-bug-number.html', |
| 944 5678, | 1009 'path/to/rebaseline-with-modifiers.html', 'path/to/rebaseline-w
ithout-modifiers.html']), |
| 945 '624c3081c0', | 1010 5678, |
| 946 'foobarbaz1@chromium.org', | 1011 '624c3081c0', |
| 947 set(['24182', '234']), | 1012 'foobarbaz1@chromium.org', |
| 948 True)) | 1013 set(['24182', '234']), |
| 1014 True)) |
| 949 | 1015 |
| 950 def test_tests_to_rebaseline_over_limit(self): | 1016 def test_tests_to_rebaseline_over_limit(self): |
| 951 def blame(path): | 1017 def blame(path): |
| 952 result = "" | 1018 result = "" |
| 953 for i in range(0, self.command.MAX_LINES_TO_REBASELINE + 1): | 1019 for i in range(0, self.command.MAX_LINES_TO_REBASELINE + 1): |
| 954 result += "624c3081c0 path/to/TestExpectations
(<foobarbaz1@chromium.org> 2013-04-28 04:52:41 +0000 13) crbug.com/24182 path
/to/rebaseline-%s.html [ NeedsRebaseline ]\n" % i | 1020 result += "624c3081c0 path/to/TestExpectations
(<foobarbaz1@chromium.org> 2013-04-28 04:52:41 +0000 13) crbug.com/24182 path
/to/rebaseline-%s.html [ NeedsRebaseline ]\n" % i |
| 955 return result | 1021 return result |
| 956 self.tool.scm().blame = blame | 1022 self.tool.scm().blame = blame |
| 957 | 1023 |
| 958 expected_list_of_tests = [] | 1024 expected_list_of_tests = [] |
| 959 for i in range(0, self.command.MAX_LINES_TO_REBASELINE): | 1025 for i in range(0, self.command.MAX_LINES_TO_REBASELINE): |
| 960 expected_list_of_tests.append("path/to/rebaseline-%s.html" % i) | 1026 expected_list_of_tests.append("path/to/rebaseline-%s.html" % i) |
| 961 | 1027 |
| 962 min_revision = 9000 | 1028 min_revision = 9000 |
| 963 self.assertEqual(self.command.tests_to_rebaseline(self.tool, min_revisio
n, print_revisions=False), ( | 1029 self.assertEqual(self.command.tests_to_rebaseline(self.tool, min_revisio
n, print_revisions=False), ( |
| 964 set(expected_list_of_tests), | 1030 set(expected_list_of_tests), |
| 965 5678, | 1031 5678, |
| 966 '624c3081c0', | 1032 '624c3081c0', |
| 967 'foobarbaz1@chromium.org', | 1033 'foobarbaz1@chromium.org', |
| 968 set(['24182']), | 1034 set(['24182']), |
| 969 True)) | 1035 True)) |
| 970 | 1036 |
| 971 def test_commit_message(self): | 1037 def test_commit_message(self): |
| 972 author = "foo@chromium.org" | 1038 author = "foo@chromium.org" |
| 973 revision = 1234 | 1039 revision = 1234 |
| 974 commit = "abcd567" | 1040 commit = "abcd567" |
| 975 bugs = set() | 1041 bugs = set() |
| 976 self.assertEqual(self.command.commit_message(author, revision, commit, b
ugs), | 1042 self.assertEqual(self.command.commit_message(author, revision, commit, b
ugs), |
| 977 """Auto-rebaseline for r1234 | 1043 """Auto-rebaseline for r1234 |
| 978 | 1044 |
| 979 https://chromium.googlesource.com/chromium/src/+/abcd567 | 1045 https://chromium.googlesource.com/chromium/src/+/abcd567 |
| 980 | 1046 |
| 981 TBR=foo@chromium.org | 1047 TBR=foo@chromium.org |
| 982 """) | 1048 """) |
| 983 | 1049 |
| 984 bugs = set(["234", "345"]) | 1050 bugs = set(["234", "345"]) |
| 985 self.assertEqual(self.command.commit_message(author, revision, commit, b
ugs), | 1051 self.assertEqual(self.command.commit_message(author, revision, commit, b
ugs), |
| 986 """Auto-rebaseline for r1234 | 1052 """Auto-rebaseline for r1234 |
| 987 | 1053 |
| 988 https://chromium.googlesource.com/chromium/src/+/abcd567 | 1054 https://chromium.googlesource.com/chromium/src/+/abcd567 |
| 989 | 1055 |
| 990 BUG=234,345 | 1056 BUG=234,345 |
| 991 TBR=foo@chromium.org | 1057 TBR=foo@chromium.org |
| 992 """) | 1058 """) |
| 993 | 1059 |
| 994 def test_no_needs_rebaseline_lines(self): | 1060 def test_no_needs_rebaseline_lines(self): |
| 995 def blame(path): | 1061 def blame(path): |
| 996 return """ | 1062 return """ |
| (...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1072 self.command.tree_status = lambda: 'closed' | 1138 self.command.tree_status = lambda: 'closed' |
| 1073 self._execute_command_with_mock_options() | 1139 self._execute_command_with_mock_options() |
| 1074 self.assertEqual(self.tool.executive.calls, []) | 1140 self.assertEqual(self.tool.executive.calls, []) |
| 1075 | 1141 |
| 1076 self.command.tree_status = lambda: 'open' | 1142 self.command.tree_status = lambda: 'open' |
| 1077 self.tool.executive.calls = [] | 1143 self.tool.executive.calls = [] |
| 1078 self._execute_command_with_mock_options() | 1144 self._execute_command_with_mock_options() |
| 1079 | 1145 |
| 1080 self.assertEqual(self.tool.executive.calls, [ | 1146 self.assertEqual(self.tool.executive.calls, [ |
| 1081 [ | 1147 [ |
| 1082 ['python', 'echo', 'copy-existing-baselines-internal', '--su
ffixes', 'txt,png', '--builder', 'MOCK Mac10.10', '--test', 'fast/dom/prototype-
chocolate.html'], | 1148 ['python', 'echo', 'copy-existing-baselines-internal', '--su
ffixes', 'txt,png', |
| 1083 ['python', 'echo', 'copy-existing-baselines-internal', '--su
ffixes', 'png', '--builder', 'MOCK Mac10.11', '--test', 'fast/dom/prototype-stra
wberry.html'], | 1149 '--builder', 'MOCK Mac10.10', '--test', 'fast/dom/protot
ype-chocolate.html'], |
| 1084 ['python', 'echo', 'copy-existing-baselines-internal', '--su
ffixes', 'txt', '--builder', 'MOCK Mac10.10', '--test', 'fast/dom/prototype-taco
.html'], | 1150 ['python', 'echo', 'copy-existing-baselines-internal', '--su
ffixes', 'png', |
| 1085 ['python', 'echo', 'copy-existing-baselines-internal', '--su
ffixes', 'txt', '--builder', 'MOCK Mac10.11', '--test', 'fast/dom/prototype-taco
.html'], | 1151 '--builder', 'MOCK Mac10.11', '--test', 'fast/dom/protot
ype-strawberry.html'], |
| 1152 ['python', 'echo', 'copy-existing-baselines-internal', '--su
ffixes', 'txt', |
| 1153 '--builder', 'MOCK Mac10.10', '--test', 'fast/dom/protot
ype-taco.html'], |
| 1154 ['python', 'echo', 'copy-existing-baselines-internal', '--su
ffixes', 'txt', |
| 1155 '--builder', 'MOCK Mac10.11', '--test', 'fast/dom/protot
ype-taco.html'], |
| 1086 ], | 1156 ], |
| 1087 [ | 1157 [ |
| 1088 ['python', 'echo', 'rebaseline-test-internal', '--suffixes',
'txt,png', '--builder', 'MOCK Mac10.10', '--test', 'fast/dom/prototype-chocolat
e.html'], | 1158 ['python', 'echo', 'rebaseline-test-internal', '--suffixes',
'txt,png', |
| 1089 ['python', 'echo', 'rebaseline-test-internal', '--suffixes',
'png', '--builder', 'MOCK Mac10.11', '--test', 'fast/dom/prototype-strawberry.h
tml'], | 1159 '--builder', 'MOCK Mac10.10', '--test', 'fast/dom/protot
ype-chocolate.html'], |
| 1090 ['python', 'echo', 'rebaseline-test-internal', '--suffixes',
'txt', '--builder', 'MOCK Mac10.10', '--test', 'fast/dom/prototype-taco.html'], | 1160 ['python', 'echo', 'rebaseline-test-internal', '--suffixes',
'png', '--builder', |
| 1091 ['python', 'echo', 'rebaseline-test-internal', '--suffixes',
'txt', '--builder', 'MOCK Mac10.11', '--test', 'fast/dom/prototype-taco.html'], | 1161 'MOCK Mac10.11', '--test', 'fast/dom/prototype-strawberr
y.html'], |
| 1162 ['python', 'echo', 'rebaseline-test-internal', '--suffixes',
'txt', |
| 1163 '--builder', 'MOCK Mac10.10', '--test', 'fast/dom/protot
ype-taco.html'], |
| 1164 ['python', 'echo', 'rebaseline-test-internal', '--suffixes',
'txt', |
| 1165 '--builder', 'MOCK Mac10.11', '--test', 'fast/dom/protot
ype-taco.html'], |
| 1092 ], | 1166 ], |
| 1093 [ | 1167 [ |
| 1094 ['python', 'echo', 'optimize-baselines', '--no-modify-scm',
'--suffixes', 'txt,png', 'fast/dom/prototype-chocolate.html'], | 1168 ['python', 'echo', 'optimize-baselines', '--no-modify-scm', |
| 1095 ['python', 'echo', 'optimize-baselines', '--no-modify-scm',
'--suffixes', 'png', 'fast/dom/prototype-strawberry.html'], | 1169 '--suffixes', 'txt,png', 'fast/dom/prototype-chocolate.h
tml'], |
| 1170 ['python', 'echo', 'optimize-baselines', '--no-modify-scm', |
| 1171 '--suffixes', 'png', 'fast/dom/prototype-strawberry.html
'], |
| 1096 ['python', 'echo', 'optimize-baselines', '--no-modify-scm',
'--suffixes', 'txt', 'fast/dom/prototype-taco.html'], | 1172 ['python', 'echo', 'optimize-baselines', '--no-modify-scm',
'--suffixes', 'txt', 'fast/dom/prototype-taco.html'], |
| 1097 ], | 1173 ], |
| 1098 ['git', 'cl', 'upload', '-f'], | 1174 ['git', 'cl', 'upload', '-f'], |
| 1099 ['git', 'pull'], | 1175 ['git', 'pull'], |
| 1100 ['git', 'cl', 'land', '-f', '-v'], | 1176 ['git', 'cl', 'land', '-f', '-v'], |
| 1101 ['git', 'config', 'branch.auto-rebaseline-temporary-branch.rietv
eldissue'], | 1177 ['git', 'config', 'branch.auto-rebaseline-temporary-branch.rietv
eldissue'], |
| 1102 ]) | 1178 ]) |
| 1103 | 1179 |
| 1104 # The mac ports should both be removed since they're the only ones i
n builders._exact_matches. | 1180 # The mac ports should both be removed since they're the only ones i
n builders._exact_matches. |
| 1105 self.assertEqual(self.tool.filesystem.read_text_file(test_port.path_
to_generic_test_expectations_file()), """ | 1181 self.assertEqual(self.tool.filesystem.read_text_file(test_port.path_
to_generic_test_expectations_file()), """ |
| (...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1156 } | 1232 } |
| 1157 | 1233 |
| 1158 self.command.SECONDS_BEFORE_GIVING_UP = 0 | 1234 self.command.SECONDS_BEFORE_GIVING_UP = 0 |
| 1159 self.command.tree_status = lambda: 'open' | 1235 self.command.tree_status = lambda: 'open' |
| 1160 self.tool.executive = MockExecutive() | 1236 self.tool.executive = MockExecutive() |
| 1161 self.tool.executive.calls = [] | 1237 self.tool.executive.calls = [] |
| 1162 self._execute_command_with_mock_options() | 1238 self._execute_command_with_mock_options() |
| 1163 | 1239 |
| 1164 self.assertEqual(self.tool.executive.calls, [ | 1240 self.assertEqual(self.tool.executive.calls, [ |
| 1165 [ | 1241 [ |
| 1166 ['python', 'echo', 'copy-existing-baselines-internal', '--su
ffixes', 'txt', '--builder', 'MOCK Mac10.11', '--test', 'fast/dom/prototype-taco
.html'], | 1242 ['python', 'echo', 'copy-existing-baselines-internal', '--su
ffixes', 'txt', |
| 1243 '--builder', 'MOCK Mac10.11', '--test', 'fast/dom/protot
ype-taco.html'], |
| 1167 ], | 1244 ], |
| 1168 [ | 1245 [ |
| 1169 ['python', 'echo', 'rebaseline-test-internal', '--suffixes',
'txt', '--builder', 'MOCK Mac10.11', '--test', 'fast/dom/prototype-taco.html'], | 1246 ['python', 'echo', 'rebaseline-test-internal', '--suffixes',
'txt', |
| 1247 '--builder', 'MOCK Mac10.11', '--test', 'fast/dom/protot
ype-taco.html'], |
| 1170 ], | 1248 ], |
| 1171 [['python', 'echo', 'optimize-baselines', '--no-modify-scm', '--
suffixes', 'txt', 'fast/dom/prototype-taco.html']], | 1249 [['python', 'echo', 'optimize-baselines', '--no-modify-scm', '--
suffixes', 'txt', 'fast/dom/prototype-taco.html']], |
| 1172 ['git', 'cl', 'upload', '-f'], | 1250 ['git', 'cl', 'upload', '-f'], |
| 1173 ]) | 1251 ]) |
| 1174 finally: | 1252 finally: |
| 1175 builders._exact_matches = old_exact_matches | 1253 builders._exact_matches = old_exact_matches |
| 1176 | 1254 |
| 1177 def test_execute_test_passes_everywhere(self): | 1255 def test_execute_test_passes_everywhere(self): |
| 1178 def blame(path): | 1256 def blame(path): |
| 1179 return """ | 1257 return """ |
| (...skipping 214 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1394 self.tool.executive = MockLineRemovingExecutive() | 1472 self.tool.executive = MockLineRemovingExecutive() |
| 1395 | 1473 |
| 1396 old_exact_matches = builders._exact_matches | 1474 old_exact_matches = builders._exact_matches |
| 1397 try: | 1475 try: |
| 1398 builders._exact_matches = { | 1476 builders._exact_matches = { |
| 1399 "MOCK Mac10.10": {"port_name": "test-mac-mac10.10", "specifiers"
: set(["mock-specifier"])}, | 1477 "MOCK Mac10.10": {"port_name": "test-mac-mac10.10", "specifiers"
: set(["mock-specifier"])}, |
| 1400 "MOCK Mac10.11": {"port_name": "test-mac-mac10.11", "specifiers"
: set(["mock-specifier"])}, | 1478 "MOCK Mac10.11": {"port_name": "test-mac-mac10.11", "specifiers"
: set(["mock-specifier"])}, |
| 1401 } | 1479 } |
| 1402 | 1480 |
| 1403 self.command.tree_status = lambda: 'open' | 1481 self.command.tree_status = lambda: 'open' |
| 1404 self._execute_command_with_mock_options(auth_refresh_token_json=auth
_refresh_token_json, commit_author=commit_author, dry_run=dry_run) | 1482 self._execute_command_with_mock_options(auth_refresh_token_json=auth
_refresh_token_json, |
| 1483 commit_author=commit_author,
dry_run=dry_run) |
| 1405 self.assertEqual(self.tool.executive.calls, expected_executive_calls
) | 1484 self.assertEqual(self.tool.executive.calls, expected_executive_calls
) |
| 1406 | 1485 |
| 1407 # The mac ports should both be removed since they're the only ones i
n builders._exact_matches. | 1486 # The mac ports should both be removed since they're the only ones i
n builders._exact_matches. |
| 1408 self.assertEqual(self.tool.filesystem.read_text_file(test_port.path_
to_generic_test_expectations_file()), """ | 1487 self.assertEqual(self.tool.filesystem.read_text_file(test_port.path_
to_generic_test_expectations_file()), """ |
| 1409 Bug(foo) [ Linux Win ] fast/dom/prototype-taco.html [ NeedsRebaseline ] | 1488 Bug(foo) [ Linux Win ] fast/dom/prototype-taco.html [ NeedsRebaseline ] |
| 1410 """) | 1489 """) |
| 1411 finally: | 1490 finally: |
| 1412 builders._exact_matches = old_exact_matches | 1491 builders._exact_matches = old_exact_matches |
| 1413 | 1492 |
| 1414 def test_execute_with_rietveld_auth_refresh_token(self): | 1493 def test_execute_with_rietveld_auth_refresh_token(self): |
| (...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1468 oc.capture_output() | 1547 oc.capture_output() |
| 1469 self.command._do_one_rebaseline() | 1548 self.command._do_one_rebaseline() |
| 1470 out, _, _ = oc.restore_output() | 1549 out, _, _ = oc.restore_output() |
| 1471 | 1550 |
| 1472 self.assertEqual(out, 'MOCK STDOUT\n') | 1551 self.assertEqual(out, 'MOCK STDOUT\n') |
| 1473 self.assertEqual(self.tool.executive.calls, [ | 1552 self.assertEqual(self.tool.executive.calls, [ |
| 1474 ['git', 'pull'], | 1553 ['git', 'pull'], |
| 1475 ['/mock-checkout/third_party/WebKit/Tools/Scripts/webkit-patch', 'au
to-rebaseline', '--verbose'], | 1554 ['/mock-checkout/third_party/WebKit/Tools/Scripts/webkit-patch', 'au
to-rebaseline', '--verbose'], |
| 1476 ]) | 1555 ]) |
| 1477 self.assertEqual(self._logs, ['MOCK STDOUT']) | 1556 self.assertEqual(self._logs, ['MOCK STDOUT']) |
| OLD | NEW |