Re: [OE-core] [PATCH 02/30] oeqa/selftest/{context, case}: Handle KeyboardInterrupt/SIGINT and SIGTERM

2017-07-12 Thread Aníbal Limón
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

2017-07-12 Thread Leonardo Sandoval
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,