diff options
author | Joshua Lock <joshua.g.lock@intel.com> | 2016-07-14 14:36:32 +0100 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2016-07-20 10:24:56 +0100 |
commit | c9bef2ecf1a30159d11781184829f41844a58c13 (patch) | |
tree | 1b51ce28facd8fd00f83f52a6cf043d2385d558a /meta/lib | |
parent | a7cbd6805febadaad60d1e05899e10e9a8a36c26 (diff) | |
download | openembedded-core-c9bef2ecf1a30159d11781184829f41844a58c13.tar.gz openembedded-core-c9bef2ecf1a30159d11781184829f41844a58c13.tar.bz2 openembedded-core-c9bef2ecf1a30159d11781184829f41844a58c13.zip |
image: add do_image_qa task to run QA checks on the constructed image
This task runs all functions in IMAGE_QA_COMMANDS after the image
construction has completed in order to validate the resulting image.
Image sanity checks should either be Python functions which raise
bb.build.FuncFailed on failure or shell functions with return a
non-zero exit code.
Python functions may instead raise an oe.utils.ImageQAFailed
Exception which takes an extra argument, a description of the
failure.
python image_check_python_ok () {
if True:
raise bb.build.FuncFailed('This check always fails')
else:
bb.note("Nothing to see here")
}
image_check_shell_ok () {
if true
exit 1
else
exit 0
fi
}
[YOCTO #9448]
Signed-off-by: Joshua Lock <joshua.g.lock@intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Diffstat (limited to 'meta/lib')
-rw-r--r-- | meta/lib/oe/utils.py | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/meta/lib/oe/utils.py b/meta/lib/oe/utils.py index cecddc657f..19db540779 100644 --- a/meta/lib/oe/utils.py +++ b/meta/lib/oe/utils.py @@ -304,3 +304,16 @@ def write_ld_so_conf(d): with open(ldsoconf, "w") as f: f.write(d.getVar("base_libdir", True) + '\n') f.write(d.getVar("libdir", True) + '\n') + +class ImageQAFailed(bb.build.FuncFailed): + def __init__(self, description, name=None, logfile=None): + self.description = description + self.name = name + self.logfile=logfile + + def __str__(self): + msg = 'Function failed: %s' % self.name + if self.description: + msg = msg + ' (%s)' % self.description + + return msg |