Coding-style document asks not to use C99 ( '//' ) comments.

Signed-off-by: Ilya Maximets <[email protected]>
---
 tests/checkpatch.at     | 23 +++++++++++++++++++++++
 utilities/checkpatch.py | 11 +++++++++++
 2 files changed, 34 insertions(+)

diff --git a/tests/checkpatch.at b/tests/checkpatch.at
index 3c321633f..17976dfbb 100755
--- a/tests/checkpatch.at
+++ b/tests/checkpatch.at
@@ -287,3 +287,26 @@ try_checkpatch \
     "
 
 AT_CLEANUP
+
+
+AT_SETUP([checkpatch - comments])
+try_checkpatch \
+   "COMMON_PATCH_HEADER
+    +     a = 1; /* C style comment. */
+    "
+
+try_checkpatch \
+   "COMMON_PATCH_HEADER
+    +     /* http://URL/inside/the/comment.html */
+    "
+
+try_checkpatch \
+   "COMMON_PATCH_HEADER
+    +     a = 1; // C99 style comment.
+    " \
+    "ERROR: C99 style comment
+    #8 FILE: A.c:1:
+         a = 1; // C99 style comment.
+"
+
+AT_CLEANUP
diff --git a/utilities/checkpatch.py b/utilities/checkpatch.py
index 57ef5e6f3..8eab31f60 100755
--- a/utilities/checkpatch.py
+++ b/utilities/checkpatch.py
@@ -163,6 +163,7 @@ __regex_ends_with_bracket = \
 __regex_ptr_declaration_missing_whitespace = re.compile(r'[a-zA-Z0-9]\*[^*]')
 __regex_is_comment_line = re.compile(r'^\s*(/\*|\*\s)')
 __regex_has_comment = re.compile(r'.*(/\*|\*\s)')
+__regex_has_c99_comment = re.compile(r'.*//.*$')
 __regex_trailing_operator = re.compile(r'^[^ ]* [^ ]*[?:]$')
 __regex_conditional_else_bracing = re.compile(r'^\s*else\s*{?$')
 __regex_conditional_else_bracing2 = re.compile(r'^\s*}\selse\s*$')
@@ -298,6 +299,11 @@ def has_comment(line):
     return __regex_has_comment.match(line) is not None
 
 
+def has_c99_comment(line):
+    """Returns TRUE if the current line contains C99 style comment (//)."""
+    return __regex_has_c99_comment.match(line) is not None
+
+
 def trailing_operator(line):
     """Returns TRUE if the current line ends with an operatorsuch as ? or :"""
     return __regex_trailing_operator.match(line) is not None
@@ -545,6 +551,11 @@ checks = [
      'check': lambda x: has_xxx_mark(x),
      'print': lambda: print_warning("Comment with 'xxx' marker")},
 
+    {'regex': r'(\.c|\.h)(\.in)?$', 'match_name': None,
+     'prereq': lambda x: not is_comment_line(x),
+     'check': lambda x: has_c99_comment(x),
+     'print': lambda: print_error("C99 style comment")},
+
     {'regex': r'(\.c|\.h)(\.in)?$', 'match_name': None,
      'prereq': lambda x: has_comment(x),
      'check': lambda x: check_comment_spelling(x)},
-- 
2.17.1

_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to