[Buildroot] [PATCH v2 2/3] utils/checkpackagelib: check for Upstream trailers
Vincent Fazio
vfazio at gmail.com
Mon Apr 3 14:41:04 UTC 2023
Implement a check-package check for an Upstream: trailer in patches
being applied to packages per a mailing list discussion [0].
No strict formatting checks are implemented for the contents within the
trailer as the needed level of detail will vary patch-to-patch.
Tested with: `./utils/docker-run python3 -m pytest utils/checkpackagelib`
[0] https://lists.buildroot.org/pipermail/buildroot/2023-March/666016.html
Signed-off-by: Vincent Fazio <vfazio at gmail.com>
---
Changes v1 -> v2:
- Minor updates commit message body
- Fix unit tests
---
utils/checkpackagelib/lib_patch.py | 18 ++++++++++++++++++
utils/checkpackagelib/test_lib_patch.py | 22 ++++++++++++++++++++++
2 files changed, 40 insertions(+)
diff --git a/utils/checkpackagelib/lib_patch.py b/utils/checkpackagelib/lib_patch.py
index caee36158f..1909d3acd0 100644
--- a/utils/checkpackagelib/lib_patch.py
+++ b/utils/checkpackagelib/lib_patch.py
@@ -61,3 +61,21 @@ class Sob(_CheckFunction):
return ["{}:0: missing Signed-off-by in the header "
"({}#_format_and_licensing_of_the_package_patches)"
.format(self.filename, self.url_to_manual)]
+
+class Upstream(_CheckFunction):
+ UPSTREAM_ENTRY = re.compile(r"^Upstream: .*$")
+
+ def before(self):
+ self.found = False
+
+ def check_line(self, lineno, text):
+ if self.found:
+ return
+ if self.UPSTREAM_ENTRY.search(text):
+ self.found = True
+
+ def after(self):
+ if not self.found:
+ return ["{}:0: missing Upstream in the header "
+ "({}#_additional_patch_documentation)"
+ .format(self.filename, self.url_to_manual)]
diff --git a/utils/checkpackagelib/test_lib_patch.py b/utils/checkpackagelib/test_lib_patch.py
index 3b6fadf38c..f7487ef329 100644
--- a/utils/checkpackagelib/test_lib_patch.py
+++ b/utils/checkpackagelib/test_lib_patch.py
@@ -94,3 +94,25 @@ Sob = [
def test_Sob(testname, filename, string, expected):
warnings = util.check_file(m.Sob, filename, string)
assert warnings == expected
+
+
+Upstream = [
+ ('good',
+ 'patch',
+ 'Upstream: https://some/amazing/patch/submission\n',
+ []),
+ ('empty',
+ 'patch',
+ '',
+ [['patch:0: missing Upstream in the header (url#_additional_patch_documentation)']]),
+ ('bad',
+ 'patch',
+ 'Subject: [PATCH 24/105] text\n',
+ [['patch:0: missing Upstream in the header (url#_additional_patch_documentation)']]),
+ ]
+
+
+ at pytest.mark.parametrize('testname,filename,string,expected', Upstream)
+def test_Upstream(testname, filename, string, expected):
+ warnings = util.check_file(m.Upstream, filename, string)
+ assert warnings == expected
--
2.34.1
More information about the buildroot
mailing list