| OLD | NEW |
| 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 |
| (...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 92 self.assertTrue('15' in warnings[0]) | 92 self.assertTrue('15' in warnings[0]) |
| 93 self.assertTrue('25' in warnings[1]) | 93 self.assertTrue('25' in warnings[1]) |
| 94 self.assertTrue('35' in warnings[2]) | 94 self.assertTrue('35' in warnings[2]) |
| 95 | 95 |
| 96 def testSpecialFirstInclude1(self): | 96 def testSpecialFirstInclude1(self): |
| 97 mock_input_api = MockInputApi() | 97 mock_input_api = MockInputApi() |
| 98 contents = ['#include "some/path/foo.h"', | 98 contents = ['#include "some/path/foo.h"', |
| 99 '#include "a/header.h"'] | 99 '#include "a/header.h"'] |
| 100 mock_file = MockFile('some/path/foo.cc', contents) | 100 mock_file = MockFile('some/path/foo.cc', contents) |
| 101 warnings = PRESUBMIT._CheckIncludeOrderInFile( | 101 warnings = PRESUBMIT._CheckIncludeOrderInFile( |
| 102 mock_input_api, mock_file, True, range(1, len(contents) + 1)) | 102 mock_input_api, mock_file, range(1, len(contents) + 1)) |
| 103 self.assertEqual(0, len(warnings)) | 103 self.assertEqual(0, len(warnings)) |
| 104 | 104 |
| 105 def testSpecialFirstInclude2(self): | 105 def testSpecialFirstInclude2(self): |
| 106 mock_input_api = MockInputApi() | 106 mock_input_api = MockInputApi() |
| 107 contents = ['#include "some/other/path/foo.h"', | 107 contents = ['#include "some/other/path/foo.h"', |
| 108 '#include "a/header.h"'] | 108 '#include "a/header.h"'] |
| 109 mock_file = MockFile('some/path/foo.cc', contents) | 109 mock_file = MockFile('some/path/foo.cc', contents) |
| 110 warnings = PRESUBMIT._CheckIncludeOrderInFile( | 110 warnings = PRESUBMIT._CheckIncludeOrderInFile( |
| 111 mock_input_api, mock_file, True, range(1, len(contents) + 1)) | 111 mock_input_api, mock_file, range(1, len(contents) + 1)) |
| 112 self.assertEqual(0, len(warnings)) | 112 self.assertEqual(0, len(warnings)) |
| 113 | 113 |
| 114 def testSpecialFirstInclude3(self): | 114 def testSpecialFirstInclude3(self): |
| 115 mock_input_api = MockInputApi() | 115 mock_input_api = MockInputApi() |
| 116 contents = ['#include "some/path/foo.h"', | 116 contents = ['#include "some/path/foo.h"', |
| 117 '#include "a/header.h"'] | 117 '#include "a/header.h"'] |
| 118 mock_file = MockFile('some/path/foo_platform.cc', contents) | 118 mock_file = MockFile('some/path/foo_platform.cc', contents) |
| 119 warnings = PRESUBMIT._CheckIncludeOrderInFile( | 119 warnings = PRESUBMIT._CheckIncludeOrderInFile( |
| 120 mock_input_api, mock_file, True, range(1, len(contents) + 1)) | 120 mock_input_api, mock_file, range(1, len(contents) + 1)) |
| 121 self.assertEqual(0, len(warnings)) | 121 self.assertEqual(0, len(warnings)) |
| 122 | 122 |
| 123 def testSpecialFirstInclude4(self): | 123 def testSpecialFirstInclude4(self): |
| 124 mock_input_api = MockInputApi() | 124 mock_input_api = MockInputApi() |
| 125 contents = ['#include "some/path/bar.h"', | 125 contents = ['#include "some/path/bar.h"', |
| 126 '#include "a/header.h"'] | 126 '#include "a/header.h"'] |
| 127 mock_file = MockFile('some/path/foo_platform.cc', contents) | 127 mock_file = MockFile('some/path/foo_platform.cc', contents) |
| 128 warnings = PRESUBMIT._CheckIncludeOrderInFile( | 128 warnings = PRESUBMIT._CheckIncludeOrderInFile( |
| 129 mock_input_api, mock_file, True, range(1, len(contents) + 1)) | 129 mock_input_api, mock_file, range(1, len(contents) + 1)) |
| 130 self.assertEqual(1, len(warnings)) | 130 self.assertEqual(1, len(warnings)) |
| 131 self.assertTrue('2' in warnings[0]) | 131 self.assertTrue('2' in warnings[0]) |
| 132 | 132 |
| 133 def testSpecialFirstInclude5(self): |
| 134 mock_input_api = MockInputApi() |
| 135 contents = ['#include "some/other/path/foo.h"', |
| 136 '#include "a/header.h"'] |
| 137 mock_file = MockFile('some/path/foo-suffix.h', contents) |
| 138 warnings = PRESUBMIT._CheckIncludeOrderInFile( |
| 139 mock_input_api, mock_file, range(1, len(contents) + 1)) |
| 140 self.assertEqual(0, len(warnings)) |
| 141 |
| 133 def testOrderAlreadyWrong(self): | 142 def testOrderAlreadyWrong(self): |
| 134 scope = [(1, '#include "b.h"'), | 143 scope = [(1, '#include "b.h"'), |
| 135 (2, '#include "a.h"'), | 144 (2, '#include "a.h"'), |
| 136 (3, '#include "c.h"')] | 145 (3, '#include "c.h"')] |
| 137 mock_input_api = MockInputApi() | 146 mock_input_api = MockInputApi() |
| 138 warnings = PRESUBMIT._CheckIncludeOrderForScope(scope, mock_input_api, | 147 warnings = PRESUBMIT._CheckIncludeOrderForScope(scope, mock_input_api, |
| 139 '', [3]) | 148 '', [3]) |
| 140 self.assertEqual(0, len(warnings)) | 149 self.assertEqual(0, len(warnings)) |
| 141 | 150 |
| 142 def testConflictAdded1(self): | 151 def testConflictAdded1(self): |
| (...skipping 12 matching lines...) Expand all Loading... |
| 155 (3, '#include "d.h"')] | 164 (3, '#include "d.h"')] |
| 156 mock_input_api = MockInputApi() | 165 mock_input_api = MockInputApi() |
| 157 warnings = PRESUBMIT._CheckIncludeOrderForScope(scope, mock_input_api, | 166 warnings = PRESUBMIT._CheckIncludeOrderForScope(scope, mock_input_api, |
| 158 '', [2]) | 167 '', [2]) |
| 159 self.assertEqual(1, len(warnings)) | 168 self.assertEqual(1, len(warnings)) |
| 160 self.assertTrue('2' in warnings[0]) | 169 self.assertTrue('2' in warnings[0]) |
| 161 | 170 |
| 162 def testIfElifElseEndif(self): | 171 def testIfElifElseEndif(self): |
| 163 mock_input_api = MockInputApi() | 172 mock_input_api = MockInputApi() |
| 164 contents = ['#include "e.h"', | 173 contents = ['#include "e.h"', |
| 174 '#define foo', |
| 175 '#include "f.h"', |
| 176 '#undef foo', |
| 177 '#include "e.h"', |
| 165 '#if foo', | 178 '#if foo', |
| 166 '#include "d.h"', | 179 '#include "d.h"', |
| 167 '#elif bar', | 180 '#elif bar', |
| 168 '#include "c.h"', | 181 '#include "c.h"', |
| 169 '#else', | 182 '#else', |
| 170 '#include "b.h"', | 183 '#include "b.h"', |
| 171 '#endif', | 184 '#endif', |
| 172 '#include "a.h"'] | 185 '#include "a.h"'] |
| 173 mock_file = MockFile('', contents) | 186 mock_file = MockFile('', contents) |
| 174 warnings = PRESUBMIT._CheckIncludeOrderInFile( | 187 warnings = PRESUBMIT._CheckIncludeOrderInFile( |
| 175 mock_input_api, mock_file, True, range(1, len(contents) + 1)) | 188 mock_input_api, mock_file, range(1, len(contents) + 1)) |
| 176 self.assertEqual(0, len(warnings)) | 189 self.assertEqual(0, len(warnings)) |
| 177 | 190 |
| 178 def testSysIncludes(self): | 191 def testSysIncludes(self): |
| 179 # #include <sys/...>'s can appear in any order. | 192 # #include <sys/...>'s can appear in any order. |
| 180 mock_input_api = MockInputApi() | 193 mock_input_api = MockInputApi() |
| 181 contents = ['#include <sys/b.h>', | 194 contents = ['#include <sys/b.h>', |
| 182 '#include <sys/a.h>'] | 195 '#include <sys/a.h>'] |
| 183 mock_file = MockFile('', contents) | 196 mock_file = MockFile('', contents) |
| 184 warnings = PRESUBMIT._CheckIncludeOrderInFile( | 197 warnings = PRESUBMIT._CheckIncludeOrderInFile( |
| 185 mock_input_api, mock_file, True, range(1, len(contents) + 1)) | 198 mock_input_api, mock_file, range(1, len(contents) + 1)) |
| 186 self.assertEqual(0, len(warnings)) | 199 self.assertEqual(0, len(warnings)) |
| 187 | 200 |
| 188 | 201 |
| 189 class VersionControlerConflictsTest(unittest.TestCase): | 202 class VersionControlerConflictsTest(unittest.TestCase): |
| 190 def testTypicalConflict(self): | 203 def testTypicalConflict(self): |
| 191 lines = ['<<<<<<< HEAD', | 204 lines = ['<<<<<<< HEAD', |
| 192 ' base::ScopedTempDir temp_dir_;', | 205 ' base::ScopedTempDir temp_dir_;', |
| 193 '=======', | 206 '=======', |
| 194 ' ScopedTempDir temp_dir_;', | 207 ' ScopedTempDir temp_dir_;', |
| 195 '>>>>>>> master'] | 208 '>>>>>>> master'] |
| 196 errors = PRESUBMIT._CheckForVersionControlConflictsInFile( | 209 errors = PRESUBMIT._CheckForVersionControlConflictsInFile( |
| 197 MockInputApi(), MockFile('some/path/foo_platform.cc', lines)) | 210 MockInputApi(), MockFile('some/path/foo_platform.cc', lines)) |
| 198 self.assertEqual(3, len(errors)) | 211 self.assertEqual(3, len(errors)) |
| 199 self.assertTrue('1' in errors[0]) | 212 self.assertTrue('1' in errors[0]) |
| 200 self.assertTrue('3' in errors[1]) | 213 self.assertTrue('3' in errors[1]) |
| 201 self.assertTrue('5' in errors[2]) | 214 self.assertTrue('5' in errors[2]) |
| 202 | 215 |
| 203 | 216 |
| 204 if __name__ == '__main__': | 217 if __name__ == '__main__': |
| 205 unittest.main() | 218 unittest.main() |
| OLD | NEW |