Files
poky/meta/classes-global/yocto-check-layer.bbclass
Denys Dmytriyenko 2d10a8f522 yocto-check-layer: expand to cover all required QA checks
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.

(From OE-Core rev: 9c3ba88628853b20fb4c98c99cf3fe8349024016)

Signed-off-by: Denys Dmytriyenko <denys@konsulko.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-12-03 11:42:35 +00:00

29 lines
1.1 KiB
Plaintext

#
# Copyright OpenEmbedded Contributors
#
# SPDX-License-Identifier: MIT
#
#
# 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
#
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())
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")
}