From cc28865b53e4264046ee0ce916f3705cb1c691f0 Mon Sep 17 00:00:00 2001 From: Christian Stenger Date: Fri, 24 Jan 2014 10:57:56 +0100 Subject: [PATCH] Squish: Fix hook-into issue on Windows Change-Id: I45ec21c6a7a0c5e34e72226fbb442f0ab681fa4d Reviewed-by: Robert Loehning --- tests/system/shared/project.py | 3 +++ tests/system/shared/qtcreator.py | 6 +++--- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/tests/system/shared/project.py b/tests/system/shared/project.py index 379548a1213..66fc6854134 100644 --- a/tests/system/shared/project.py +++ b/tests/system/shared/project.py @@ -518,6 +518,9 @@ def __closeSubprocessByHookingInto__(executable, port, function, sType, userDefT __closeSubprocessByPushingStop__(sType) except: pass + if (platform.system() in ('Microsoft', 'Windows') and + 'Listening on port %d for incoming connectionsdone' % port not in str(output.plainText)): + checkForStillRunningQmlExecutable([executable + ".exe"]) return True # this helper tries to reset the current application context back diff --git a/tests/system/shared/qtcreator.py b/tests/system/shared/qtcreator.py index 290d622ce7a..086aa9411e0 100644 --- a/tests/system/shared/qtcreator.py +++ b/tests/system/shared/qtcreator.py @@ -95,7 +95,7 @@ def waitForCleanShutdown(timeOut=10): shutdownDone = (str(appCtxt)=="") if platform.system() in ('Windows','Microsoft'): # cleaning helper for running on the build machines - __checkForQmlViewerAndQmlScene__() + checkForStillRunningQmlExecutable(['qmlviewer.exe', 'qmlscene.exe']) endtime = datetime.utcnow() + timedelta(seconds=timeOut) while not shutdownDone: # following work-around because os.kill() works for win not until python 2.7 @@ -120,8 +120,8 @@ def waitForCleanShutdown(timeOut=10): if not shutdownDone and datetime.utcnow() > endtime: break -def __checkForQmlViewerAndQmlScene__(): - for qmlHelper in ['qmlviewer.exe', 'qmlscene.exe']: +def checkForStillRunningQmlExecutable(possibleNames): + for qmlHelper in possibleNames: tasks = subprocess.Popen("tasklist /FI \"IMAGENAME eq %s\"" % qmlHelper, shell=True, stdout=subprocess.PIPE) output = tasks.communicate()[0]