Re: [OE-core] [PATCH 02/30] oeqa/selftest/{context, case}: Handle KeyboardInterrupt/SIGINT and SIGTERM
Yes is the same, Anibal On 07/12/2017 09:18 AM, Leonardo Sandoval wrote: > I saw a similar patch in the past. Is this a new revision? > > Leo > > > On Tue, 2017-07-11 at 15:23 -0500, Aníbal Limón wrote: >> 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] >> >> Signed-off-by: Aníbal Limón>> --- >> meta/lib/oeqa/selftest/case.py| 36 +++-- >> meta/lib/oeqa/selftest/context.py | 107 >> +++--- >> 2 files changed, 97 insertions(+), 46 deletions(-) >> >> diff --git a/meta/lib/oeqa/selftest/case.py b/meta/lib/oeqa/selftest/case.py >> index 31a11fddda9..871009c568b 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 >> diff --git a/meta/lib/oeqa/selftest/context.py >> b/meta/lib/oeqa/selftest/context.py >> index ca87398224c..4575a0537fb 100644 >> --- a/meta/lib/oeqa/selftest/context.py >> +++ b/meta/lib/oeqa/selftest/context.py >> @@ -6,6 +6,8 @@ import time >> import glob >> import sys >> import imp >> +import signal >> +from shutil import copyfile >> from random import choice >> >> import oeqa >> @@ -16,13 +18,12 @@ from oeqa.core.exception import OEQAPreRun >> from oeqa.utils.commands import runCmd, get_bb_vars, get_test_layer >> >> class OESelftestTestContext(OETestContext): >> -def __init__(self, td=None, logger=None, machines=None, >> testlayer_path=None): >> +def __init__(self, td=None, logger=None, machines=None, >> config_paths=None): >> super(OESelftestTestContext, self).__init__(td, logger) >> >> self.machines = machines >> self.custommachine = None >> - >> -self.testlayer_path = testlayer_path >> +self.config_paths = config_paths >> >> def runTests(self, machine=None): >> if machine: >> @@ -108,7 +109,29 @@ class >> OESelftestTestContextExecutor(OETestContextExecutor): >> >> self.tc_kwargs['init']['td'] = get_bb_vars() >> self.tc_kwargs['init']['machines'] = self._get_available_machines() >> -self.tc_kwargs['init']['testlayer_path'] = get_test_layer() >> + >> +builddir = os.environ.get("BUILDDIR") >> +self.tc_kwargs['init']['config_paths'] = {} >> +self.tc_kwargs['init']['config_paths']['testlayer_path'] = \ >> +get_test_layer() >> +self.tc_kwargs['init']['config_paths']['builddir'] = builddir >> +self.tc_kwargs['init']['config_paths']['localconf'] = \
Re: [OE-core] [PATCH 02/30] oeqa/selftest/{context, case}: Handle KeyboardInterrupt/SIGINT and SIGTERM
I saw a similar patch in the past. Is this a new revision? Leo On Tue, 2017-07-11 at 15:23 -0500, Aníbal Limón wrote: > 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] > > Signed-off-by: Aníbal Limón> --- > meta/lib/oeqa/selftest/case.py| 36 +++-- > meta/lib/oeqa/selftest/context.py | 107 > +++--- > 2 files changed, 97 insertions(+), 46 deletions(-) > > diff --git a/meta/lib/oeqa/selftest/case.py b/meta/lib/oeqa/selftest/case.py > index 31a11fddda9..871009c568b 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 > diff --git a/meta/lib/oeqa/selftest/context.py > b/meta/lib/oeqa/selftest/context.py > index ca87398224c..4575a0537fb 100644 > --- a/meta/lib/oeqa/selftest/context.py > +++ b/meta/lib/oeqa/selftest/context.py > @@ -6,6 +6,8 @@ import time > import glob > import sys > import imp > +import signal > +from shutil import copyfile > from random import choice > > import oeqa > @@ -16,13 +18,12 @@ from oeqa.core.exception import OEQAPreRun > from oeqa.utils.commands import runCmd, get_bb_vars, get_test_layer > > class OESelftestTestContext(OETestContext): > -def __init__(self, td=None, logger=None, machines=None, > testlayer_path=None): > +def __init__(self, td=None, logger=None, machines=None, > config_paths=None): > super(OESelftestTestContext, self).__init__(td, logger) > > self.machines = machines > self.custommachine = None > - > -self.testlayer_path = testlayer_path > +self.config_paths = config_paths > > def runTests(self, machine=None): > if machine: > @@ -108,7 +109,29 @@ class > OESelftestTestContextExecutor(OETestContextExecutor): > > self.tc_kwargs['init']['td'] = get_bb_vars() > self.tc_kwargs['init']['machines'] = self._get_available_machines() > -self.tc_kwargs['init']['testlayer_path'] = get_test_layer() > + > +builddir = os.environ.get("BUILDDIR") > +self.tc_kwargs['init']['config_paths'] = {} > +self.tc_kwargs['init']['config_paths']['testlayer_path'] = \ > +get_test_layer() > +self.tc_kwargs['init']['config_paths']['builddir'] = builddir > +self.tc_kwargs['init']['config_paths']['localconf'] = \ > +os.path.join(builddir, "conf/local.conf") > +self.tc_kwargs['init']['config_paths']['localconf_backup'] = \ > +os.path.join(builddir,