From ad734fd64add0f44a4e5125823cc15ee0ae30aa0 Mon Sep 17 00:00:00 2001 From: Aníbal Limón Date: Fri, 23 Jun 2017 15:10:38 -0500 Subject: oeqa/selftest/{context,case}: Handle KeyboardInterrupt/SIGINT and SIGTERM MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit In order to avoid corrupt local.conf and bblayers.conf adds signal handler for SIGTERM and use try/finally (KeyboardIntrrupt) block to restore previously backuped configuration. [YOCTO #11650] (From OE-Core rev: 9419c81e69d2facc82e39c846466670c09e6b444) Signed-off-by: Aníbal Limón Signed-off-by: Richard Purdie --- meta/lib/oeqa/selftest/case.py | 36 +++++++++++++++++++++--------------- 1 file changed, 21 insertions(+), 15 deletions(-) (limited to 'meta/lib/oeqa/selftest/case.py') diff --git a/meta/lib/oeqa/selftest/case.py b/meta/lib/oeqa/selftest/case.py index 31a11fddda..871009c568 100644 --- a/meta/lib/oeqa/selftest/case.py +++ b/meta/lib/oeqa/selftest/case.py @@ -13,28 +13,34 @@ from oeqa.utils.commands import runCmd, bitbake, get_bb_var from oeqa.core.case import OETestCase class OESelftestTestCase(OETestCase): - builddir = os.environ.get("BUILDDIR") or "" - localconf_path = os.path.join(builddir, "conf/local.conf") - localconf_backup = os.path.join(builddir, "conf/local.bk") - testinc_path = os.path.join(builddir, "conf/selftest.inc") - local_bblayers_path = os.path.join(builddir, "conf/bblayers.conf") - local_bblayers_backup = os.path.join(builddir, "conf/bblayers.bk") - testinc_bblayers_path = os.path.join(builddir, "conf/bblayers.inc") - machineinc_path = os.path.join(builddir, "conf/machine.inc") - def __init__(self, methodName="runTest"): self._extra_tear_down_commands = [] - self._track_for_cleanup = [ - self.testinc_path, self.testinc_bblayers_path, - self.machineinc_path, self.localconf_backup, - self.local_bblayers_backup] - super(OESelftestTestCase, self).__init__(methodName) @classmethod def setUpClass(cls): super(OESelftestTestCase, cls).setUpClass() - cls.testlayer_path = cls.tc.testlayer_path + + cls.testlayer_path = cls.tc.config_paths['testlayer_path'] + cls.builddir = cls.tc.config_paths['builddir'] + + cls.localconf_path = cls.tc.config_paths['localconf'] + cls.localconf_backup = cls.tc.config_paths['localconf_class_backup'] + cls.local_bblayers_path = cls.tc.config_paths['bblayers'] + cls.local_bblayers_backup = cls.tc.config_paths['bblayers_class_backup'] + + cls.testinc_path = os.path.join(cls.tc.config_paths['builddir'], + "conf/selftest.inc") + cls.testinc_bblayers_path = os.path.join(cls.tc.config_paths['builddir'], + "conf/bblayers.inc") + cls.machineinc_path = os.path.join(cls.tc.config_paths['builddir'], + "conf/machine.inc") + + cls._track_for_cleanup = [ + cls.testinc_path, cls.testinc_bblayers_path, + cls.machineinc_path, cls.localconf_backup, + cls.local_bblayers_backup] + cls.add_include() @classmethod -- cgit v1.2.3-54-g00ecf