Error for missing change description in git_commit.py.
authorMartin Liska <mliska@suse.cz>
Fri, 29 May 2020 11:55:35 +0000 (13:55 +0200)
committerMartin Liska <mliska@suse.cz>
Fri, 29 May 2020 15:25:02 +0000 (17:25 +0200)
contrib/ChangeLog:

* gcc-changelog/git_commit.py: Find empty change descriptions.
* gcc-changelog/test_email.py: New test.
* gcc-changelog/test_patches.txt: New patch that tests that.

contrib/gcc-changelog/git_commit.py
contrib/gcc-changelog/test_email.py
contrib/gcc-changelog/test_patches.txt

index 084e83c18ccc17b2e5c8c631ebb9e2f151b368e9..4f82b58f64b96c4655f01714cda33203589afb59 100755 (executable)
@@ -274,6 +274,7 @@ class GitCommit:
         self.parse_lines(all_are_ignored)
         if self.changes:
             self.parse_changelog()
+            self.check_for_empty_description()
             self.deduce_changelog_locations()
             if not self.errors:
                 self.check_mentioned_files()
@@ -440,6 +441,15 @@ class GitCommit:
                         else:
                             last_entry.lines.append(line)
 
+    def check_for_empty_description(self):
+        for entry in self.changelog_entries:
+            for i, line in enumerate(entry.lines):
+                if (star_prefix_regex.match(line) and line.endswith(':') and
+                    (i == len(entry.lines) - 1
+                     or star_prefix_regex.match(entry.lines[i + 1]))):
+                    msg = 'missing description of a change'
+                    self.errors.append(Error(msg, line))
+
     def get_file_changelog_location(self, changelog_file):
         for file in self.modified_files:
             if file[0] == changelog_file:
index e73b3626473b4682c68960942b58c2b9762c984a..158eb6513679a9cb201dab8e91b0cd5089d3ab9e 100755 (executable)
@@ -312,3 +312,9 @@ class TestGccChangelog(unittest.TestCase):
                 == 'Steven G. Kargl  <kargl@gcc.gnu.org>')
         assert (email.changelog_entries[0].author_lines[1][0]
                 == 'Mark Eggleston  <markeggleston@gcc.gnu.org>')
+
+    def test_missing_change_description(self):
+        email = self.from_patch_glob('0001-Missing-change-description.patch')
+        assert len(email.errors) == 2
+        assert email.errors[0].message == 'missing description of a change'
+        assert email.errors[1].message == 'missing description of a change'
index 76037c33f93859e422aa209aa3bddec2371d7f4b..25311fbf3006d1c09dc3b559fa2c23719e8c8a01 100644 (file)
@@ -2945,3 +2945,31 @@ index 00000000000..fda10c1a88b
 +
 -- 
 2.26.2
+
+=== 0001-Missing-change-description.patch ===
+From 8ec655bd94615ba45adabae9b50df299edb74eda Mon Sep 17 00:00:00 2001
+From: Martin Liska <mliska@suse.cz>
+Date: Fri, 29 May 2020 13:42:57 +0200
+Subject: [PATCH] Test me.
+
+gcc/ChangeLog:
+
+       * ipa-icf-gimple.c (compare_gimple_asm):
+       * ipa-icf-gimple2.c (compare_gimple_asm): Good.
+       * ipa-icf-gimple3.c (compare_gimple_asm):
+---
+ contrib/gcc-changelog/git_commit.py | 10 ++++++++++
+ gcc/ipa-icf-gimple.c                |  1 +
+ 2 files changed, 11 insertions(+)
+
+diff --git a/gcc/ipa-icf-gimple.c b/gcc/ipa-icf-gimple.c
+index 1cd5872c03d..6f95aedb3d3 100644
+--- a/gcc/ipa-icf-gimple.c
++++ b/gcc/ipa-icf-gimple.c
+@@ -850,3 +850,4 @@
+ }
+ } // ipa_icf_gimple namespace
++
+-- 
+2.26.2