Bug 1402347 - Be more exact in Android tests when checking run time; r=jmaher
authorGeoff Brown <gbrown@mozilla.com>
Fri, 22 Sep 2017 11:32:38 -0600
changeset 382567 18028ed94381c0c45ee68c5834a96cd087d62521
parent 382566 ad80a6d082c40fa7066ce79f8114141cdeeb1880
child 382568 a130f9b289dfd85efc1cde484f892dc53cd5086c
push id32562
push userarchaeopteryx@coole-files.de
push dateSat, 23 Sep 2017 09:38:29 +0000
treeherdermozilla-central@8db0c4ecd94c [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersjmaher
bugs1402347
milestone58.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 1402347 - Be more exact in Android tests when checking run time; r=jmaher
build/mobile/remoteautomation.py
--- a/build/mobile/remoteautomation.py
+++ b/build/mobile/remoteautomation.py
@@ -378,31 +378,32 @@ class RemoteAutomation(Automation):
             timer = 0
             noOutputTimer = 0
             interval = 10
             if timeout == None:
                 timeout = self.timeout
             status = 0
             top = self.procName
             slowLog = False
+            endTime = datetime.datetime.now() + datetime.timedelta(seconds = timeout)
             while (top == self.procName):
                 # Get log updates on each interval, but if it is taking
                 # too long, only do it every 60 seconds
                 hasOutput = False
                 if (not slowLog) or (timer % 60 == 0):
                     startRead = datetime.datetime.now()
                     hasOutput = self.read_stdout()
                     if (datetime.datetime.now() - startRead) > datetime.timedelta(seconds=5):
                         slowLog = True
                     if hasOutput:
                         noOutputTimer = 0
                 time.sleep(interval)
                 timer += interval
                 noOutputTimer += interval
-                if (timer > timeout):
+                if datetime.datetime.now() > endTime:
                     status = 1
                     break
                 if (noOutputTimeout and noOutputTimer > noOutputTimeout):
                     status = 2
                     break
                 if not hasOutput:
                     top = self.dm.getTopActivity()
             # Flush anything added to stdout during the sleep