check_GNU_style_lib.py: Fix trailing whitespace check
authorTom de Vries <tom@codesourcery.com>
Mon, 29 May 2017 07:31:11 +0000 (07:31 +0000)
committerTom de Vries <vries@gcc.gnu.org>
Mon, 29 May 2017 07:31:11 +0000 (07:31 +0000)
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.

From-SVN: r248556

contrib/ChangeLog
contrib/check_GNU_style_lib.py

index d5b390c8c86a0750ae13b0e6ce2e70f313c211e1..f23b37a14c0af931286b6dfa52b983198a862994 100644 (file)
@@ -1,3 +1,10 @@
+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
index e1031dfcd929678479a381ae518f367192f32b23..63d0538aa572c4ac946fd47eaa7d1a704a97c718 100755 (executable)
@@ -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)