ptest.bbclass has a sanity check that all recipes in oe-core which
inherit ptest are also listed in the ptest-packagelists.inc file, and
the build fails if this is not the case.

Whilst this is a laudable goal, it is over-zealous as if the recipe has
a bbappend in another layer which inherits ptest, the build will fail.

By changing the combination of anonymous Python and bb.error() to a
recipe-scope QA test, this can be handled with the other sanity checks
and bbappends can skip the test if desired.

Signed-off-by: Ross Burton <ross.bur...@arm.com>
---
 meta/classes/insane.bbclass |  2 +-
 meta/classes/ptest.bbclass  | 10 ++++++----
 2 files changed, 7 insertions(+), 5 deletions(-)

diff --git a/meta/classes/insane.bbclass b/meta/classes/insane.bbclass
index b84e6035edb..20d4e4d7463 100644
--- a/meta/classes/insane.bbclass
+++ b/meta/classes/insane.bbclass
@@ -27,7 +27,7 @@ WARN_QA ?= " libdir xorg-driver-abi \
             infodir build-deps src-uri-bad symlink-to-sysroot multilib \
             invalid-packageconfig host-user-contaminated uppercase-pn 
patch-fuzz \
             mime mime-xdg unlisted-pkg-lics unhandled-features-check \
-            missing-update-alternatives native-last \
+            missing-update-alternatives native-last missing-ptest \
             "
 ERROR_QA ?= "dev-so debug-deps dev-deps debug-files arch pkgconfig la \
             perms dep-cmp pkgvarcheck perm-config perm-line perm-link \
diff --git a/meta/classes/ptest.bbclass b/meta/classes/ptest.bbclass
index 200446e52b1..77614ae8609 100644
--- a/meta/classes/ptest.bbclass
+++ b/meta/classes/ptest.bbclass
@@ -118,13 +118,15 @@ python () {
     if not(d.getVar('PTEST_ENABLED') == "1"):
         for i in ['do_configure_ptest_base', 'do_compile_ptest_base', 
'do_install_ptest_base']:
             bb.build.deltask(i, d)
+}
 
+QARECIPETEST[missing-ptest] = "package_qa_check_missing_ptest"
+def package_qa_check_missing_ptest(pn, d, messages):
     # This checks that ptest package is actually included
     # in standard oe-core ptest images - only for oe-core recipes
     if not 'meta/recipes' in d.getVar('FILE') or not(d.getVar('PTEST_ENABLED') 
== "1"):
         return
 
-    enabled_ptests = " 
".join([d.getVar('PTESTS_FAST'),d.getVar('PTESTS_SLOW'), 
d.getVar('PTESTS_PROBLEMS')]).split()
-    if (d.getVar('PN') + "-ptest").replace(d.getVar('MLPREFIX'), '') not in 
enabled_ptests:
-         bb.error("Recipe %s supports ptests but is not included in oe-core's 
conf/distro/include/ptest-packagelists.inc" % d.getVar("PN"))
-}
+    enabled_ptests = " ".join([d.getVar('PTESTS_FAST'), 
d.getVar('PTESTS_SLOW'), d.getVar('PTESTS_PROBLEMS')]).split()
+    if (pn + "-ptest").replace(d.getVar('MLPREFIX'), '') not in enabled_ptests:
+        package_qa_handle_error("missing-ptest", "supports ptests but is not 
included in oe-core's ptest-packagelists.inc", d)
-- 
2.25.1

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#155599): 
https://lists.openembedded.org/g/openembedded-core/message/155599
Mute This Topic: https://lists.openembedded.org/mt/85307739/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to