From 0a71c876a1ed4331002cdd3c09d09252de4d5d89 Mon Sep 17 00:00:00 2001 From: Tom de Vries Date: Mon, 29 May 2017 07:31:11 +0000 Subject: [PATCH] check_GNU_style_lib.py: Fix trailing whitespace check 2017-05-29 Tom de Vries * check_GNU_style_lib.py (TrailingWhitespaceCheck.check): Assert no trailing eol. (TrailingWhitespaceTest): New unit test. (check_GNU_style_file): Remove eol before checking. From-SVN: r248556 --- contrib/ChangeLog | 7 +++++++ contrib/check_GNU_style_lib.py | 16 +++++++++++++++- 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/contrib/ChangeLog b/contrib/ChangeLog index d5b390c8c86..f23b37a14c0 100644 --- a/contrib/ChangeLog +++ b/contrib/ChangeLog @@ -1,3 +1,10 @@ +2017-05-29 Tom de Vries + + * 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 * check_GNU_style_lib.py (check_GNU_style_file): Treat file argument as diff --git a/contrib/check_GNU_style_lib.py b/contrib/check_GNU_style_lib.py index e1031dfcd92..63d0538aa57 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) -- 2.30.2