зеркало из https://github.com/mozilla/pjs.git
Bug 731023 - Remove devicemanager's communicate method r=jmaher
This commit is contained in:
Родитель
e9fa453cca
Коммит
e7fac15155
|
@ -1,89 +0,0 @@
|
|||
# ***** BEGIN LICENSE BLOCK *****
|
||||
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
#
|
||||
# The contents of this file are subject to the Mozilla Public License Version
|
||||
# 1.1 (the "License"); you may not use this file except in compliance with
|
||||
# the License. You may obtain a copy of the License at
|
||||
# http://www.mozilla.org/MPL/
|
||||
#
|
||||
# Software distributed under the License is distributed on an "AS IS" basis,
|
||||
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
# for the specific language governing rights and limitations under the
|
||||
# License.
|
||||
#
|
||||
# The Original Code is remote test framework.
|
||||
#
|
||||
# The Initial Developer of the Original Code is
|
||||
# the Mozilla Corporation.
|
||||
# Portions created by the Initial Developer are Copyright (C) 2010
|
||||
# the Initial Developer. All Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
#
|
||||
# Alternatively, the contents of this file may be used under the terms of
|
||||
# either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
# in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
# of those above. If you wish to allow use of your version of this file only
|
||||
# under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
# use your version of this file under the terms of the MPL, indicate your
|
||||
# decision by deleting the provisions above and replace them with the notice
|
||||
# and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
# the provisions above, a recipient may use your version of this file under
|
||||
# the terms of any one of the MPL, the GPL or the LGPL.
|
||||
#
|
||||
# ***** END LICENSE BLOCK *****
|
||||
|
||||
import devicemanager
|
||||
import devicemanagerUtils
|
||||
import sys
|
||||
import os
|
||||
|
||||
def main():
|
||||
ip_addr = os.environ.get("DEVICE_IP")
|
||||
port = os.environ.get("DEVICE_PORT")
|
||||
gre_path = os.environ.get("REMOTE_GRE_PATH").replace('\\','/')
|
||||
|
||||
if ip_addr == None:
|
||||
print "Error: please define the environment variable DEVICE_IP before running this test"
|
||||
sys.exit(1)
|
||||
|
||||
if port == None:
|
||||
print "Error: please define the environment variable DEVICE_PORT before running this test"
|
||||
sys.exit(1)
|
||||
|
||||
if gre_path == None:
|
||||
print "Error: please define the environment variable REMOTE_GRE_PATH before running this test"
|
||||
sys.exit(1)
|
||||
|
||||
dm = devicemanagerUtils.getDeviceManager(ip_addr, int(port))
|
||||
if len(sys.argv) < 2:
|
||||
print "usage python devicemanager-run-test.py <test program> [args1 [arg2..]]"
|
||||
sys.exit(1)
|
||||
|
||||
cmd = sys.argv[1]
|
||||
args = ' '
|
||||
if len(sys.argv) > 2:
|
||||
args = ' ' + ' '.join(sys.argv[2:])
|
||||
|
||||
dm.debug = 0
|
||||
lastslash = cmd.rfind('/');
|
||||
if lastslash == -1:
|
||||
lastslash = 0
|
||||
dm.pushFile(cmd, gre_path + cmd[lastslash:])
|
||||
process = dm.launchProcess([gre_path + cmd[lastslash:] + args])
|
||||
output_list = dm.communicate(process)
|
||||
ret = -1
|
||||
if (output_list != None and output_list[0] != None):
|
||||
try:
|
||||
output = output_list[0]
|
||||
index = output.find('exited with return code')
|
||||
print output[0:index]
|
||||
retstr = (output[index + 24 : output.find('\n', index)])
|
||||
ret = int(retstr)
|
||||
except ValueError:
|
||||
ret = -1
|
||||
sys.exit(ret)
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
|
@ -197,31 +197,6 @@ class DeviceManager:
|
|||
failure: None
|
||||
"""
|
||||
|
||||
def communicate(self, process, timeout = 600, interval = 5):
|
||||
"""
|
||||
loops until 'process' has exited or 'timeout' seconds is reached
|
||||
loop sleeps for 'interval' seconds between iterations
|
||||
external function
|
||||
returns:
|
||||
success: [file contents, None]
|
||||
failure: [None, None]
|
||||
"""
|
||||
|
||||
timed_out = True
|
||||
if (timeout > 0):
|
||||
total_time = 0
|
||||
while total_time < timeout:
|
||||
time.sleep(interval)
|
||||
if self.processExist(process) == None:
|
||||
timed_out = False
|
||||
break
|
||||
total_time += interval
|
||||
|
||||
if (timed_out == True):
|
||||
return [None, None]
|
||||
|
||||
return [self.getFile(process, "temp.txt"), None]
|
||||
|
||||
def processExist(self, appname):
|
||||
"""
|
||||
iterates process list and returns pid if exists, otherwise None
|
||||
|
|
Загрузка…
Ссылка в новой задаче