summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGiacomo Travaglini <giacomo.travaglini@arm.com>2020-01-17 19:48:40 +0000
committerGiacomo Travaglini <giacomo.travaglini@arm.com>2020-01-21 13:54:52 +0000
commit8483ff24f8a8f2604145c18e97c8d30ed0069c70 (patch)
tree9a1e8bfc05d621972777c344a03a8f7df67c82d1
parent5c3e8efeca37558d8fc073a60c8181512a97d093 (diff)
downloadgem5-8483ff24f8a8f2604145c18e97c8d30ed0069c70.tar.xz
tests: Add a timeout to getremotetime
The helper is meant to check if the local binary is younger than the remote binary (on gem5.org). If the call fails it is giving up and it is just using the local regression (producing a warning). The code is not handling the blocking behaviour of the connection: simulaton might stall indefinitely The patch is addressing this by providing a 10 seconds timeout. Change-Id: I8f9c2e555c9a55d850a66d02f8e55f56ceda2ca3 Signed-off-by: Giacomo Travaglini <giacomo.travaglini@arm.com> Reviewed-by: Nikos Nikoleris <nikos.nikoleris@arm.com> Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/24531 Tested-by: kokoro <noreply+kokoro@google.com> Reviewed-by: Jason Lowe-Power <jason@lowepower.com> Maintainer: Jason Lowe-Power <jason@lowepower.com>
-rw-r--r--tests/gem5/fixture.py7
1 files changed, 4 insertions, 3 deletions
diff --git a/tests/gem5/fixture.py b/tests/gem5/fixture.py
index ddf43d17d..c22d1a334 100644
--- a/tests/gem5/fixture.py
+++ b/tests/gem5/fixture.py
@@ -43,6 +43,7 @@ import os
import tempfile
import shutil
import sys
+import socket
import threading
import urllib
import urllib2
@@ -282,7 +283,7 @@ class DownloadedProgram(UniqueFixture):
import datetime, time
import _strptime # Needed for python threading bug
- u = urllib2.urlopen(self.url)
+ u = urllib2.urlopen(self.url, timeout=10)
return time.mktime(datetime.datetime.strptime( \
u.info().getheaders("Last-Modified")[0],
"%a, %d %b %Y %X GMT").timetuple())
@@ -294,7 +295,7 @@ class DownloadedProgram(UniqueFixture):
else:
try:
t = self._getremotetime()
- except urllib2.URLError:
+ except (urllib2.URLError, socket.timeout):
# Problem checking the server, use the old files.
log.test_log.debug("Could not contact server. Binaries may be old.")
return
@@ -320,7 +321,7 @@ class DownloadedArchive(DownloadedProgram):
else:
try:
t = self._getremotetime()
- except urllib2.URLError:
+ except (urllib2.URLError, socket.timeout):
# Problem checking the server, use the old files.
log.test_log.debug("Could not contact server. "
"Binaries may be old.")