diff options
author | Todd Fiala <tfiala@google.com> | 2014-04-21 05:30:08 +0000 |
---|---|---|
committer | Todd Fiala <tfiala@google.com> | 2014-04-21 05:30:08 +0000 |
commit | 132b880558a7b039b859317eca5982e1f720598f (patch) | |
tree | b54b399d73b2aad99bbf28efdb90f72b24cb7e5e | |
parent | 99b756db048b7e283fc16eacd08001d79de9339d (diff) | |
download | bcm5719-llvm-132b880558a7b039b859317eca5982e1f720598f.tar.gz bcm5719-llvm-132b880558a7b039b859317eca5982e1f720598f.zip |
Added a basic connection test for lldb-gdbserver.
The lldb-gdbserver tests are skipped if the lldb-gdbserver exe cannot be found (currently only built for Linux and FreeBSD). The lldb-gdbserver exe is found by the LLDB_EXEC environment variable, using the same dir as the lldb exe, and then replacing lldb with lldb-gdbserver.
llvm-svn: 206731
-rw-r--r-- | lldb/test/tools/lldb-gdbserver/TestLldbGdbServer.py | 40 | ||||
-rw-r--r-- | lldb/test/tools/lldb-gdbserver/lldbgdbserverutils.py | 25 |
2 files changed, 65 insertions, 0 deletions
diff --git a/lldb/test/tools/lldb-gdbserver/TestLldbGdbServer.py b/lldb/test/tools/lldb-gdbserver/TestLldbGdbServer.py new file mode 100644 index 00000000000..5cee310e9e3 --- /dev/null +++ b/lldb/test/tools/lldb-gdbserver/TestLldbGdbServer.py @@ -0,0 +1,40 @@ +""" +Test lldb-gdbserver operation +""" + +import unittest2 +import pexpect +import sys +from lldbtest import * +from lldbgdbserverutils import * + +class LldbGdbServerTestCase(TestBase): + + mydir = TestBase.compute_mydir(__file__) + + port = 12345 + + def setUp(self): + TestBase.setUp(self) + self.lldb_gdbserver_exe = get_lldb_gdbserver_exe() + if not self.lldb_gdbserver_exe: + self.skipTest("lldb_gdbserver exe not specified") + + def test_exe_starts(self): + # start the server + server = pexpect.spawn("{} localhost:{}".format(self.lldb_gdbserver_exe, self.port)) + + # Turn on logging for what the child sends back. + if self.TraceOn(): + server.logfile_read = sys.stdout + + # Schedule lldb-gdbserver to be shutting down during teardown. + def shutdown_lldb_gdbserver(): + server.close() + self.addTearDownHook(shutdown_lldb_gdbserver) + + # Wait until we receive the server ready message before continuing. + server.expect_exact('Listening for a connection on localhost:{}'.format(self.port)) + +if __name__ == '__main__': + unittest2.main() diff --git a/lldb/test/tools/lldb-gdbserver/lldbgdbserverutils.py b/lldb/test/tools/lldb-gdbserver/lldbgdbserverutils.py new file mode 100644 index 00000000000..0a7bca75f65 --- /dev/null +++ b/lldb/test/tools/lldb-gdbserver/lldbgdbserverutils.py @@ -0,0 +1,25 @@ +import os +import os.path + +def _get_lldb_gdbserver_from_lldb(lldb_exe): + lldb_gdbserver = os.path.join(os.path.dirname(lldb_exe), "lldb-gdbserver") + if os.path.exists(lldb_gdbserver): + return lldb_gdbserver + else: + return None + +def get_lldb_gdbserver_exe(): + # check for --lldb-gdbserver='{some-path}' in args + lldb_exe = os.environ["LLDB_EXEC"] + if not lldb_exe: + return None + else: + return _get_lldb_gdbserver_from_lldb(lldb_exe) + +if __name__ == '__main__': + import sys + exe = get_lldb_gdbserver_exe() + if exe: + print "lldb-gdbserver exe at: {}".format(exe) + else: + print "lldb-gdbserver not specified" |