Testimage feature will provide the ability to run testimage class over a set of succesful upgrades.
Also it will run ptest on recipes that support ptest and retrive the result for store/send to maintainer. Signed-off-by: Aníbal Limón <anibal.li...@linux.intel.com> --- README | 25 +++++++++++++++++++++++++ upgradehelper.py | 38 ++++++++++++++++++++++++++++++++++++-- 2 files changed, 61 insertions(+), 2 deletions(-) diff --git a/README b/README index ee1bd1f..6432f97 100644 --- a/README +++ b/README @@ -61,6 +61,7 @@ machines=qemux86 qemux86-64 qemuarm qemumips qemuppc # optional features buildhistory=no +testimage=no --------------- snip --------------- @@ -93,6 +94,30 @@ $BUILDDIR/upgrade-helper/work/recipe/buildhistory-diff.txt. (Do not remove any other inherited class in the process, e.g. distrodata). +5. If you want to enable testimage (optional) you need to enable in +upgrade-helper.conf also add the following lines to your conf/local.conf +file: + +--------------- snip --------------- +INHERIT += "testimage" + +EXTRA_IMAGE_FEATURES = "debug-tweaks package-management" +# testimage/ptest only work with rpm +PACKAGE_CLASSES = "package_rpm" +--------------- snip --------------- + +Also if you are running in a server without X11 session, you need to start +a vncserver example: + +$ vncserver :1 +$ export DISPLAY=:1 + +If upgrade is succesful testimage/ptest results are generated into +$BUILDDIR/upgrade-helper/work/recipe/ptest_recipe.log if recipe support +ptest. + +(Do not remove any other inherited class in the process, e.g. distrodata). + Usage ----- diff --git a/upgradehelper.py b/upgradehelper.py index c841c2a..222909b 100755 --- a/upgradehelper.py +++ b/upgradehelper.py @@ -157,6 +157,7 @@ class Updater(object): 'qemux86 qemux86-64 qemuarm qemumips qemuppc').split() self.opts['skip_compilation'] = skip_compilation self.opts['buildhistory'] = self._buildhistory_is_enabled() + self.opts['testimage'] = self._testimage_is_enabled() self.uh_dir = os.path.join(build_dir, "upgrade-helper") if not os.path.exists(self.uh_dir): @@ -211,6 +212,41 @@ class Updater(object): return enabled + def _testimage_is_enabled(self): + enabled = False + + if settings.get("testimage", "no") == "yes": + if 'testimage' in self.base_env['INHERIT']: + if not "ptest" in self.base_env["DISTRO_FEATURES"]: + E(" testimage requires ptest in DISTRO_FEATURES please add to"\ + " conf/local.conf.") + exit(1) + + if not "package-management" in self.base_env['EXTRA_IMAGE_FEATURES']: + E(" testimage requires package-management in EXTRA_IMAGE_FEATURES"\ + " please add to conf/local.conf.") + exit(1) + + if not "package_rpm" == self.base_env["PACKAGE_CLASSES"]: + E(" testimage/ptest requires PACKAGE_CLASSES set to package_rpm"\ + " please add to conf/local.conf.") + exit(1) + + enabled = True + else: + E(" testimage was enabled in upgrade-helper.conf"\ + " but isn't INHERIT in conf/local.conf, if you want"\ + " to enable please set.") + exit(1) + else: + if 'testimage' in self.base_env['INHERIT']: + E(" testimage was INHERIT in conf/local.conf"\ + " but testimage=yes isn't in upgrade-helper.conf,"\ + " if you want to enable please set.") + exit(1) + + return enabled + def _get_packages_to_upgrade(self, packages=None): if packages is None: I( "Nothing to upgrade") @@ -497,10 +533,8 @@ class Updater(object): self.uh_recipes_failed_dir, pkg_ctx['PN'])) self.commit_changes(pkg_ctx) - self.statistics.update(pkg_ctx['PN'], pkg_ctx['NPV'], pkg_ctx['MAINTAINER'], pkg_ctx['error']) - self.pkg_upgrade_handler(pkg_ctx) if attempted_pkgs > 1: -- 2.1.4 -- _______________________________________________ yocto mailing list yocto@yoctoproject.org https://lists.yoctoproject.org/listinfo/yocto