From: Denys Dmytriyenko <[email protected]>

insane.bbclass now defines CHECKLAYER_REQUIRED_TESTS list with required
QA checks that are becoming mandatory for Yocto Project Compatible layers.

Update yocto-check-layer.bbclass in order to catch when packages from such
layers try to skip any of the required QA checks.

Signed-off-by: Denys Dmytriyenko <[email protected]>
---
 .../yocto-check-layer.bbclass                 | 20 ++++++++++++-------
 1 file changed, 13 insertions(+), 7 deletions(-)
 rename meta/{classes => classes-global}/yocto-check-layer.bbclass (27%)

diff --git a/meta/classes/yocto-check-layer.bbclass 
b/meta/classes-global/yocto-check-layer.bbclass
similarity index 27%
rename from meta/classes/yocto-check-layer.bbclass
rename to meta/classes-global/yocto-check-layer.bbclass
index 404f5fd9f2..1cdab49661 100644
--- a/meta/classes/yocto-check-layer.bbclass
+++ b/meta/classes-global/yocto-check-layer.bbclass
@@ -5,18 +5,24 @@
 #
 
 #
-# This class is used by yocto-check-layer script for additional per-recipe 
tests
-# The first test ensures that the layer has no recipes skipping 
'installed-vs-shipped' QA checks
+# This class is used by yocto-check-layer script to ensure that packages
+# from Yocto Project Compatible layers don't skip required QA checks listed
+# in CHECKLAYER_REQUIRED_TESTS defined by insane.bbclass
+#
+# It adds an anonymous python function with extra processing to all recipes,
+# globally inheriting this class isn't advisable - yocto-check-layer script
+# handles that during its signature dump
 #
-
-WARN_QA:remove = "installed-vs-shipped"
-ERROR_QA:append = " installed-vs-shipped"
 
 python () {
+    required_tests = set((d.getVar('CHECKLAYER_REQUIRED_TESTS') or '').split())
     packages = set((d.getVar('PACKAGES') or '').split())
     for package in packages:
         skip = set((d.getVar('INSANE_SKIP') or "").split() +
                    (d.getVar('INSANE_SKIP:' + package) or "").split())
-        if 'installed-vs-shipped' in skip:
-            oe.qa.handle_error("installed-vs-shipped", 'Package %s is skipping 
"installed-vs-shipped" QA test.' % package, d)
+        skip_required = skip & required_tests
+        if skip_required:
+            oe.qa.write_error(" ".join(skip_required), 'Package %s is skipping 
required QA tests.' % package, d)
+            bb.error("QA Issue: %s [%s]" % ('Package %s is skipping required 
QA tests.' % package, " ".join(skip_required)))
+            d.setVar("QA_ERRORS_FOUND", "True")
 }
-- 
2.35.3

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#207407): 
https://lists.openembedded.org/g/openembedded-core/message/207407
Mute This Topic: https://lists.openembedded.org/mt/109676070/21656
Group Owner: [email protected]
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to