summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTodd Fiala <todd.fiala@gmail.com>2014-04-25 21:09:28 +0000
committerTodd Fiala <todd.fiala@gmail.com>2014-04-25 21:09:28 +0000
commit98118c38a3c9ba2b985a0c0d069038c47c09c998 (patch)
tree1fd35ddf29a9746739f5ffdd230f399a0d57d7c2
parent6817df65f0f042a30d80ab59839a3cad980f1fd6 (diff)
downloadbcm5719-llvm-98118c38a3c9ba2b985a0c0d069038c47c09c998.tar.gz
bcm5719-llvm-98118c38a3c9ba2b985a0c0d069038c47c09c998.zip
Prevent TestLldbGdbServer shutdown cleanup failures from failing the test.
Adds try/except blocks around clean-up code. Prevents a race between gdb remote kill command reception by llgs (which leads llgs to shut down) and the pexpect server kill (which can fail if the kill command handling completes first). Warnings are emitted on the logger for any clean-up code that fails. llvm-svn: 207273
-rw-r--r--lldb/test/tools/lldb-gdbserver/TestLldbGdbServer.py21
1 files changed, 17 insertions, 4 deletions
diff --git a/lldb/test/tools/lldb-gdbserver/TestLldbGdbServer.py b/lldb/test/tools/lldb-gdbserver/TestLldbGdbServer.py
index c4d130392a9..d2ebdb4b36e 100644
--- a/lldb/test/tools/lldb-gdbserver/TestLldbGdbServer.py
+++ b/lldb/test/tools/lldb-gdbserver/TestLldbGdbServer.py
@@ -36,12 +36,20 @@ class LldbGdbServerTestCase(TestBase):
def create_socket(self):
sock = socket.socket()
+ logger = self.logger
def shutdown_socket():
if sock:
- # send the kill packet so lldb-gdbserver shuts down gracefully
- sock.sendall(LldbGdbServerTestCase._GDBREMOTE_KILL_PACKET)
- sock.close()
+ try:
+ # send the kill packet so lldb-gdbserver shuts down gracefully
+ sock.sendall(LldbGdbServerTestCase._GDBREMOTE_KILL_PACKET)
+ except:
+ logger.warning("failed to send kill packet to debug monitor: {}; ignoring".format(sys.exc_info()[0]))
+
+ try:
+ sock.close()
+ except:
+ logger.warning("failed to close socket to debug monitor: {}; ignoring".format(sys.exc_info()[0]))
self.addTearDownHook(shutdown_socket)
@@ -57,8 +65,13 @@ class LldbGdbServerTestCase(TestBase):
server.logfile_read = sys.stdout
# Schedule lldb-gdbserver to be shutting down during teardown.
+ logger = self.logger
def shutdown_lldb_gdbserver():
- server.close()
+ try:
+ server.close()
+ except:
+ logger.warning("failed to close pexpect server for debug monitor: {}; ignoring".format(sys.exc_info()[0]))
+
self.addTearDownHook(shutdown_lldb_gdbserver)
# Wait until we receive the server ready message before continuing.
OpenPOWER on IntegriCloud