Home | History | Annotate | Download | only in connect_remote
      1 """
      2 Test lldb 'process connect' command.
      3 """
      4 
      5 import os
      6 import unittest2
      7 import lldb
      8 import pexpect
      9 from lldbtest import *
     10 
     11 class ConnectRemoteTestCase(TestBase):
     12 
     13     mydir = os.path.join("functionalities", "connect_remote")
     14 
     15     def test_connect_remote(self):
     16         """Test "process connect connect:://localhost:12345"."""
     17 
     18         # First, we'll start a fake debugserver (a simple echo server).
     19         fakeserver = pexpect.spawn('./EchoServer.py')
     20 
     21         # Turn on logging for what the child sends back.
     22         if self.TraceOn():
     23             fakeserver.logfile_read = sys.stdout
     24 
     25         # Schedule the fake debugserver to be shutting down during teardown.
     26         def shutdown_fakeserver():
     27             fakeserver.close()
     28         self.addTearDownHook(shutdown_fakeserver)
     29 
     30         # Wait until we receive the server ready message before continuing.
     31         fakeserver.expect_exact('Listening on localhost:12345')
     32 
     33         # Connect to the fake server....
     34         if sys.platform.startswith('freebsd') or sys.platform.startswith("linux"):
     35             self.runCmd("process connect -p gdb-remote connect://localhost:12345")
     36         else:
     37             self.runCmd("process connect connect://localhost:12345")
     38 
     39 
     40 if __name__ == '__main__':
     41     import atexit
     42     lldb.SBDebugger.Initialize()
     43     atexit.register(lambda: lldb.SBDebugger.Terminate())
     44     unittest2.main()
     45