| OLD | NEW |
| 1 #!/usr/bin/env python | 1 #!/usr/bin/env python |
| 2 # Copyright (c) 2011 The Chromium Authors. All rights reserved. | 2 # Copyright (c) 2011 The Chromium Authors. All rights reserved. |
| 3 # Use of this source code is governed by a BSD-style license that can be | 3 # Use of this source code is governed by a BSD-style license that can be |
| 4 # found in the LICENSE file. | 4 # found in the LICENSE file. |
| 5 | 5 |
| 6 """Unit tests for patch.py.""" | 6 """Unit tests for patch.py.""" |
| 7 | 7 |
| 8 import logging | 8 import logging |
| 9 import os | 9 import os |
| 10 import posixpath | 10 import posixpath |
| (...skipping 11 matching lines...) Expand all Loading... |
| 22 def _check_patch(self, | 22 def _check_patch(self, |
| 23 p, | 23 p, |
| 24 filename, | 24 filename, |
| 25 diff, | 25 diff, |
| 26 source_filename=None, | 26 source_filename=None, |
| 27 is_binary=False, | 27 is_binary=False, |
| 28 is_delete=False, | 28 is_delete=False, |
| 29 is_git_diff=False, | 29 is_git_diff=False, |
| 30 is_new=False, | 30 is_new=False, |
| 31 patchlevel=0, | 31 patchlevel=0, |
| 32 svn_properties=None): | 32 svn_properties=None, |
| 33 nb_hunks=None): |
| 33 svn_properties = svn_properties or [] | 34 svn_properties = svn_properties or [] |
| 34 self.assertEquals(p.filename, filename) | 35 self.assertEquals(p.filename, filename) |
| 35 self.assertEquals(p.source_filename, source_filename) | 36 self.assertEquals(p.source_filename, source_filename) |
| 36 self.assertEquals(p.is_binary, is_binary) | 37 self.assertEquals(p.is_binary, is_binary) |
| 37 self.assertEquals(p.is_delete, is_delete) | 38 self.assertEquals(p.is_delete, is_delete) |
| 38 if hasattr(p, 'is_git_diff'): | 39 if hasattr(p, 'is_git_diff'): |
| 39 self.assertEquals(p.is_git_diff, is_git_diff) | 40 self.assertEquals(p.is_git_diff, is_git_diff) |
| 40 self.assertEquals(p.is_new, is_new) | 41 self.assertEquals(p.is_new, is_new) |
| 41 if hasattr(p, 'patchlevel'): | 42 if hasattr(p, 'patchlevel'): |
| 42 self.assertEquals(p.patchlevel, patchlevel) | 43 self.assertEquals(p.patchlevel, patchlevel) |
| 43 if diff: | 44 if diff: |
| 44 if is_binary: | 45 if is_binary: |
| 45 self.assertEquals(p.get(), diff) | 46 self.assertEquals(p.get(), diff) |
| 46 else: | 47 else: |
| 47 self.assertEquals(p.get(True), diff) | 48 self.assertEquals(p.get(True), diff) |
| 48 if hasattr(p, 'svn_properties'): | 49 if hasattr(p, 'hunks'): |
| 49 self.assertEquals(p.svn_properties, svn_properties) | 50 self.assertEquals(len(p.hunks), nb_hunks) |
| 51 else: |
| 52 self.assertEquals(None, nb_hunks) |
| 50 | 53 |
| 51 def testFilePatchDelete(self): | 54 def testFilePatchDelete(self): |
| 52 p = patch.FilePatchDelete('foo', False) | 55 p = patch.FilePatchDelete('foo', False) |
| 53 self._check_patch(p, 'foo', None, is_delete=True) | 56 self._check_patch(p, 'foo', None, is_delete=True) |
| 54 | 57 |
| 55 def testFilePatchDeleteBin(self): | 58 def testFilePatchDeleteBin(self): |
| 56 p = patch.FilePatchDelete('foo', True) | 59 p = patch.FilePatchDelete('foo', True) |
| 57 self._check_patch(p, 'foo', None, is_delete=True, is_binary=True) | 60 self._check_patch(p, 'foo', None, is_delete=True, is_binary=True) |
| 58 | 61 |
| 59 def testFilePatchBinary(self): | 62 def testFilePatchBinary(self): |
| 60 p = patch.FilePatchBinary('foo', 'data', [], is_new=False) | 63 p = patch.FilePatchBinary('foo', 'data', [], is_new=False) |
| 61 self._check_patch(p, 'foo', 'data', is_binary=True) | 64 self._check_patch(p, 'foo', 'data', is_binary=True) |
| 62 | 65 |
| 63 def testFilePatchBinaryNew(self): | 66 def testFilePatchBinaryNew(self): |
| 64 p = patch.FilePatchBinary('foo', 'data', [], is_new=True) | 67 p = patch.FilePatchBinary('foo', 'data', [], is_new=True) |
| 65 self._check_patch(p, 'foo', 'data', is_binary=True, is_new=True) | 68 self._check_patch(p, 'foo', 'data', is_binary=True, is_new=True) |
| 66 | 69 |
| 67 def testFilePatchDiff(self): | 70 def testFilePatchDiff(self): |
| 68 p = patch.FilePatchDiff('chrome/file.cc', RAW.PATCH, []) | 71 p = patch.FilePatchDiff('chrome/file.cc', RAW.PATCH, []) |
| 69 self._check_patch(p, 'chrome/file.cc', RAW.PATCH) | 72 self._check_patch(p, 'chrome/file.cc', RAW.PATCH, nb_hunks=1) |
| 70 | 73 |
| 71 def testFilePatchDiffHeaderMode(self): | 74 def testFilePatchDiffHeaderMode(self): |
| 72 p = patch.FilePatchDiff('git_cl/git-cl', GIT.MODE_EXE, []) | 75 p = patch.FilePatchDiff('git_cl/git-cl', GIT.MODE_EXE, []) |
| 73 self._check_patch( | 76 self._check_patch( |
| 74 p, 'git_cl/git-cl', GIT.MODE_EXE, is_git_diff=True, patchlevel=1, | 77 p, 'git_cl/git-cl', GIT.MODE_EXE, is_git_diff=True, patchlevel=1, |
| 75 svn_properties=[('svn:executable', '*')]) | 78 svn_properties=[('svn:executable', '*')], nb_hunks=0) |
| 76 | 79 |
| 77 def testFilePatchDiffHeaderModeIndex(self): | 80 def testFilePatchDiffHeaderModeIndex(self): |
| 78 p = patch.FilePatchDiff('git_cl/git-cl', GIT.MODE_EXE_JUNK, []) | 81 p = patch.FilePatchDiff('git_cl/git-cl', GIT.MODE_EXE_JUNK, []) |
| 79 self._check_patch( | 82 self._check_patch( |
| 80 p, 'git_cl/git-cl', GIT.MODE_EXE_JUNK, is_git_diff=True, patchlevel=1, | 83 p, 'git_cl/git-cl', GIT.MODE_EXE_JUNK, is_git_diff=True, patchlevel=1, |
| 81 svn_properties=[('svn:executable', '*')]) | 84 svn_properties=[('svn:executable', '*')], nb_hunks=0) |
| 82 | 85 |
| 83 def testFilePatchDiffSvnNew(self): | 86 def testFilePatchDiffSvnNew(self): |
| 84 # The code path is different for git and svn. | 87 # The code path is different for git and svn. |
| 85 p = patch.FilePatchDiff('foo', RAW.NEW, []) | 88 p = patch.FilePatchDiff('foo', RAW.NEW, []) |
| 86 self._check_patch(p, 'foo', RAW.NEW, is_new=True) | 89 self._check_patch(p, 'foo', RAW.NEW, is_new=True, nb_hunks=1) |
| 87 | 90 |
| 88 def testFilePatchDiffGitNew(self): | 91 def testFilePatchDiffGitNew(self): |
| 89 # The code path is different for git and svn. | 92 # The code path is different for git and svn. |
| 90 p = patch.FilePatchDiff('foo', GIT.NEW, []) | 93 p = patch.FilePatchDiff('foo', GIT.NEW, []) |
| 91 self._check_patch( | 94 self._check_patch( |
| 92 p, 'foo', GIT.NEW, is_new=True, is_git_diff=True, patchlevel=1) | 95 p, 'foo', GIT.NEW, is_new=True, is_git_diff=True, patchlevel=1, |
| 96 nb_hunks=1) |
| 93 | 97 |
| 94 def testValidSvn(self): | 98 def testSvn(self): |
| 95 # Should not throw. | 99 # Should not throw. |
| 96 p = patch.FilePatchDiff('chrome/file.cc', RAW.PATCH, []) | 100 p = patch.FilePatchDiff('chrome/file.cc', RAW.PATCH, []) |
| 97 lines = RAW.PATCH.splitlines(True) | 101 lines = RAW.PATCH.splitlines(True) |
| 98 header = ''.join(lines[:4]) | 102 header = ''.join(lines[:4]) |
| 99 hunks = ''.join(lines[4:]) | 103 hunks = ''.join(lines[4:]) |
| 100 self.assertEquals(header, p.diff_header) | 104 self.assertEquals(header, p.diff_header) |
| 101 self.assertEquals(hunks, p.diff_hunks) | 105 self.assertEquals(hunks, p.diff_hunks) |
| 102 self.assertEquals(RAW.PATCH, p.get(True)) | 106 self.assertEquals(RAW.PATCH, p.get(True)) |
| 103 self.assertEquals(RAW.PATCH, p.get(False)) | 107 self.assertEquals(RAW.PATCH, p.get(False)) |
| 104 | 108 |
| 105 def testValidSvnNew(self): | 109 def testSvnNew(self): |
| 106 p = patch.FilePatchDiff('chrome/file.cc', RAW.MINIMAL_NEW, []) | 110 p = patch.FilePatchDiff('chrome/file.cc', RAW.MINIMAL_NEW, []) |
| 107 self.assertEquals(RAW.MINIMAL_NEW, p.diff_header) | 111 self.assertEquals(RAW.MINIMAL_NEW, p.diff_header) |
| 108 self.assertEquals('', p.diff_hunks) | 112 self.assertEquals('', p.diff_hunks) |
| 109 self.assertEquals(RAW.MINIMAL_NEW, p.get(True)) | 113 self.assertEquals(RAW.MINIMAL_NEW, p.get(True)) |
| 110 self.assertEquals(RAW.MINIMAL_NEW, p.get(False)) | 114 self.assertEquals(RAW.MINIMAL_NEW, p.get(False)) |
| 111 | 115 |
| 112 def testValidSvnDelete(self): | 116 def testSvnDelete(self): |
| 113 p = patch.FilePatchDiff('chrome/file.cc', RAW.MINIMAL_DELETE, []) | 117 p = patch.FilePatchDiff('chrome/file.cc', RAW.MINIMAL_DELETE, []) |
| 114 self.assertEquals(RAW.MINIMAL_DELETE, p.diff_header) | 118 self.assertEquals(RAW.MINIMAL_DELETE, p.diff_header) |
| 115 self.assertEquals('', p.diff_hunks) | 119 self.assertEquals('', p.diff_hunks) |
| 116 self.assertEquals(RAW.MINIMAL_DELETE, p.get(True)) | 120 self.assertEquals(RAW.MINIMAL_DELETE, p.get(True)) |
| 117 self.assertEquals(RAW.MINIMAL_DELETE, p.get(False)) | 121 self.assertEquals(RAW.MINIMAL_DELETE, p.get(False)) |
| 118 | 122 |
| 119 def testValidSvnRename(self): | 123 def testSvnRename(self): |
| 120 p = patch.FilePatchDiff('file_b', RAW.MINIMAL_RENAME, []) | 124 p = patch.FilePatchDiff('file_b', RAW.MINIMAL_RENAME, []) |
| 121 self.assertEquals(RAW.MINIMAL_RENAME, p.diff_header) | 125 self.assertEquals(RAW.MINIMAL_RENAME, p.diff_header) |
| 122 self.assertEquals('', p.diff_hunks) | 126 self.assertEquals('', p.diff_hunks) |
| 123 self.assertEquals(RAW.MINIMAL_RENAME, p.get(True)) | 127 self.assertEquals(RAW.MINIMAL_RENAME, p.get(True)) |
| 124 self.assertEquals('--- file_b\n+++ file_b\n', p.get(False)) | 128 self.assertEquals('--- file_b\n+++ file_b\n', p.get(False)) |
| 125 | 129 |
| 126 def testRelPath(self): | 130 def testRelPath(self): |
| 127 patches = patch.PatchSet([ | 131 patches = patch.PatchSet([ |
| 128 patch.FilePatchDiff('pp', GIT.COPY, []), | 132 patch.FilePatchDiff('pp', GIT.COPY, []), |
| 129 patch.FilePatchDiff( | 133 patch.FilePatchDiff( |
| (...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 185 mangled_patch = RAW.PATCH.replace('chrome/', 'chrome\\') | 189 mangled_patch = RAW.PATCH.replace('chrome/', 'chrome\\') |
| 186 patches = patch.PatchSet([ | 190 patches = patch.PatchSet([ |
| 187 patch.FilePatchDiff('chrome\\file.cc', mangled_patch, []), | 191 patch.FilePatchDiff('chrome\\file.cc', mangled_patch, []), |
| 188 patch.FilePatchDelete('other\\place\\foo', True), | 192 patch.FilePatchDelete('other\\place\\foo', True), |
| 189 ]) | 193 ]) |
| 190 expected = ['chrome/file.cc', 'other/place/foo'] | 194 expected = ['chrome/file.cc', 'other/place/foo'] |
| 191 self.assertEquals(expected, patches.filenames) | 195 self.assertEquals(expected, patches.filenames) |
| 192 self.assertEquals(RAW.PATCH, patches.patches[0].get(True)) | 196 self.assertEquals(RAW.PATCH, patches.patches[0].get(True)) |
| 193 self.assertEquals(RAW.PATCH, patches.patches[0].get(False)) | 197 self.assertEquals(RAW.PATCH, patches.patches[0].get(False)) |
| 194 | 198 |
| 199 def testTwoHunks(self): |
| 200 name = 'chrome/app/generated_resources.grd' |
| 201 p = patch.FilePatchDiff(name, RAW.TWO_HUNKS, []) |
| 202 self._check_patch(p, name, RAW.TWO_HUNKS, nb_hunks=2) |
| 203 |
| 204 def testGitThreeHunks(self): |
| 205 p = patch.FilePatchDiff('presubmit_support.py', GIT.FOUR_HUNKS, []) |
| 206 self._check_patch( |
| 207 p, 'presubmit_support.py', GIT.FOUR_HUNKS, is_git_diff=True, |
| 208 patchlevel=1, |
| 209 nb_hunks=4) |
| 210 |
| 195 def testDelete(self): | 211 def testDelete(self): |
| 196 p = patch.FilePatchDiff('tools/clang_check/README.chromium', RAW.DELETE, []) | 212 p = patch.FilePatchDiff('tools/clang_check/README.chromium', RAW.DELETE, []) |
| 197 self._check_patch( | 213 self._check_patch( |
| 198 p, 'tools/clang_check/README.chromium', RAW.DELETE, is_delete=True) | 214 p, 'tools/clang_check/README.chromium', RAW.DELETE, is_delete=True, |
| 215 nb_hunks=1) |
| 216 |
| 217 def testDelete2(self): |
| 218 name = 'browser/extensions/extension_sidebar_api.cc' |
| 219 p = patch.FilePatchDiff(name, RAW.DELETE2, []) |
| 220 self._check_patch(p, name, RAW.DELETE2, is_delete=True, nb_hunks=1) |
| 199 | 221 |
| 200 def testGitDelete(self): | 222 def testGitDelete(self): |
| 201 p = patch.FilePatchDiff('tools/clang_check/README.chromium', GIT.DELETE, []) | 223 p = patch.FilePatchDiff('tools/clang_check/README.chromium', GIT.DELETE, []) |
| 202 self._check_patch( | 224 self._check_patch( |
| 203 p, 'tools/clang_check/README.chromium', GIT.DELETE, is_delete=True, | 225 p, 'tools/clang_check/README.chromium', GIT.DELETE, is_delete=True, |
| 204 is_git_diff=True, patchlevel=1) | 226 is_git_diff=True, patchlevel=1, nb_hunks=1) |
| 205 | 227 |
| 206 def testGitRename(self): | 228 def testGitRename(self): |
| 207 p = patch.FilePatchDiff('tools/run_local_server.sh', GIT.RENAME, []) | 229 p = patch.FilePatchDiff('tools/run_local_server.sh', GIT.RENAME, []) |
| 208 self._check_patch(p, 'tools/run_local_server.sh', GIT.RENAME, | 230 self._check_patch( |
| 209 is_git_diff=True, patchlevel=1, | 231 p, |
| 210 source_filename='tools/run_local_server.PY', is_new=True) | 232 'tools/run_local_server.sh', |
| 233 GIT.RENAME, |
| 234 is_git_diff=True, |
| 235 patchlevel=1, |
| 236 source_filename='tools/run_local_server.PY', |
| 237 is_new=True, |
| 238 nb_hunks=0) |
| 211 | 239 |
| 212 def testGitRenamePartial(self): | 240 def testGitRenamePartial(self): |
| 213 p = patch.FilePatchDiff( | 241 p = patch.FilePatchDiff( |
| 214 'chromeos/views/webui_menu_widget.h', GIT.RENAME_PARTIAL, []) | 242 'chromeos/views/webui_menu_widget.h', GIT.RENAME_PARTIAL, []) |
| 215 self._check_patch( | 243 self._check_patch( |
| 216 p, 'chromeos/views/webui_menu_widget.h', GIT.RENAME_PARTIAL, | 244 p, |
| 217 source_filename='chromeos/views/DOMui_menu_widget.h', is_git_diff=True, | 245 'chromeos/views/webui_menu_widget.h', |
| 218 patchlevel=1, is_new=True) | 246 GIT.RENAME_PARTIAL, |
| 247 source_filename='chromeos/views/DOMui_menu_widget.h', |
| 248 is_git_diff=True, |
| 249 patchlevel=1, |
| 250 is_new=True, |
| 251 nb_hunks=1) |
| 219 | 252 |
| 220 def testGitCopy(self): | 253 def testGitCopy(self): |
| 221 p = patch.FilePatchDiff('pp', GIT.COPY, []) | 254 p = patch.FilePatchDiff('pp', GIT.COPY, []) |
| 222 self._check_patch(p, 'pp', GIT.COPY, is_git_diff=True, patchlevel=1, | 255 self._check_patch( |
| 223 source_filename='PRESUBMIT.py', is_new=True) | 256 p, 'pp', GIT.COPY, is_git_diff=True, patchlevel=1, |
| 257 source_filename='PRESUBMIT.py', is_new=True, nb_hunks=0) |
| 224 | 258 |
| 225 def testOnlyHeader(self): | 259 def testOnlyHeader(self): |
| 226 p = patch.FilePatchDiff('file_a', RAW.MINIMAL, []) | 260 p = patch.FilePatchDiff('file_a', RAW.MINIMAL, []) |
| 227 self._check_patch(p, 'file_a', RAW.MINIMAL) | 261 self._check_patch(p, 'file_a', RAW.MINIMAL, nb_hunks=0) |
| 228 | 262 |
| 229 def testSmallest(self): | 263 def testSmallest(self): |
| 230 p = patch.FilePatchDiff('file_a', RAW.NEW_NOT_NULL, []) | 264 p = patch.FilePatchDiff('file_a', RAW.NEW_NOT_NULL, []) |
| 231 self._check_patch(p, 'file_a', RAW.NEW_NOT_NULL) | 265 self._check_patch(p, 'file_a', RAW.NEW_NOT_NULL, is_new=True, nb_hunks=1) |
| 232 | 266 |
| 233 def testRenameOnlyHeader(self): | 267 def testRenameOnlyHeader(self): |
| 234 p = patch.FilePatchDiff('file_b', RAW.MINIMAL_RENAME, []) | 268 p = patch.FilePatchDiff('file_b', RAW.MINIMAL_RENAME, []) |
| 235 self._check_patch( | 269 self._check_patch( |
| 236 p, 'file_b', RAW.MINIMAL_RENAME, source_filename='file_a', is_new=True) | 270 p, 'file_b', RAW.MINIMAL_RENAME, source_filename='file_a', is_new=True, |
| 271 nb_hunks=0) |
| 237 | 272 |
| 238 def testGitCopyPartial(self): | 273 def testGitCopyPartial(self): |
| 239 p = patch.FilePatchDiff('wtf2', GIT.COPY_PARTIAL, []) | 274 p = patch.FilePatchDiff('wtf2', GIT.COPY_PARTIAL, []) |
| 240 self._check_patch( | 275 self._check_patch( |
| 241 p, 'wtf2', GIT.COPY_PARTIAL, source_filename='wtf', is_git_diff=True, | 276 p, 'wtf2', GIT.COPY_PARTIAL, source_filename='wtf', is_git_diff=True, |
| 242 patchlevel=1, is_new=True) | 277 patchlevel=1, is_new=True, nb_hunks=1) |
| 243 | 278 |
| 244 def testGitCopyPartialAsSvn(self): | 279 def testGitCopyPartialAsSvn(self): |
| 245 p = patch.FilePatchDiff('wtf2', GIT.COPY_PARTIAL, []) | 280 p = patch.FilePatchDiff('wtf2', GIT.COPY_PARTIAL, []) |
| 246 # TODO(maruel): Improve processing. | 281 # TODO(maruel): Improve processing. |
| 247 diff = ( | 282 diff = ( |
| 248 'diff --git a/wtf2 b/wtf22\n' | 283 'diff --git a/wtf2 b/wtf22\n' |
| 249 'similarity index 98%\n' | 284 'similarity index 98%\n' |
| 250 'copy from wtf2\n' | 285 'copy from wtf2\n' |
| 251 'copy to wtf22\n' | 286 'copy to wtf22\n' |
| 252 'index 79fbaf3..3560689 100755\n' | 287 'index 79fbaf3..3560689 100755\n' |
| 253 '--- a/wtf2\n' | 288 '--- a/wtf2\n' |
| 254 '+++ b/wtf22\n' | 289 '+++ b/wtf22\n' |
| 255 '@@ -1,4 +1,4 @@\n' | 290 '@@ -1,4 +1,4 @@\n' |
| 256 '-#!/usr/bin/env python\n' | 291 '-#!/usr/bin/env python\n' |
| 257 '+#!/usr/bin/env python1.3\n' | 292 '+#!/usr/bin/env python1.3\n' |
| 258 ' # Copyright (c) 2010 The Chromium Authors. All rights reserved.\n' | 293 ' # Copyright (c) 2010 The Chromium Authors. All rights reserved.\n' |
| 259 ' # blah blah blah as\n' | 294 ' # blah blah blah as\n' |
| 260 ' # found in the LICENSE file.\n') | 295 ' # found in the LICENSE file.\n') |
| 261 self.assertEquals(diff, p.get(False)) | 296 self.assertEquals(diff, p.get(False)) |
| 262 | 297 |
| 263 def testGitNewExe(self): | 298 def testGitNewExe(self): |
| 264 p = patch.FilePatchDiff('natsort_test.py', GIT.NEW_EXE, []) | 299 p = patch.FilePatchDiff('natsort_test.py', GIT.NEW_EXE, []) |
| 265 self._check_patch( | 300 self._check_patch( |
| 266 p, 'natsort_test.py', GIT.NEW_EXE, is_new=True, is_git_diff=True, | 301 p, |
| 267 patchlevel=1, svn_properties=[('svn:executable', '*')]) | 302 'natsort_test.py', |
| 303 GIT.NEW_EXE, |
| 304 is_new=True, |
| 305 is_git_diff=True, |
| 306 patchlevel=1, |
| 307 svn_properties=[('svn:executable', '*')], |
| 308 nb_hunks=1) |
| 268 | 309 |
| 269 def testGitNewMode(self): | 310 def testGitNewMode(self): |
| 270 p = patch.FilePatchDiff('natsort_test.py', GIT.NEW_MODE, []) | 311 p = patch.FilePatchDiff('natsort_test.py', GIT.NEW_MODE, []) |
| 271 self._check_patch( | 312 self._check_patch( |
| 272 p, 'natsort_test.py', GIT.NEW_MODE, is_new=True, is_git_diff=True, | 313 p, 'natsort_test.py', GIT.NEW_MODE, is_new=True, is_git_diff=True, |
| 273 patchlevel=1) | 314 patchlevel=1, nb_hunks=1) |
| 274 | 315 |
| 275 def testPatchsetOrder(self): | 316 def testPatchsetOrder(self): |
| 276 # Deletes must be last. | 317 # Deletes must be last. |
| 277 # File renames/move/copy must be first. | 318 # File renames/move/copy must be first. |
| 278 patches = [ | 319 patches = [ |
| 279 patch.FilePatchDiff('chrome/file.cc', RAW.PATCH, []), | 320 patch.FilePatchDiff('chrome/file.cc', RAW.PATCH, []), |
| 280 patch.FilePatchDiff( | 321 patch.FilePatchDiff( |
| 281 'tools\\clang_check/README.chromium', GIT.DELETE, []), | 322 'tools\\clang_check/README.chromium', GIT.DELETE, []), |
| 282 patch.FilePatchDiff('tools/run_local_server.sh', GIT.RENAME, []), | 323 patch.FilePatchDiff('tools/run_local_server.sh', GIT.RENAME, []), |
| 283 patch.FilePatchDiff( | 324 patch.FilePatchDiff( |
| (...skipping 168 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 452 self.fail() | 493 self.fail() |
| 453 except patch.UnsupportedPatchFormat: | 494 except patch.UnsupportedPatchFormat: |
| 454 pass | 495 pass |
| 455 | 496 |
| 456 | 497 |
| 457 if __name__ == '__main__': | 498 if __name__ == '__main__': |
| 458 logging.basicConfig(level= | 499 logging.basicConfig(level= |
| 459 [logging.WARNING, logging.INFO, logging.DEBUG][ | 500 [logging.WARNING, logging.INFO, logging.DEBUG][ |
| 460 min(2, sys.argv.count('-v'))]) | 501 min(2, sys.argv.count('-v'))]) |
| 461 unittest.main() | 502 unittest.main() |
| OLD | NEW |