Improvements for r33 (#1071)

* get firmware version at runtime

* walkaround harness hang issue
This commit is contained in:
Buke Po
2016-12-13 21:29:50 -08:00
committed by Jonathan Hui
parent 95bb56ce16
commit dc55779df1
3 changed files with 21 additions and 6 deletions
@@ -36,6 +36,7 @@ from selenium.common.exceptions import UnexpectedAlertPresentException
import json
import logging
import os
import subprocess
import re
import time
import unittest
@@ -648,6 +649,15 @@ class HarnessCase(unittest.TestCase):
self.timeout -= 1
# check if already ended capture
if self.timeout % 10 == 0:
lines = self._hc.tail()
if 'SUCCESS: The process "dumpcap.exe" with PID ' in lines:
logger.info('Tshark should be ended now, lets wait at most 30 seconds.')
if not self.wait_until(lambda: 'tshark.exe' not in subprocess.check_output('tasklist'), 30):
res = subprocess.check_output('taskkill /t /f /im tshark.exe', stderr=subprocess.STDOUT, shell=True)
logger.info(res)
# Wait until case really stopped
self.wait_until(lambda: self._browser.find_element_by_id('runTest') and True, 30)
@@ -50,6 +50,7 @@ class HarnessController(object):
def __init__(self, result_dir=None):
self.result_dir = result_dir
self.harness_file = ''
def start(self):
logger.info('Starting harness service')
@@ -58,7 +59,9 @@ class HarnessController(object):
else:
env = dict(os.environ, PYTHONPATH='%s\\Thread_Harness;%s\\ThirdParty\\hsdk-python\\src'
% (settings.HARNESS_HOME, settings.HARNESS_HOME))
with open('%s\\harness-%s.log' % (self.result_dir, time.strftime('%Y%m%d%H%M%S')), 'w') as harnessOut:
self.harness_file = '%s\\harness-%s.log' % (self.result_dir, time.strftime('%Y%m%d%H%M%S'))
with open(self.harness_file, 'w') as harnessOut:
self.harness = subprocess.Popen([settings.HARNESS_HOME + '\\Python27\\python.exe',
settings.HARNESS_HOME + '\\Thread_Harness\\Run.py'],
cwd=settings.HARNESS_HOME,
@@ -91,6 +94,11 @@ class HarnessController(object):
else:
logger.warning('Miniweb not started yet')
def tail(self):
with open(self.harness_file) as harnessOut:
harnessOut.seek(-100, 2)
return ''.join(harnessOut.readlines())
def _try_kill(self, proc):
logger.info('Try kill process')
times = 3
+2 -5
View File
@@ -49,7 +49,6 @@ linesepx = re.compile(r'\r\n|\n')
"""regex: used to split lines"""
class OpenThread(IThci):
firmware = 'g7d33184; CC2538; Dec 1 2016 15:43:40'
UIStatusMsg = ''
networkDataRequirement = '' # indicate Thread device requests full or stable network data
isPowerDown = False # indicate if Thread device experiences a power down event
@@ -70,7 +69,6 @@ class OpenThread(IThci):
self.mac = kwargs.get('EUI')
self.port = kwargs.get('SerialPort')
self.handle = None
self.UIStatusMsg = self.firmware
self.networkName = ModuleHelper.Default_NwkName
self.networkKey = ModuleHelper.Default_NwkKey
self.channel = ModuleHelper.Default_Channel
@@ -674,10 +672,9 @@ class OpenThread(IThci):
self.handle = socket.create_connection((host, port))
self.handle.setblocking(0)
self._is_net = True
# check connectivity, this make sure bad device fail on initializing
self.__sendCommand('state')
else:
raise Exception('Unknown port schema')
self.UIStatusMsg = self.getVersionNumber()
def closeConnection(self):
"""close current serial port connection"""
@@ -1164,7 +1161,7 @@ class OpenThread(IThci):
def getVersionNumber(self):
"""get OpenThread stack firmware version number"""
print '%s call getVersionNumber' % self.port
return self.firmware
return self.__sendCommand('version')[0]
def setPANID(self, xPAN):
"""set Thread Network PAN ID