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

Side by Side Diff: PRESUBMIT_test.py

Issue 1411553003: PRESUBMIT: Bark about DISALLOW_* macros without #include "base/macros.h" (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: maruel@ review Created 5 years, 2 months 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
« 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 glob 6 import glob
7 import json 7 import json
8 import os 8 import os
9 import re 9 import re
10 import subprocess 10 import subprocess
(...skipping 395 matching lines...) Expand 10 before | Expand all | Expand 10 after
406 406
407 def testSingletonInCC(self): 407 def testSingletonInCC(self):
408 diff_cc = ['Foo* foo = base::Singleton<Foo>::get();'] 408 diff_cc = ['Foo* foo = base::Singleton<Foo>::get();']
409 mock_input_api = MockInputApi() 409 mock_input_api = MockInputApi()
410 mock_input_api.files = [MockAffectedFile('some/path/foo.cc', diff_cc)] 410 mock_input_api.files = [MockAffectedFile('some/path/foo.cc', diff_cc)]
411 warnings = PRESUBMIT._CheckSingletonInHeaders(mock_input_api, 411 warnings = PRESUBMIT._CheckSingletonInHeaders(mock_input_api,
412 MockOutputApi()) 412 MockOutputApi())
413 self.assertEqual(0, len(warnings)) 413 self.assertEqual(0, len(warnings))
414 414
415 415
416 class CheckBaseMacrosInHeadersTest(unittest.TestCase):
417 def _make_h(self, macro, header):
418 return ("""
419 #include "base/%s.h"
420
421 class Thing {
422 private:
423 DISALLOW_%s(Thing);
424 };
425 """ % (macro, header)).splitlines()
426
427 def testBaseMacrosInHeadersBad(self):
428 mock_input_api = MockInputApi()
429 mock_input_api.files = [
430 MockAffectedFile('foo.h', self._make_h('not_macros', 'ASSIGN')),
431 MockAffectedFile('bar.h', self._make_h('not_macros', 'COPY')),
432 MockAffectedFile('baz.h', self._make_h('not_macros', 'COPY_AND_ASSIGN')),
433 MockAffectedFile('qux.h', self._make_h('not_macros', 'EVIL')),
434 ]
435 warnings = PRESUBMIT._CheckBaseMacrosInHeaders(mock_input_api,
436 MockOutputApi())
437 self.assertEqual(1, len(warnings))
438 self.assertEqual(4, len(warnings[0].items))
439
440 def testBaseMacrosInHeadersGood(self):
441 mock_input_api = MockInputApi()
442 mock_input_api.files = [
443 MockAffectedFile('foo.h', self._make_h('macros', 'ASSIGN')),
444 MockAffectedFile('bar.h', self._make_h('macros', 'COPY')),
445 MockAffectedFile('baz.h', self._make_h('macros', 'COPY_AND_ASSIGN')),
446 MockAffectedFile('qux.h', self._make_h('macros', 'EVIL')),
447 ]
448 warnings = PRESUBMIT._CheckBaseMacrosInHeaders(mock_input_api,
449 MockOutputApi())
450 self.assertEqual(0, len(warnings))
451
452
416 class InvalidOSMacroNamesTest(unittest.TestCase): 453 class InvalidOSMacroNamesTest(unittest.TestCase):
417 def testInvalidOSMacroNames(self): 454 def testInvalidOSMacroNames(self):
418 lines = ['#if defined(OS_WINDOWS)', 455 lines = ['#if defined(OS_WINDOWS)',
419 ' #elif defined(OS_WINDOW)', 456 ' #elif defined(OS_WINDOW)',
420 ' # if defined(OS_MACOSX) || defined(OS_CHROME)', 457 ' # if defined(OS_MACOSX) || defined(OS_CHROME)',
421 '# else // defined(OS_MAC)', 458 '# else // defined(OS_MAC)',
422 '#endif // defined(OS_MACOS)'] 459 '#endif // defined(OS_MACOS)']
423 errors = PRESUBMIT._CheckForInvalidOSMacrosInFile( 460 errors = PRESUBMIT._CheckForInvalidOSMacrosInFile(
424 MockInputApi(), MockFile('some/path/foo_platform.cc', lines)) 461 MockInputApi(), MockFile('some/path/foo_platform.cc', lines))
425 self.assertEqual(len(lines), len(errors)) 462 self.assertEqual(len(lines), len(errors))
(...skipping 514 matching lines...) Expand 10 before | Expand all | Expand 10 after
940 # Tag must not contain 977 # Tag must not contain
941 nb = len(msgs[4].items) 978 nb = len(msgs[4].items)
942 self.assertEqual(2, nb, 979 self.assertEqual(2, nb,
943 'Expected %d items, found %d: %s' % (2, nb, msgs[4].items)) 980 'Expected %d items, found %d: %s' % (2, nb, msgs[4].items))
944 self.assertTrue('HasDottedTag.java' in msgs[4].items) 981 self.assertTrue('HasDottedTag.java' in msgs[4].items)
945 self.assertTrue('HasOldTag.java' in msgs[4].items) 982 self.assertTrue('HasOldTag.java' in msgs[4].items)
946 983
947 984
948 if __name__ == '__main__': 985 if __name__ == '__main__':
949 unittest.main() 986 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