summaryrefslogtreecommitdiffstats
path: root/PRESUBMIT_test.py
diff options
context:
space:
mode:
authordgn <dgn@chromium.org>2015-06-10 03:08:22 -0700
committerCommit bot <commit-bot@chromium.org>2015-06-10 10:08:56 +0000
commitaa68d5ec85d3d708557fe8004e6e6ad04416cd0d (patch)
tree31a17f08a772c6acba2e79c838be6c991c2992e6 /PRESUBMIT_test.py
parent94b448769da911aba84576784168e3ff431a96a8 (diff)
downloadchromium_src-aa68d5ec85d3d708557fe8004e6e6ad04416cd0d.zip
chromium_src-aa68d5ec85d3d708557fe8004e6e6ad04416cd0d.tar.gz
chromium_src-aa68d5ec85d3d708557fe8004e6e6ad04416cd0d.tar.bz2
[Android log] Promote using hardcoded string tags
This is to avoid static initializers that would make the code slower. See the linked bug for discussion. This patch deprecates Log#makeTag(String) and adds presubmit checks to enforce at submit time what makeTag was trying to do: length and naming rules BUG=485772 Review URL: https://codereview.chromium.org/1131903007 Cr-Commit-Position: refs/heads/master@{#333710}
Diffstat (limited to 'PRESUBMIT_test.py')
-rwxr-xr-xPRESUBMIT_test.py71
1 files changed, 71 insertions, 0 deletions
diff --git a/PRESUBMIT_test.py b/PRESUBMIT_test.py
index 195fe4f..613fd41 100755
--- a/PRESUBMIT_test.py
+++ b/PRESUBMIT_test.py
@@ -859,6 +859,77 @@ class LogUsageTest(unittest.TestCase):
self.assertTrue('HasAndroidLog.java' in warnings[0].items[0])
self.assertTrue('HasExplicitLog.java' in warnings[0].items[1])
+ def testCheckAndroidCrLogUsage(self):
+ mock_input_api = MockInputApi()
+ mock_output_api = MockOutputApi()
+
+ mock_input_api.files = [
+ MockAffectedFile('RandomStuff.java', [
+ 'random stuff'
+ ]),
+ MockAffectedFile('HasCorrectTag.java', [
+ 'import org.chromium.base.Log;',
+ 'some random stuff',
+ 'private static final String TAG = "cr.Foo";',
+ 'Log.d(TAG, "foo");',
+ ]),
+ MockAffectedFile('HasShortCorrectTag.java', [
+ 'import org.chromium.base.Log;',
+ 'some random stuff',
+ 'private static final String TAG = "cr";',
+ 'Log.d(TAG, "foo");',
+ ]),
+ MockAffectedFile('HasNoTagDecl.java', [
+ 'import org.chromium.base.Log;',
+ 'some random stuff',
+ 'Log.d(TAG, "foo");',
+ ]),
+ MockAffectedFile('HasIncorrectTagDecl.java', [
+ 'import org.chromium.base.Log;',
+ 'private static final String TAHG = "cr.Foo";',
+ 'some random stuff',
+ 'Log.d(TAG, "foo");',
+ ]),
+ MockAffectedFile('HasInlineTag.java', [
+ 'import org.chromium.base.Log;',
+ 'some random stuff',
+ 'private static final String TAG = "cr.Foo";',
+ 'Log.d("TAG", "foo");',
+ ]),
+ MockAffectedFile('HasIncorrectTag.java', [
+ 'import org.chromium.base.Log;',
+ 'some random stuff',
+ 'private static final String TAG = "rubbish";',
+ 'Log.d(TAG, "foo");',
+ ]),
+ MockAffectedFile('HasTooLongTag.java', [
+ 'import org.chromium.base.Log;',
+ 'some random stuff',
+ 'private static final String TAG = "cr.24_charachers_long___";',
+ 'Log.d(TAG, "foo");',
+ ]),
+ ]
+
+ msgs = PRESUBMIT._CheckAndroidCrLogUsage(
+ mock_input_api, mock_output_api)
+
+ self.assertEqual(3, len(msgs))
+
+ # Declaration format
+ self.assertEqual(3, len(msgs[0].items))
+ self.assertTrue('HasNoTagDecl.java' in msgs[0].items)
+ self.assertTrue('HasIncorrectTagDecl.java' in msgs[0].items)
+ self.assertTrue('HasIncorrectTag.java' in msgs[0].items)
+
+ # Tag length
+ self.assertEqual(1, len(msgs[1].items))
+ self.assertTrue('HasTooLongTag.java' in msgs[1].items)
+
+ # Tag must be a variable named TAG
+ self.assertEqual(1, len(msgs[2].items))
+ self.assertTrue('HasInlineTag.java:4' in msgs[2].items)
+
+
if __name__ == '__main__':
unittest.main()