[PATCH v2 14/30] patman: Move warning collection to a function

Simon Glass sjg at chromium.org
Mon Oct 26 12:04:26 AEDT 2020


Add a new function in PatchStream to collect the warnings generated while
parsing the stream. This will allow us to adjust the logic, such as
dealing with per-commit warnings.

Two of the warnings are in fact internal errors, so change them to raise
and exception.

Signed-off-by: Simon Glass <sjg at chromium.org>
---

(no changes since v1)

 tools/patman/patchstream.py | 36 +++++++++++++++++++++++-------------
 1 file changed, 23 insertions(+), 13 deletions(-)

diff --git a/tools/patman/patchstream.py b/tools/patman/patchstream.py
index b2cb2debeee..9f283470bc2 100644
--- a/tools/patman/patchstream.py
+++ b/tools/patman/patchstream.py
@@ -83,6 +83,14 @@ class PatchStream:
         self.signoff = []                # Contents of signoff line
         self.commit = None               # Current commit
 
+    def _add_warn(self, warn):
+        """Add a new warning to report to the user
+
+        Args:
+            warn (str): Warning to report
+        """
+        self.warn.append(warn)
+
     def _add_to_series(self, line, name, value):
         """Add a new Series-xxx tag.
 
@@ -237,7 +245,7 @@ class PatchStream:
             # but we are already in a section, this means 'END' is missing
             # for that section, fix it up.
             if self.in_section:
-                self.warn.append("Missing 'END' in section '%s'" % self.in_section)
+                self._add_warn("Missing 'END' in section '%s'" % self.in_section)
                 if self.in_section == 'cover':
                     self.series.cover = self.section
                 elif self.in_section == 'notes':
@@ -247,14 +255,16 @@ class PatchStream:
                     if self.is_log:
                         self.commit.notes += self.section
                 else:
-                    self.warn.append("Unknown section '%s'" % self.in_section)
+                    # This should not happen
+                    raise ValueError("Unknown section '%s'" % self.in_section)
                 self.in_section = None
                 self.skip_blank = True
                 self.section = []
             # but we are already in a change list, that means a blank line
             # is missing, fix it up.
             if self.in_change:
-                self.warn.append("Missing 'blank line' in section '%s-changes'" % self.in_change)
+                self._add_warn("Missing 'blank line' in section '%s-changes'" %
+                               self.in_change)
                 self._finalise_change()
                 self.in_change = None
                 self.change_version = 0
@@ -271,7 +281,8 @@ class PatchStream:
                     if self.is_log:
                         self.commit.notes += self.section
                 else:
-                    self.warn.append("Unknown section '%s'" % self.in_section)
+                    # This should not happen
+                    raise ValueError("Unknown section '%s'" % self.in_section)
                 self.in_section = None
                 self.skip_blank = True
                 self.section = []
@@ -362,8 +373,8 @@ class PatchStream:
                 self.in_change = 'Commit'
                 self.change_version = self._parse_version(value, line)
             else:
-                self.warn.append('Line %d: Ignoring Commit-%s' %
-                                 (self.linenum, name))
+                self._add_warn('Line %d: Ignoring Commit-%s' %
+                               (self.linenum, name))
 
         # Detect the start of a new commit
         elif commit_match:
@@ -377,7 +388,7 @@ class PatchStream:
             # Remove Tested-by self, since few will take much notice
             if (rtag_type == 'Tested-by' and
                     who.find(os.getenv('USER') + '@') != -1):
-                self.warn.append("Ignoring %s" % line)
+                self._add_warn("Ignoring %s" % line)
             elif rtag_type == 'Patch-cc':
                 self.commit.AddCc(who.split(','))
             else:
@@ -394,8 +405,8 @@ class PatchStream:
             # Look for space before tab
             mat = RE_SPACE_BEFORE_TAB.match(line)
             if mat:
-                self.warn.append('Line %d/%d has space before tab' %
-                                 (self.linenum, mat.start()))
+                self._add_warn('Line %d/%d has space before tab' %
+                               (self.linenum, mat.start()))
 
             # OK, we have a valid non-blank line
             out = [line]
@@ -427,8 +438,7 @@ class PatchStream:
         self._finalise_change()
         self._close_commit()
         if self.lines_after_test:
-            self.warn.append('Found %d lines after TEST=' %
-                             self.lines_after_test)
+            self._add_warn('Found %d lines after TEST=' % self.lines_after_test)
 
     def _write_message_id(self, outfd):
         """Write the Message-Id into the output.
@@ -503,8 +513,8 @@ class PatchStream:
                     self.blank_count += 1
                 else:
                     if self.blank_count and (line == '-- ' or match):
-                        self.warn.append("Found possible blank line(s) at "
-                                         "end of file '%s'" % last_fname)
+                        self._add_warn("Found possible blank line(s) at end of file '%s'" %
+                                       last_fname)
                     outfd.write('+\n' * self.blank_count)
                     outfd.write(line + '\n')
                     self.blank_count = 0
-- 
2.29.0.rc2.309.g374f81d7ae-goog



More information about the Patchwork mailing list