Index: PRESUBMIT_test.py |
diff --git a/PRESUBMIT_test.py b/PRESUBMIT_test.py |
index 9bb6d47c73b81c4775801a2172e472271e650211..acb6adc48f44824c5dadecbf4847cbfd83529440 100755 |
--- a/PRESUBMIT_test.py |
+++ b/PRESUBMIT_test.py |
@@ -1114,5 +1114,60 @@ class HardcodedGoogleHostsTest(unittest.TestCase): |
self.assertEqual(0, len(warnings)) |
+class ForwardDeclarationTest(unittest.TestCase): |
+ def testCheckHeadersOnly(self): |
+ mock_input_api = MockInputApi() |
+ mock_input_api.files = [ |
+ MockAffectedFile('somewhere/file.cc', [ |
+ 'class DummyClass;' |
+ ]) |
+ ] |
+ warnings = PRESUBMIT._CheckUselessForwardDeclarations(mock_input_api, |
+ MockOutputApi()) |
+ self.assertEqual(0, len(warnings)) |
+ |
+ def testNoNestedDeclaration(self): |
+ mock_input_api = MockInputApi() |
+ mock_input_api.files = [ |
+ MockAffectedFile('somewhere/header.h', [ |
+ 'class SomeClass {' |
+ ' protected:' |
+ ' class NotAMatch;' |
+ '};' |
+ ]) |
+ ] |
+ warnings = PRESUBMIT._CheckUselessForwardDeclarations(mock_input_api, |
+ MockOutputApi()) |
+ self.assertEqual(0, len(warnings)) |
+ |
+ def testSubStrings(self): |
+ mock_input_api = MockInputApi() |
+ mock_input_api.files = [ |
+ MockAffectedFile('somewhere/header.h', [ |
+ 'class NotUsefulClass;', |
+ 'struct SomeStruct;', |
+ 'UsefulClass *p1;', |
+ 'SomeStructPtr *p2;' |
+ ]) |
+ ] |
+ warnings = PRESUBMIT._CheckUselessForwardDeclarations(mock_input_api, |
+ MockOutputApi()) |
+ self.assertEqual(2, len(warnings)) |
+ |
+ def testUselessForwardDeclaration(self): |
+ mock_input_api = MockInputApi() |
+ mock_input_api.files = [ |
+ MockAffectedFile('somewhere/header.h', [ |
+ 'class DummyClass;', |
+ 'struct DummyStruct;', |
+ 'class UsefulClass;', |
+ 'std::unique_ptr<UsefulClass> p;' |
+ ]), |
+ ] |
+ warnings = PRESUBMIT._CheckUselessForwardDeclarations(mock_input_api, |
+ MockOutputApi()) |
+ self.assertEqual(2, len(warnings)) |
+ |
+ |
if __name__ == '__main__': |
unittest.main() |