diff mbox series

[pushed] gcc-changelog: check git commit email address

Message ID 647eb68e-ba6c-b9f0-860f-6e51ec248494@suse.cz
State New
Headers show
Series [pushed] gcc-changelog: check git commit email address | expand

Commit Message

Martin Liška Sept. 15, 2021, 2:33 p.m. UTC
contrib/ChangeLog:

	* gcc-changelog/git_commit.py: Check commit email.
	* gcc-changelog/test_email.py: Add new test.
	* gcc-changelog/test_patches.txt: Likewise.
---
  contrib/gcc-changelog/git_commit.py    | 10 ++++++++++
  contrib/gcc-changelog/test_email.py    |  5 +++++
  contrib/gcc-changelog/test_patches.txt | 25 +++++++++++++++++++++++++
  3 files changed, 40 insertions(+)
diff mbox series

Patch

diff --git a/contrib/gcc-changelog/git_commit.py b/contrib/gcc-changelog/git_commit.py
index d1646bdc0cd..03736140fd0 100755
--- a/contrib/gcc-changelog/git_commit.py
+++ b/contrib/gcc-changelog/git_commit.py
@@ -326,6 +326,8 @@  class GitCommit:
          if not self.info:
              return
  
+        self.check_commit_email()
+
          # Extract PR numbers form the subject line
          # Match either [PRnnnn] / (PRnnnn) or PR component/nnnn
          if self.info.lines and not self.revert_commit:
@@ -803,3 +805,11 @@  class GitCommit:
          print('Errors:')
          for error in self.errors:
              print(error)
+
+    def check_commit_email(self):
+        # Parse 'Martin Liska  <mliska@suse.cz>'
+        email = self.info.author.split(' ')[-1].strip('<>')
+
+        # Verify that all characters are ASCII
+        if len(email) != len(email.encode()):
+            self.errors.append(Error(f'non-ASCII characters in git commit email address ({email})'))
diff --git a/contrib/gcc-changelog/test_email.py b/contrib/gcc-changelog/test_email.py
index 319e065ca55..dae7c27c707 100755
--- a/contrib/gcc-changelog/test_email.py
+++ b/contrib/gcc-changelog/test_email.py
@@ -440,3 +440,8 @@  class TestGccChangelog(unittest.TestCase):
      def test_copyright_years(self):
          email = self.from_patch_glob('copyright-years.patch')
          assert not email.errors
+
+    def test_non_ascii_email(self):
+        email = self.from_patch_glob('non-ascii-email.patch')
+        assert (email.errors[0].message ==
+                'non-ASCII characters in git commit email address (jbglaw@ług-owl.de)')
diff --git a/contrib/gcc-changelog/test_patches.txt b/contrib/gcc-changelog/test_patches.txt
index ba516274fc1..98a0d3f1ee0 100644
--- a/contrib/gcc-changelog/test_patches.txt
+++ b/contrib/gcc-changelog/test_patches.txt
@@ -3464,3 +3464,28 @@  index 6f67552d075..32478f070e8 100644
  +
  --
  2.25.1
+
+=== non-ascii-email.patch ===
+From f42e95a830ab48e59389065ce79a013a519646f1 Mon Sep 17 00:00:00 2001
+From: Jan-Benedict Glaw <jbglaw@ług-owl.de>
+Date: Mon, 13 Sep 2021 12:08:25 +0200
+Subject: [PATCH] Fix multi-statment macro
+
+INIT_CUMULATIVE_ARGS() expands to multiple statements, which will break right
+after an `if` statement. Wrap it into a block.
+
+gcc/ChangeLog:
+
+	* config/alpha/vms.h (INIT_CUMULATIVE_ARGS): Wrap multi-statment
+	define into a block.
+---
+ gcc/config/alpha/vms.h | 10 +++++++---
+ 1 file changed, 7 insertions(+), 3 deletions(-)
+
+diff --git a/gcc/config/alpha/vms.h b/gcc/config/alpha/vms.h
+index 2a9917cde62..0033b0004b3 100644
+--- a/gcc/config/alpha/vms.h
++++ b/gcc/config/alpha/vms.h
+@@ -0,0 +1,1 @@
++
+--