Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(242)

Side by Side Diff: PRESUBMIT_test.py

Issue 11417044: Adds a presubmit that looks for version control conflicts. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: adding line contents Created 8 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « PRESUBMIT.py ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #!/usr/bin/env python 1 #!/usr/bin/env python
2 # Copyright (c) 2012 The Chromium Authors. All rights reserved. 2 # Copyright (c) 2012 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 import os 6 import os
7 import re 7 import re
8 import unittest 8 import unittest
9 9
10 import PRESUBMIT 10 import PRESUBMIT
11 11
12 12
13 class MockInputApi(object): 13 class MockInputApi(object):
14 def __init__(self): 14 def __init__(self):
15 self.re = re 15 self.re = re
16 self.os_path = os.path 16 self.os_path = os.path
17 17
18 18
19 class MockFile(object): 19 class MockFile(object):
20 def __init__(self, local_path, new_contents): 20 def __init__(self, local_path, new_contents):
21 self._local_path = local_path 21 self._local_path = local_path
22 self._new_contents = new_contents 22 self._new_contents = new_contents
23 self._changed_contents = [(i + 1, l) for i, l in enumerate(new_contents)]
24
25 def ChangedContents(self):
26 return self._changed_contents
23 27
24 def NewContents(self): 28 def NewContents(self):
25 return self._new_contents 29 return self._new_contents
26 30
27 def LocalPath(self): 31 def LocalPath(self):
28 return self._local_path 32 return self._local_path
29 33
30 34
31 class IncludeOrderTest(unittest.TestCase): 35 class IncludeOrderTest(unittest.TestCase):
32 def testSystemHeaderOrder(self): 36 def testSystemHeaderOrder(self):
(...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after
165 '#else', 169 '#else',
166 '#include "b.h"', 170 '#include "b.h"',
167 '#endif', 171 '#endif',
168 '#include "a.h"'] 172 '#include "a.h"']
169 mock_file = MockFile('', contents) 173 mock_file = MockFile('', contents)
170 warnings = PRESUBMIT._CheckIncludeOrderInFile( 174 warnings = PRESUBMIT._CheckIncludeOrderInFile(
171 mock_input_api, mock_file, True, range(1, len(contents) + 1)) 175 mock_input_api, mock_file, True, range(1, len(contents) + 1))
172 self.assertEqual(0, len(warnings)) 176 self.assertEqual(0, len(warnings))
173 177
174 178
179 class VersionControlerConflictsTest(unittest.TestCase):
180 def testTypicalConflict(self):
181 lines = ['<<<<<<< HEAD',
182 ' base::ScopedTempDir temp_dir_;',
183 '=======',
184 ' ScopedTempDir temp_dir_;',
185 '>>>>>>> master']
186 errors = PRESUBMIT._CheckForVersionControlConflictsInFile(
187 MockInputApi(), MockFile('some/path/foo_platform.cc', lines))
188 self.assertEqual(3, len(errors))
189 self.assertTrue('1' in errors[0])
190 self.assertTrue('3' in errors[1])
191 self.assertTrue('5' in errors[2])
192
193
175 if __name__ == '__main__': 194 if __name__ == '__main__':
176 unittest.main() 195 unittest.main()
OLDNEW
« no previous file with comments | « PRESUBMIT.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698