Fix swapped messages in _CheckUniquePtr
_CheckUniquePtr consistes of two checks -- one related to nullptr, one
related to make_unique. The error messages are currently swapped by
accident. This CL fixes that and adds a check for that.
It also removes some confusing "java/src" subpaths from the mock file
paths in the check. Those got in via copy&paste and are confusing,
while not relevant for what the test is testing.
Bug: 827961
Change-Id: Iaf3272cfc5fe0a641feaee861ad17fe71505800b
Reviewed-on: https://chromium-review.googlesource.com/999604
Reviewed-by: Dirk Pranke <[email protected]>
Commit-Queue: Vaclav Brozek <[email protected]>
Cr-Commit-Position: refs/heads/master@{#548807}
diff --git a/PRESUBMIT.py b/PRESUBMIT.py
index cbcaff69..a3245d88 100644
--- a/PRESUBMIT.py
+++ b/PRESUBMIT.py
@@ -1610,15 +1610,15 @@
'%s:%d\n %s' % (local_path, line_number, line.strip()))
errors = []
- if problems_constructor:
+ if problems_nullptr:
errors.append(output_api.PresubmitError(
'The following files use std::unique_ptr<T>(). Use nullptr instead.',
- problems_constructor))
- if problems_nullptr:
+ problems_nullptr))
+ if problems_constructor:
errors.append(output_api.PresubmitError(
'The following files use explicit std::unique_ptr constructor.'
'Use std::make_unique<T>() instead.',
- problems_nullptr))
+ problems_constructor))
return errors
diff --git a/PRESUBMIT_test.py b/PRESUBMIT_test.py
index 7d21f84..3b75cbe 100755
--- a/PRESUBMIT_test.py
+++ b/PRESUBMIT_test.py
@@ -1642,12 +1642,13 @@
def testTruePositivesNullptr(self):
mock_input_api = MockInputApi()
mock_input_api.files = [
- MockFile('dir/java/src/baz.cc', ['std::unique_ptr<T>()']),
- MockFile('dir/java/src/baz-p.cc', ['std::unique_ptr<T<P>>()']),
+ MockFile('dir/baz.cc', ['std::unique_ptr<T>()']),
+ MockFile('dir/baz-p.cc', ['std::unique_ptr<T<P>>()']),
]
results = PRESUBMIT._CheckUniquePtr(mock_input_api, MockOutputApi())
self.assertEqual(1, len(results))
+ self.assertTrue('nullptr' in results[0].message)
self.assertEqual(2, len(results[0].items))
self.assertTrue('baz.cc' in results[0].items[0])
self.assertTrue('baz-p.cc' in results[0].items[1])
@@ -1655,17 +1656,17 @@
def testTruePositivesConstructor(self):
mock_input_api = MockInputApi()
mock_input_api.files = [
- MockFile('dir/java/src/foo.cc', ['return std::unique_ptr<T>(foo);']),
- MockFile('dir/java/src/bar.mm', ['bar = std::unique_ptr<T>(foo)']),
- MockFile('dir/java/src/mult.cc', [
+ MockFile('dir/foo.cc', ['return std::unique_ptr<T>(foo);']),
+ MockFile('dir/bar.mm', ['bar = std::unique_ptr<T>(foo)']),
+ MockFile('dir/mult.cc', [
'return',
' std::unique_ptr<T>(barVeryVeryLongFooSoThatItWouldNotFitAbove);'
]),
- MockFile('dir/java/src/mult2.cc', [
+ MockFile('dir/mult2.cc', [
'barVeryVeryLongLongBaaaaaarSoThatTheLineLimitIsAlmostReached =',
' std::unique_ptr<T>(foo);'
]),
- MockFile('dir/java/src/mult3.cc', [
+ MockFile('dir/mult3.cc', [
'bar = std::unique_ptr<T>(',
' fooVeryVeryVeryLongStillGoingWellThisWillTakeAWhileFinallyThere);'
]),
@@ -1673,6 +1674,7 @@
results = PRESUBMIT._CheckUniquePtr(mock_input_api, MockOutputApi())
self.assertEqual(1, len(results))
+ self.assertTrue('std::make_unique' in results[0].message)
self.assertEqual(5, len(results[0].items))
self.assertTrue('foo.cc' in results[0].items[0])
self.assertTrue('bar.mm' in results[0].items[1])
@@ -1683,10 +1685,10 @@
def testFalsePositives(self):
mock_input_api = MockInputApi()
mock_input_api.files = [
- MockFile('dir/java/src/foo.cc', ['return std::unique_ptr<T[]>(foo);']),
- MockFile('dir/java/src/bar.mm', ['bar = std::unique_ptr<T[]>(foo)']),
- MockFile('dir/java/src/file.cc', ['std::unique_ptr<T> p = Foo();']),
- MockFile('dir/java/src/baz.cc', [
+ MockFile('dir/foo.cc', ['return std::unique_ptr<T[]>(foo);']),
+ MockFile('dir/bar.mm', ['bar = std::unique_ptr<T[]>(foo)']),
+ MockFile('dir/file.cc', ['std::unique_ptr<T> p = Foo();']),
+ MockFile('dir/baz.cc', [
'std::unique_ptr<T> result = std::make_unique<T>();'
]),
]