diff options
author | Ross Burton <ross.burton@arm.com> | 2025-06-05 21:11:51 +0100 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2025-06-09 17:43:41 +0100 |
commit | 8644f202a141f70e6c4bcbcd9dd3e2fd017cde0a (patch) | |
tree | 185b79ec19b6f6bc85c357c60a6c2a8c0b7b3ad1 | |
parent | dfb58eeeab676b196c273ab6e4041e94cee10d1d (diff) | |
download | poky-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.bbclass | 9 |
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() { | |||
1438 | python do_recipe_qa() { | 1438 | python 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) |