Merge pull request #1298 from PrzemekWirkus/bugfix_default_copy_method_shell2

Tools: singletest.py option -c with shell copy method as default copy method
pull/1300/head^2
Martin Kojtal 2015-08-17 11:17:10 +01:00
commit 846f487a1a
3 changed files with 24 additions and 17 deletions

View File

@ -250,11 +250,14 @@ class Mbed:
""" Copy file depending on method you want to use. Handles exception
and return code from shell copy commands.
"""
if copy_method is not None:
# image_path - Where is binary with target's firmware
result = host_tests_plugins.call_plugin('CopyMethod', copy_method, image_path=image_path, destination_disk=disk)
if copy_method is not None:
# We override 'default' method with 'shell' method
if copy_method == 'default':
copy_method = 'shell'
else:
copy_method = 'default'
copy_method = 'shell'
result = host_tests_plugins.call_plugin('CopyMethod', copy_method, image_path=image_path, destination_disk=disk)
return result;

View File

@ -41,7 +41,7 @@ class HostTestPluginCopyMethod_Mbed(HostTestPluginBase):
name = 'HostTestPluginCopyMethod_Mbed'
type = 'CopyMethod'
stable = True
capabilities = ['default']
capabilities = ['shutil', 'default']
required_parameters = ['image_path', 'destination_disk']
def setup(self, *args, **kwargs):
@ -49,14 +49,15 @@ class HostTestPluginCopyMethod_Mbed(HostTestPluginBase):
"""
return True
def execute(self, capabilitity, *args, **kwargs):
def execute(self, capability, *args, **kwargs):
""" Executes capability by name.
Each capability may directly just call some command line
program or execute building pythonic function
"""
result = False
if self.check_parameters(capabilitity, *args, **kwargs) is True:
if capabilitity == 'default':
if self.check_parameters(capability, *args, **kwargs) is True:
# Capability 'default' is a dummy capability
if capability == 'shutil':
image_path = kwargs['image_path']
destination_disk = kwargs['destination_disk']
# Wait for mount point to be ready

View File

@ -34,13 +34,13 @@ class HostTestPluginCopyMethod_Shell(HostTestPluginBase):
"""
return True
def execute(self, capabilitity, *args, **kwargs):
def execute(self, capability, *args, **kwargs):
""" Executes capability by name.
Each capability may directly just call some command line
program or execute building pythonic function
"""
result = False
if self.check_parameters(capabilitity, *args, **kwargs) is True:
if self.check_parameters(capability, *args, **kwargs) is True:
image_path = kwargs['image_path']
destination_disk = kwargs['destination_disk']
# Wait for mount point to be ready
@ -48,14 +48,17 @@ class HostTestPluginCopyMethod_Shell(HostTestPluginBase):
# Prepare correct command line parameter values
image_base_name = basename(image_path)
destination_path = join(destination_disk, image_base_name)
if capabilitity == 'shell':
if os.name == 'nt': capabilitity = 'copy'
elif os.name == 'posix': capabilitity = 'cp'
if capabilitity == 'cp' or capabilitity == 'copy' or capabilitity == 'xcopy':
copy_method = capabilitity
if capability == 'shell':
if os.name == 'nt': capability = 'copy'
elif os.name == 'posix': capability = 'cp'
if capability == 'cp' or capability == 'copy' or capability == 'copy':
copy_method = capability
cmd = [copy_method, image_path, destination_path]
shell = not capabilitity == 'cp'
result = self.run_command(cmd, shell=shell)
if os.name == 'posix':
result = self.run_command(cmd, shell=False)
result = self.run_command(["sync"])
else:
result = self.run_command(cmd)
return result