summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRoss Burton <ross.burton@arm.com>2025-06-05 21:11:51 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2025-06-09 17:43:41 +0100
commit8644f202a141f70e6c4bcbcd9dd3e2fd017cde0a (patch)
tree185b79ec19b6f6bc85c357c60a6c2a8c0b7b3ad1
parentdfb58eeeab676b196c273ab6e4041e94cee10d1d (diff)
downloadpoky-8644f202a141f70e6c4bcbcd9dd3e2fd017cde0a.tar.gz
insane: add test for recipe naming/class mismatches
It's not unheard of for new users to create a recipe called foo-native that has BBCLASSEXTEND="native" instead of "inherit native". This will result in a foo-native recipe that is actually a target recipe, and a foo-native-native recipe for native builds. Add a test in recipe_qa to verify that recipes called -native inherit native, and recipes called nativesdk- inherit nativesdk. As this behaviour is expected, add the new test to the set of tests required to pass for Yocto Project Compatible status. (From OE-Core rev: ec2c10a3e85d0772135289fe416d13fa3afca571) Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--meta/classes-global/insane.bbclass9
1 files changed, 8 insertions, 1 deletions
diff --git a/meta/classes-global/insane.bbclass b/meta/classes-global/insane.bbclass
index 152bef8ad5..eb8591f624 100644
--- a/meta/classes-global/insane.bbclass
+++ b/meta/classes-global/insane.bbclass
@@ -32,7 +32,7 @@ CHECKLAYER_REQUIRED_TESTS = "\
32 invalid-packageconfig la \ 32 invalid-packageconfig la \
33 license-checksum license-exception license-exists license-file-missing license-format license-no-generic license-syntax \ 33 license-checksum license-exception license-exists license-file-missing license-format license-no-generic license-syntax \
34 mime mime-xdg missing-update-alternatives multilib obsolete-license \ 34 mime mime-xdg missing-update-alternatives multilib obsolete-license \
35 packages-list patch-fuzz patch-status perllocalpod perm-config perm-line perm-link \ 35 packages-list patch-fuzz patch-status perllocalpod perm-config perm-line perm-link recipe-naming \
36 pkgconfig pkgvarcheck pkgv-undefined pn-overrides shebang-size src-uri-bad symlink-to-sysroot \ 36 pkgconfig pkgvarcheck pkgv-undefined pn-overrides shebang-size src-uri-bad symlink-to-sysroot \
37 unhandled-features-check unknown-configure-option unlisted-pkg-lics uppercase-pn useless-rpaths \ 37 unhandled-features-check unknown-configure-option unlisted-pkg-lics uppercase-pn useless-rpaths \
38 var-undefined virtual-slash xorg-driver-abi" 38 var-undefined virtual-slash xorg-driver-abi"
@@ -1438,6 +1438,12 @@ python do_qa_unpack() {
1438python do_recipe_qa() { 1438python do_recipe_qa() {
1439 import re 1439 import re
1440 1440
1441 def test_naming(pn, d):
1442 if pn.endswith("-native") and not bb.data.inherits_class("native", d):
1443 oe.qa.handle_error("recipe-naming", "Recipe %s appears native but is not, should inherit native" % pn, d)
1444 if pn.startswith("nativesdk-") and not bb.data.inherits_class("nativesdk", d):
1445 oe.qa.handle_error("recipe-naming", "Recipe %s appears nativesdk but is not, should inherit nativesdk" % pn, d)
1446
1441 def test_missing_metadata(pn, d): 1447 def test_missing_metadata(pn, d):
1442 fn = d.getVar("FILE") 1448 fn = d.getVar("FILE")
1443 srcfile = d.getVar('SRC_URI').split() 1449 srcfile = d.getVar('SRC_URI').split()
@@ -1482,6 +1488,7 @@ python do_recipe_qa() {
1482 oe.qa.handle_error("invalid-packageconfig", error_msg, d) 1488 oe.qa.handle_error("invalid-packageconfig", error_msg, d)
1483 1489
1484 pn = d.getVar('PN') 1490 pn = d.getVar('PN')
1491 test_naming(pn, d)
1485 test_missing_metadata(pn, d) 1492 test_missing_metadata(pn, d)
1486 test_missing_maintainer(pn, d) 1493 test_missing_maintainer(pn, d)
1487 test_srcuri(pn, d) 1494 test_srcuri(pn, d)