Update To 11.40.268.0
[platform/framework/web/crosswalk.git] / src / cc / PRESUBMIT.py
index f9a0acb..46c3a54 100644 (file)
@@ -21,6 +21,10 @@ def CheckChangeLintsClean(input_api, output_api):
            input_api.AffectedSourceFiles(source_filter)]
   level = 1  # strict, but just warn
 
+  # TODO(danakj): Temporary, while the OVERRIDE and FINAL fixup is in progress.
+  # crbug.com/422353
+  input_api.cpplint._SetFilters('-readability/inheritance')
+
   for file_name in files:
     input_api.cpplint.ProcessFile(file_name, level)
 
@@ -141,10 +145,54 @@ def CheckTodos(input_api, output_api):
 
   if errors:
     return [output_api.PresubmitError(
-      'All TODO comments should be of the form TODO(name).',
+      'All TODO comments should be of the form TODO(name). ' +
+      'Use TODO instead of FIX' + 'ME',
       items=errors)]
   return []
 
+def CheckDoubleAngles(input_api, output_api, white_list=CC_SOURCE_FILES,
+                      black_list=None):
+  errors = []
+
+  source_file_filter = lambda x: input_api.FilterSourceFile(x,
+                                                            white_list,
+                                                            black_list)
+  for f in input_api.AffectedSourceFiles(source_file_filter):
+    contents = input_api.ReadFile(f, 'rb')
+    if ('> >') in contents:
+      errors.append(f.LocalPath())
+
+  if errors:
+    return [output_api.PresubmitError('Use >> instead of > >:', items=errors)]
+  return []
+
+def CheckScopedPtr(input_api, output_api,
+                   white_list=CC_SOURCE_FILES, black_list=None):
+  black_list = tuple(black_list or input_api.DEFAULT_BLACK_LIST)
+  source_file_filter = lambda x: input_api.FilterSourceFile(x,
+                                                            white_list,
+                                                            black_list)
+  errors = []
+  for f in input_api.AffectedSourceFiles(source_file_filter):
+    for line_number, line in f.ChangedContents():
+      # Disallow:
+      # return scoped_ptr<T>(foo);
+      # bar = scoped_ptr<T>(foo);
+      # But allow:
+      # return scoped_ptr<T[]>(foo);
+      # bar = scoped_ptr<T[]>(foo);
+      if re.search(r'(=|\breturn)\s*scoped_ptr<.*?(?<!])>\([^)]+\)', line):
+        errors.append(output_api.PresubmitError(
+          ('%s:%d uses explicit scoped_ptr constructor. ' +
+           'Use make_scoped_ptr() instead.') % (f.LocalPath(), line_number)))
+      # Disallow:
+      # scoped_ptr<T>()
+      if re.search(r'\bscoped_ptr<.*?>\(\)', line):
+        errors.append(output_api.PresubmitError(
+          '%s:%d uses scoped_ptr<T>(). Use nullptr instead.' %
+          (f.LocalPath(), line_number)))
+  return errors
+
 def FindUnquotedQuote(contents, pos):
   match = re.search(r"(?<!\\)(?P<quote>\")", contents[pos:])
   return -1 if not match else match.start("quote") + pos
@@ -285,6 +333,8 @@ def CheckChangeOnUpload(input_api, output_api):
   results += CheckPassByValue(input_api, output_api)
   results += CheckChangeLintsClean(input_api, output_api)
   results += CheckTodos(input_api, output_api)
+  results += CheckDoubleAngles(input_api, output_api)
+  results += CheckScopedPtr(input_api, output_api)
   results += CheckNamespace(input_api, output_api)
   results += CheckForUseOfWrongClock(input_api, output_api)
   results += FindUselessIfdefs(input_api, output_api)
@@ -296,9 +346,4 @@ def GetPreferredTryMasters(project, change):
     'tryserver.blink': {
       'linux_blink_rel': set(['defaulttests']),
     },
-    'tryserver.chromium.gpu': {
-      'linux_gpu': set(['defaulttests']),
-      'mac_gpu': set(['defaulttests']),
-      'win_gpu': set(['defaulttests']),
-    },
   }