[gnome-continuous-yocto/gnomeostree-3.28-rocko: 6494/8267] insane: add extensible framework for recipe-wide QA tests
- From: Emmanuele Bassi <ebassi src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-continuous-yocto/gnomeostree-3.28-rocko: 6494/8267] insane: add extensible framework for recipe-wide QA tests
- Date: Sun, 17 Dec 2017 04:55:26 +0000 (UTC)
commit 1558ff69e0e79006fb48c89e02d00837941b2670
Author: Ross Burton <ross burton intel com>
Date: Mon Jun 19 15:59:40 2017 +0100
insane: add extensible framework for recipe-wide QA tests
Following QAPATHTEST (QA hook for each file in each package) and QAPKGTEST (QA
hook for each package), add QARECIPETEST: a hook which is executed once per
recipe in do_package_qa.
This makes it trivial to add recipe-wide QA tests that integrate with the
existing tests.
(From OE-Core rev: 656780b79e55498250d14b2cbe3bed3849fa690d)
Signed-off-by: Ross Burton <ross burton intel com>
Signed-off-by: Richard Purdie <richard purdie linuxfoundation org>
meta/classes/insane.bbclass | 65 +++++++++++++++++++++++++++---------------
1 files changed, 42 insertions(+), 23 deletions(-)
---
diff --git a/meta/classes/insane.bbclass b/meta/classes/insane.bbclass
index 17c9058..0e974b5 100644
--- a/meta/classes/insane.bbclass
+++ b/meta/classes/insane.bbclass
@@ -808,6 +808,23 @@ def package_qa_package(warnfuncs, errorfuncs, skip, package, d):
return len(errors) == 0
+# Run all recipe-wide warnfuncs and errorfuncs
+def package_qa_recipe(warnfuncs, errorfuncs, skip, pn, d):
+ warnings = {}
+ errors = {}
+
+ for func in warnfuncs:
+ func(pn, d, warnings)
+ for func in errorfuncs:
+ func(pn, d, errors)
+
+ for w in warnings:
+ package_qa_handle_error(w, warnings[w], d)
+ for e in errors:
+ package_qa_handle_error(e, errors[e], d)
+
+ return len(errors) == 0
+
# Walk over all files in a directory and call func
def package_qa_walk(warnfuncs, errorfuncs, skip, package, d):
import oe.qa
@@ -1108,34 +1125,33 @@ python do_package_qa () {
for dep in taskdepdata:
taskdeps.add(taskdepdata[dep][0])
- for package in packages:
- def parse_test_matrix(matrix_name):
- testmatrix = d.getVarFlags(matrix_name) or {}
- g = globals()
- warnchecks = []
- for w in (d.getVar("WARN_QA") or "").split():
- if w in skip:
- continue
- if w in testmatrix and testmatrix[w] in g:
- warnchecks.append(g[testmatrix[w]])
- if w == 'unsafe-references-in-binaries':
- oe.utils.write_ld_so_conf(d)
-
- errorchecks = []
- for e in (d.getVar("ERROR_QA") or "").split():
- if e in skip:
- continue
- if e in testmatrix and testmatrix[e] in g:
- errorchecks.append(g[testmatrix[e]])
- if e == 'unsafe-references-in-binaries':
- oe.utils.write_ld_so_conf(d)
- return warnchecks, errorchecks
+ def parse_test_matrix(matrix_name):
+ testmatrix = d.getVarFlags(matrix_name) or {}
+ g = globals()
+ warnchecks = []
+ for w in (d.getVar("WARN_QA") or "").split():
+ if w in skip:
+ continue
+ if w in testmatrix and testmatrix[w] in g:
+ warnchecks.append(g[testmatrix[w]])
+ if w == 'unsafe-references-in-binaries':
+ oe.utils.write_ld_so_conf(d)
+
+ errorchecks = []
+ for e in (d.getVar("ERROR_QA") or "").split():
+ if e in skip:
+ continue
+ if e in testmatrix and testmatrix[e] in g:
+ errorchecks.append(g[testmatrix[e]])
+ if e == 'unsafe-references-in-binaries':
+ oe.utils.write_ld_so_conf(d)
+ return warnchecks, errorchecks
+ for package in packages:
skip = (d.getVar('INSANE_SKIP_' + package) or "").split()
if skip:
bb.note("Package %s skipping QA tests: %s" % (package, str(skip)))
-
bb.note("Checking Package: %s" % package)
# Check package name
if not pkgname_pattern.match(package):
@@ -1151,6 +1167,9 @@ python do_package_qa () {
package_qa_check_rdepends(package, pkgdest, skip, taskdeps, packages, d)
package_qa_check_deps(package, pkgdest, skip, d)
+ warn_checks, error_checks = parse_test_matrix("QARECIPETEST")
+ package_qa_recipe(warn_checks, error_checks, skip, pn, d)
+
if 'libdir' in d.getVar("ALL_QA").split():
package_qa_check_libdir(d)
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]