]> git.ipfire.org Git - thirdparty/openembedded/openembedded-core-contrib.git/commitdiff
checklayer: check for patch file upstream status
authorChee Yang Lee <chee.yang.lee@intel.com>
Fri, 24 Feb 2023 04:00:56 +0000 (12:00 +0800)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Fri, 24 Feb 2023 17:05:21 +0000 (17:05 +0000)
yocto-check-layer to check all .patch file in layer for
Upstream-status and list down all .patch file without Upstream-Status.

set this test as expected failure for now, so this wont fail the check
layer while still able to capture any patches with malformed or missing
Upstream-Status in report.

[YOCTO #14642]

Signed-off-by: Chee Yang Lee <chee.yang.lee@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
scripts/lib/checklayer/cases/common.py

index 722d3cf6383f854f64cb2984cf5959bd045e4e82..97b16f78c8e7c175d693538bd60e7e56e2e4f4a3 100644 (file)
@@ -72,6 +72,21 @@ class CommonCheckLayer(OECheckLayerTestCase):
                 self.tc.layer['name'])
             self.fail('\n'.join(msg))
 
+    @unittest.expectedFailure
+    def test_patches_upstream_status(self):
+        import sys
+        sys.path.append(os.path.join(sys.path[0], '../../../../meta/lib/'))
+        import oe.qa
+        patches = []
+        for dirpath, dirs, files in os.walk(self.tc.layer['path']):
+            for filename in files:
+                if filename.endswith(".patch"):
+                    ppath = os.path.join(dirpath, filename)
+                    if oe.qa.check_upstream_status(ppath):
+                        patches.append(ppath)
+        self.assertEqual(len(patches), 0 , \
+                msg="Found following patches with malformed or missing upstream status:\n%s" % '\n'.join([str(patch) for patch in patches]))
+
     def test_signatures(self):
         if self.tc.layer['type'] == LayerType.SOFTWARE and \
            not self.tc.test_software_layer_signatures: