Bug 778329 Fix and improve DeviceManagerSUT.unpackFile(). r=mcote

--HG--
extra : rebase_source : 7354a74a68538da45e515476e3fe49f50a50b562
This commit is contained in:
Mihnea Dobrescu-Balaur 2012-08-01 11:50:05 -04:00
parent 1c05aced00
commit b5b0c5327e
2 changed files with 68 additions and 100 deletions

View File

@ -391,7 +391,7 @@ class DeviceManager:
return 0
@abstractmethod
def unpackFile(self, filename):
def unpackFile(self, file_path, dest_dir=None):
"""
external function
returns:

View File

@ -9,6 +9,7 @@ import time, datetime
import os
import re
import hashlib
import posixpath
import subprocess
from threading import Thread
import traceback
@ -856,25 +857,20 @@ class DeviceManagerSUT(DeviceManager):
# returns:
# success: output of unzip command
# failure: None
def unpackFile(self, filename):
def unpackFile(self, file_path, dest_dir=None):
devroot = self.getDeviceRoot()
if (devroot == None):
return None
dir = ''
parts = filename.split('/')
if (len(parts) > 1):
if self.fileExists(filename):
dir = '/'.join(parts[:-1])
elif self.fileExists('/' + filename):
dir = '/' + filename
elif self.fileExists(devroot + '/' + filename):
dir = devroot + '/' + filename
else:
return None
# if no dest_dir is passed in just set it to file_path's folder
if not dest_dir:
dest_dir = posixpath.dirname(file_path)
if dest_dir[-1] != '/':
dest_dir += '/'
try:
data = self.runCmds([{ 'cmd': 'cd ' + dir }, { 'cmd': 'unzp ' + filename }])
data = self.runCmds([{ 'cmd': 'unzp %s %s' % (file_path, dest_dir)}])
except AgentError:
return None
@ -1082,34 +1078,6 @@ class DeviceManagerSUT(DeviceManager):
And ports starting at 30000.
NOTE: the detection for current IP address only works on Linux!
"""
# external function
# returns:
# success: output of unzip command
# failure: None
def unpackFile(self, filename):
devroot = self.getDeviceRoot()
if (devroot == None):
return None
dir = ''
parts = filename.split('/')
if (len(parts) > 1):
if self.fileExists(filename):
dir = '/'.join(parts[:-1])
elif self.fileExists('/' + filename):
dir = '/' + filename
elif self.fileExists(devroot + '/' + filename):
dir = devroot + '/' + filename
else:
return None
try:
data = self.runCmds(['cd ' + dir, 'unzp ' + filename])
except AgentError:
return None
return data
def getCallbackIpAndPort(self, aIp, aPort):
ip = aIp
nettools = NetworkTools()