aboutsummaryrefslogtreecommitdiff
path: root/contrib
diff options
context:
space:
mode:
Diffstat (limited to 'contrib')
-rw-r--r--contrib/ChangeLog7
-rwxr-xr-xcontrib/check_GNU_style_lib.py16
2 files changed, 22 insertions, 1 deletions
diff --git a/contrib/ChangeLog b/contrib/ChangeLog
index d5b390c..f23b37a 100644
--- a/contrib/ChangeLog
+++ b/contrib/ChangeLog
@@ -1,5 +1,12 @@
2017-05-29 Tom de Vries <tom@codesourcery.com>
+ * check_GNU_style_lib.py (TrailingWhitespaceCheck.check): Assert no
+ trailing eol.
+ (TrailingWhitespaceTest): New unit test.
+ (check_GNU_style_file): Remove eol before checking.
+
+2017-05-29 Tom de Vries <tom@codesourcery.com>
+
* check_GNU_style_lib.py (check_GNU_style_file): Treat file argument as
file handle. Add and handle file_encoding argument.
* check_GNU_style.py (main): Handle '-' file argument. Call
diff --git a/contrib/check_GNU_style_lib.py b/contrib/check_GNU_style_lib.py
index e1031df..63d0538 100755
--- a/contrib/check_GNU_style_lib.py
+++ b/contrib/check_GNU_style_lib.py
@@ -104,6 +104,7 @@ class TrailingWhitespaceCheck:
self.re = re.compile('(\s+)$')
def check(self, filename, lineno, line):
+ assert(len(line) == 0 or line[-1] != '\n')
m = self.re.search(line)
if m != None:
return CheckError(filename, lineno,
@@ -223,6 +224,18 @@ class LineLengthTest(unittest.TestCase):
self.assertEqual(r.console_error,
self.check.limit * 'a' + error_string(' = 123;'))
+class TrailingWhitespaceTest(unittest.TestCase):
+ def setUp(self):
+ self.check = TrailingWhitespaceCheck()
+
+ def test_trailing_whitespace_check_basic(self):
+ r = self.check.check('foo', 123, 'a = 123;')
+ self.assertIsNone(r)
+ r = self.check.check('foo', 123, 'a = 123; ')
+ self.assertIsNotNone(r)
+ r = self.check.check('foo', 123, 'a = 123;\t')
+ self.assertIsNotNone(r)
+
def check_GNU_style_file(file, file_encoding, format):
checks = [LineLengthCheck(), SpacesCheck(), TrailingWhitespaceCheck(),
SentenceSeparatorCheck(), SentenceEndOfCommentCheck(),
@@ -244,7 +257,8 @@ def check_GNU_style_file(file, file_encoding, format):
for line in hunk:
if line.is_added and line.target_line_no != None:
for check in checks:
- e = check.check(t, line.target_line_no, line.value)
+ line_chomp = line.value.replace('\n', '')
+ e = check.check(t, line.target_line_no, line_chomp)
if e != None:
errors.append(e)