aboutsummaryrefslogtreecommitdiff
path: root/Examples/test-suite/python/comment_verifier.py
diff options
context:
space:
mode:
Diffstat (limited to 'Examples/test-suite/python/comment_verifier.py')
-rw-r--r--Examples/test-suite/python/comment_verifier.py26
1 files changed, 26 insertions, 0 deletions
diff --git a/Examples/test-suite/python/comment_verifier.py b/Examples/test-suite/python/comment_verifier.py
new file mode 100644
index 000000000..653cb4940
--- /dev/null
+++ b/Examples/test-suite/python/comment_verifier.py
@@ -0,0 +1,26 @@
+def check(got, expected, expected_builtin=None):
+ if got is None: # Absence of comment is equivalent to empty comment.
+ got = ""
+
+ if got != expected:
+ import re
+ p = re.compile(r"^[+-]([^+-].*\S)?(\s+)$", re.M)
+
+ def make_trailing_spaces_visible(str):
+ def replace_trailing_spaces(match):
+ res = match.group(0)
+ spaces = match.group(2)
+ if spaces is not None:
+ res = res + "{+%d trailing spaces}" % len(spaces)
+ return res
+ return re.sub(p, replace_trailing_spaces, str)
+
+ from difflib import unified_diff
+ diff = unified_diff(expected.splitlines(True),
+ got.splitlines(True), "expected", "got")
+ lines = []
+ for line in diff:
+ line = make_trailing_spaces_visible(line.strip("\r\n"))
+ lines.append(line + "\n")
+
+ raise RuntimeError("Comments don't match:\n" + "".join(lines))