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

Unified Diff: tests/presubmit_unittest.py

Issue 9756001: Allow 'class Singleton<T>' in header files. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/tools/depot_tools
Patch Set: add unit test Created 8 years, 9 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « presubmit_canned_checks.py ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tests/presubmit_unittest.py
diff --git a/tests/presubmit_unittest.py b/tests/presubmit_unittest.py
index 6559d572d5ecb78eae6814c15148464453f16d0b..29f9a931007a3846d9fbb61991a0525f07b3db34 100755
--- a/tests/presubmit_unittest.py
+++ b/tests/presubmit_unittest.py
@@ -1493,6 +1493,7 @@ class CannedChecksUnittest(PresubmitTestsBase):
'CheckLicense',
'CheckOwners',
'CheckRietveldTryJobExecution',
+ 'CheckSingletonInHeaders',
'CheckSvnModifiedDirectories',
'CheckSvnForCommonMimeTypes', 'CheckSvnProperty',
'RunPythonUnitTests', 'RunPylint',
@@ -1697,6 +1698,41 @@ class CannedChecksUnittest(PresubmitTestsBase):
'Foo', None, 'Foo ', None,
presubmit.OutputApi.PresubmitPromptWarning)
+ def testCheckSingletonInHeaders(self):
+ change1 = presubmit.Change(
+ 'foo1', 'foo1\n', self.fake_root_dir, None, 0, 0, None)
+ input_api1 = self.MockInputApi(change1, False)
+ affected_file1 = self.mox.CreateMock(presubmit.SvnAffectedFile)
+ affected_file2 = self.mox.CreateMock(presubmit.SvnAffectedFile)
+ input_api1.AffectedSourceFiles(None).AndReturn(
+ [affected_file1, affected_file2])
+ affected_file1.LocalPath().AndReturn('foo.h')
+ input_api1.ReadFile(affected_file1).AndReturn(
+ '// Comment mentioning Singleton<Foo>.\n' +
+ 'friend class Singleton<Foo>;')
+ for _ in range(4):
+ affected_file2.LocalPath().AndReturn('foo.cc')
+
+ change2 = presubmit.Change(
+ 'foo2', 'foo2\n', self.fake_root_dir, None, 0, 0, None)
+ input_api2 = self.MockInputApi(change2, False)
+
+ affected_file3 = self.mox.CreateMock(presubmit.SvnAffectedFile)
+ input_api2.AffectedSourceFiles(None).AndReturn([affected_file3])
+ affected_file3.LocalPath().AndReturn('foo.h')
+ input_api2.ReadFile(affected_file3).AndReturn(
+ 'Foo* foo = Singleton<Foo>::get();')
+
+ self.mox.ReplayAll()
+
+ results1 = presubmit_canned_checks.CheckSingletonInHeaders(
+ input_api1, presubmit.OutputApi)
+ self.assertEquals(results1, [])
+ results2 = presubmit_canned_checks.CheckSingletonInHeaders(
+ input_api2, presubmit.OutputApi)
+ self.assertEquals(len(results2), 1)
+ self.assertEquals(results2[0].__class__, presubmit.OutputApi.PresubmitError)
+
def testCheckChangeHasOnlyOneEol(self):
self.ReadFileTest(presubmit_canned_checks.CheckChangeHasOnlyOneEol,
"Hey!\nHo!\n", "Hey!\nHo!\n\n",
« no previous file with comments | « presubmit_canned_checks.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698