insane.bbclass: Allow INSANE_SKIP to work on a per test basis

(From OE-Core rev: fbff17f0f01db55c7093f089ec06840179c389bd)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Richard Purdie 2011-07-04 17:12:32 +01:00
parent 2f22d86f4c
commit 7e07f03bc4
1 changed files with 20 additions and 17 deletions

View File

@ -383,7 +383,7 @@ def package_qa_check_staged(path,d):
return sane
# Walk over all files in a directory and call func
def package_qa_walk(path, warnfuncs, errorfuncs, package, d):
def package_qa_walk(path, warnfuncs, errorfuncs, skip, package, d):
import oe.qa
#if this will throw an exception, then fix the dict above
@ -414,7 +414,7 @@ def package_qa_walk(path, warnfuncs, errorfuncs, package, d):
return len(errors) == 0
def package_qa_check_rdepends(pkg, pkgdest, d):
def package_qa_check_rdepends(pkg, pkgdest, skip, d):
sane = True
if not "-dbg" in pkg and not "task-" in pkg and not "-image" in pkg:
# Copied from package_ipk.bbclass
@ -439,7 +439,7 @@ def package_qa_check_rdepends(pkg, pkgdest, d):
# Now do the sanity check!!!
for rdepend in rdepends:
if "-dbg" in rdepend:
if "-dbg" in rdepend and "debug-deps" not in skip:
error_msg = "%s rdepends on %s" % (pkgname,rdepend)
sane = package_qa_handle_error("debug-deps", error_msg, d)
@ -480,27 +480,30 @@ python do_package_qa () {
testmatrix = d.getVarFlags("QAPATHTEST")
g = globals()
warnchecks = []
for w in (d.getVar("WARN_QA", True) or "").split():
if w in testmatrix and testmatrix[w] in g:
warnchecks.append(g[testmatrix[w]])
errorchecks = []
for e in (d.getVar("ERROR_QA", True) or "").split():
if e in testmatrix and testmatrix[e] in g:
errorchecks.append(g[testmatrix[e]])
walk_sane = True
rdepends_sane = True
for package in packages.split():
if bb.data.getVar('INSANE_SKIP_' + package, d, True):
bb.note("Package: %s (skipped)" % package)
continue
skip = (bb.data.getVar('INSANE_SKIP_' + package, d, True) or "").split()
if skip:
bb.note("Package %s skipping QA tests: %s" % (package, str(skip)))
warnchecks = []
for w in (d.getVar("WARN_QA", True) or "").split():
if w in skip:
continue
if w in testmatrix and testmatrix[w] in g:
warnchecks.append(g[testmatrix[w]])
errorchecks = []
for e in (d.getVar("ERROR_QA", True) or "").split():
if e in skip:
continue
if e in testmatrix and testmatrix[e] in g:
errorchecks.append(g[testmatrix[e]])
bb.note("Checking Package: %s" % package)
path = "%s/%s" % (pkgdest, package)
if not package_qa_walk(path, warnchecks, errorchecks, package, d):
if not package_qa_walk(path, warnchecks, errorchecks, skip, package, d):
walk_sane = False
if not package_qa_check_rdepends(package, pkgdest, d):
if not package_qa_check_rdepends(package, pkgdest, skip, d):
rdepends_sane = False