> Thanks for putting this together!
>
> Most of the changes look fine. I have some comments below that need to
> be addressed we merge this.
> review needs-fixing
>
> > === modified file 'lava_dispatcher/actions/lava_android_test.py'
> > raise TimeoutError(
> > - "The test case(%s) on device(%s) times out" % (
> > - test_name,
> session.dev_name))
> > + "The test case(%s) on device(%s) times out" % (
> > + test_name, session.dev_name))
>
> Please use the opportunity to fix a typo here: s/times/timed/
Done.
> > - def run(self, commands=[], command_file=None, parser=None, timeout=-1):
> > + def run(self, commands=None, command_file=None, parser=None,
> timeout=-1):
> > + if not commands:
> > + commands = []
>
> This should is not actually needed, since commands is only used below inside a
> `if commands:`. Maybe it makes clear that commands is expected to be a list,
> though.
If something other than a list is passed, the function will fail with or without the
added check. I think I'll remove the if and add a docstring instead.
> > === modified file 'lava_dispatcher/actions/lava_test_shell.py'
> > - 'testdef': {'type': 'string',
> > - 'optional': True}
> > - },
> > + {'git-repo': {'type': 'string',
> > + 'optional': True},
> > + 'bzr-repo': {'type': 'string',
> > + 'optional': True},
> > + 'revision': {'type': 'string',
> > + 'optional': True},
> > + 'testdef': {'type': 'string',
> > + 'optional': True}
> > + },
>
>
> The indentation of this part does not look right at all.
> > === modified file 'lava_dispatcher/device/target.py'
> > ubuntu_deployment_data = {
> > 'TESTER_PS1': "linaro-test [rc=$(echo \$?)]# ",
> > 'TESTER_PS1_PATTERN': "linaro-test \[rc=(\d+)\]# ",
> > @@ -86,7 +85,7 @@
> > """
> > raise NotImplementedError('power_on')
> >
> > - def deploy_linaro(self, hwpack, rfs):
> > + def deploy_linaro(self, hwpack, rfs, bootloader):
> > raise NotImplementedError('deploy_image')
> >
> > def deploy_android(self, boot, system, userdata):
> > @@ -130,14 +129,14 @@
> > """ Powers on the target, returning a CommandRunner object and will
> > power off the target when the context is exited
> > """
> > - proc = runner = None
> > + self.proc = runner = None
> > try:
> > - proc = self.power_on()
> > - runner = self._get_runner(proc)
> > + self.proc = self.power_on()
> > + runner = self._get_runner(self.proc)
> > yield runner
> > finally:
> > - if proc and runner:
> > - self.power_off(proc)
> > + if self.proc and runner:
> > + self.power_off(self.proc)
> >
> > def _get_runner(self, proc):
> > from lava_dispatcher.client.base import CommandRunner
>
> it looks like you are changing the logic here. Did you already test this
> change?
It's confusing at this point - this change is linked with the _customize_bootloader function which uses a self.proc but that proc is never defined, using that proc in an expect.
I'll back this change out and put a FIXME in instead.
> > === modified file 'lava_dispatcher/device/vexpress.py'
> > --- lava_dispatcher/device/vexpress.py 2013-04-05 21:58:28 +0000
> > +++ lava_dispatcher/device/vexpress.py 2013-07-16 16:30:42 +0000
> > @@ -27,6 +27,7 @@
> > from lava_dispatcher.device.master import MasterImageTarget
> > from lava_dispatcher.errors import CriticalError
> >
> > +
> > class VexpressTarget(MasterImageTarget):
> >
> > def __init__(self, context, config):
> > @@ -37,7 +38,7 @@
> > if (self.config.uefi_image_filename is None or
> > self.config.vexpress_uefi_path is None or
> > self.config.vexpress_uefi_backup_path is None or
> > - self.config.vexpress_usb_mass_storage_device is None):
> > + self.config.vexpress_usb_mass_storage_device is None):
> >
> > raise CriticalError(
> > "Versatile Express devices must specify all "
>
> This does not look right to me.
Correct, the two lines above also need the indent. I'll fix that.
> Thanks for putting this together! r/actions/ lava_android_ test.py'
>
> Most of the changes look fine. I have some comments below that need to
> be addressed we merge this.
> review needs-fixing
>
> > === modified file 'lava_dispatche
> > raise TimeoutError(
> > - "The test case(%s) on device(%s) times out" % (
> > - test_name,
> session.dev_name))
> > + "The test case(%s) on device(%s) times out" % (
> > + test_name, session.dev_name))
>
> Please use the opportunity to fix a typo here: s/times/timed/
Done.
> > - def run(self, commands=[], command_file=None, parser=None, timeout=-1):
> > + def run(self, commands=None, command_file=None, parser=None,
> timeout=-1):
> > + if not commands:
> > + commands = []
>
> This should is not actually needed, since commands is only used below inside a
> `if commands:`. Maybe it makes clear that commands is expected to be a list,
> though.
If something other than a list is passed, the function will fail with or without the
added check. I think I'll remove the if and add a docstring instead.
> > === modified file 'lava_dispatche r/actions/ lava_test_ shell.py'
> > - 'testdef': {'type': 'string',
> > - 'optional': True}
> > - },
> > + {'git-repo': {'type': 'string',
> > + 'optional': True},
> > + 'bzr-repo': {'type': 'string',
> > + 'optional': True},
> > + 'revision': {'type': 'string',
> > + 'optional': True},
> > + 'testdef': {'type': 'string',
> > + 'optional': True}
> > + },
>
>
> The indentation of this part does not look right at all.
Fixed. It needed a double indent in each case:
> > === modified file 'lava_dispatche r/device/ target. py' deployment_ data = { PS1_PATTERN' : "linaro-test \[rc=(\d+)\]# ", rror('power_ on') rror('deploy_ image') android( self, boot, system, userdata): runner( proc) runner( self.proc) off(proc) off(self. proc) .client. base import CommandRunner
> > ubuntu_
> > 'TESTER_PS1': "linaro-test [rc=$(echo \$?)]# ",
> > 'TESTER_
> > @@ -86,7 +85,7 @@
> > """
> > raise NotImplementedE
> >
> > - def deploy_linaro(self, hwpack, rfs):
> > + def deploy_linaro(self, hwpack, rfs, bootloader):
> > raise NotImplementedE
> >
> > def deploy_
> > @@ -130,14 +129,14 @@
> > """ Powers on the target, returning a CommandRunner object and will
> > power off the target when the context is exited
> > """
> > - proc = runner = None
> > + self.proc = runner = None
> > try:
> > - proc = self.power_on()
> > - runner = self._get_
> > + self.proc = self.power_on()
> > + runner = self._get_
> > yield runner
> > finally:
> > - if proc and runner:
> > - self.power_
> > + if self.proc and runner:
> > + self.power_
> >
> > def _get_runner(self, proc):
> > from lava_dispatcher
>
> it looks like you are changing the logic here. Did you already test this
> change?
It's confusing at this point - this change is linked with the _customize_ bootloader function which uses a self.proc but that proc is never defined, using that proc in an expect.
I'll back this change out and put a FIXME in instead.
> > === modified file 'lava_dispatche r/device/ vexpress. py' /device/ vexpress. py 2013-04-05 21:58:28 +0000 /device/ vexpress. py 2013-07-16 16:30:42 +0000 .device. master import MasterImageTarget .errors import CriticalError MasterImageTarg et): uefi_image_ filename is None or vexpress_ uefi_path is None or vexpress_ uefi_backup_ path is None or vexpress_ usb_mass_ storage_ device is None): vexpress_ usb_mass_ storage_ device is None):
> > --- lava_dispatcher
> > +++ lava_dispatcher
> > @@ -27,6 +27,7 @@
> > from lava_dispatcher
> > from lava_dispatcher
> >
> > +
> > class VexpressTarget(
> >
> > def __init__(self, context, config):
> > @@ -37,7 +38,7 @@
> > if (self.config.
> > self.config.
> > self.config.
> > - self.config.
> > + self.config.
> >
> > raise CriticalError(
> > "Versatile Express devices must specify all "
>
> This does not look right to me.
Correct, the two lines above also need the indent. I'll fix that.
Thanks, I'll update the merge proposal.