diff options
Diffstat (limited to 'meta/classes-global/yocto-check-layer.bbclass')
| -rw-r--r-- | meta/classes-global/yocto-check-layer.bbclass | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/meta/classes-global/yocto-check-layer.bbclass b/meta/classes-global/yocto-check-layer.bbclass new file mode 100644 index 0000000000..1cdab49661 --- /dev/null +++ b/meta/classes-global/yocto-check-layer.bbclass | |||
| @@ -0,0 +1,28 @@ | |||
| 1 | # | ||
| 2 | # Copyright OpenEmbedded Contributors | ||
| 3 | # | ||
| 4 | # SPDX-License-Identifier: MIT | ||
| 5 | # | ||
| 6 | |||
| 7 | # | ||
| 8 | # This class is used by yocto-check-layer script to ensure that packages | ||
| 9 | # from Yocto Project Compatible layers don't skip required QA checks listed | ||
| 10 | # in CHECKLAYER_REQUIRED_TESTS defined by insane.bbclass | ||
| 11 | # | ||
| 12 | # It adds an anonymous python function with extra processing to all recipes, | ||
| 13 | # globally inheriting this class isn't advisable - yocto-check-layer script | ||
| 14 | # handles that during its signature dump | ||
| 15 | # | ||
| 16 | |||
| 17 | python () { | ||
| 18 | required_tests = set((d.getVar('CHECKLAYER_REQUIRED_TESTS') or '').split()) | ||
| 19 | packages = set((d.getVar('PACKAGES') or '').split()) | ||
| 20 | for package in packages: | ||
| 21 | skip = set((d.getVar('INSANE_SKIP') or "").split() + | ||
| 22 | (d.getVar('INSANE_SKIP:' + package) or "").split()) | ||
| 23 | skip_required = skip & required_tests | ||
| 24 | if skip_required: | ||
| 25 | oe.qa.write_error(" ".join(skip_required), 'Package %s is skipping required QA tests.' % package, d) | ||
| 26 | bb.error("QA Issue: %s [%s]" % ('Package %s is skipping required QA tests.' % package, " ".join(skip_required))) | ||
| 27 | d.setVar("QA_ERRORS_FOUND", "True") | ||
| 28 | } | ||
