diff options
author | Todd Fiala <todd.fiala@gmail.com> | 2014-04-25 23:08:24 +0000 |
---|---|---|
committer | Todd Fiala <todd.fiala@gmail.com> | 2014-04-25 23:08:24 +0000 |
commit | 260323dba6fd55ef19174af85b7dafd90ca67306 (patch) | |
tree | de77e3be3c97841d8e0c9c4d1715f61a3e05aefb | |
parent | 232897feaadcd89570286cef6f88585438d7dcdc (diff) | |
download | bcm5719-llvm-260323dba6fd55ef19174af85b7dafd90ca67306.tar.gz bcm5719-llvm-260323dba6fd55ef19174af85b7dafd90ca67306.zip |
Added TestLldbGdbServer test for A start exe packet.
Fixed up bug in XFAIL tests where I appended an array when I intended to merge an array.
llvm-svn: 207285
-rw-r--r-- | lldb/test/tools/lldb-gdbserver/Makefile | 5 | ||||
-rw-r--r-- | lldb/test/tools/lldb-gdbserver/TestLldbGdbServer.py | 36 | ||||
-rw-r--r-- | lldb/test/tools/lldb-gdbserver/lldbgdbserverutils.py | 14 | ||||
-rw-r--r-- | lldb/test/tools/lldb-gdbserver/main.cpp | 7 |
4 files changed, 58 insertions, 4 deletions
diff --git a/lldb/test/tools/lldb-gdbserver/Makefile b/lldb/test/tools/lldb-gdbserver/Makefile new file mode 100644 index 00000000000..8a7102e347a --- /dev/null +++ b/lldb/test/tools/lldb-gdbserver/Makefile @@ -0,0 +1,5 @@ +LEVEL = ../../make + +CXX_SOURCES := main.cpp + +include $(LEVEL)/Makefile.rules diff --git a/lldb/test/tools/lldb-gdbserver/TestLldbGdbServer.py b/lldb/test/tools/lldb-gdbserver/TestLldbGdbServer.py index d2ebdb4b36e..c05c3047411 100644 --- a/lldb/test/tools/lldb-gdbserver/TestLldbGdbServer.py +++ b/lldb/test/tools/lldb-gdbserver/TestLldbGdbServer.py @@ -9,6 +9,7 @@ import sys from lldbtest import * from lldbgdbserverutils import * import logging +import os.path class LldbGdbServerTestCase(TestBase): @@ -20,8 +21,8 @@ class LldbGdbServerTestCase(TestBase): _GDBREMOTE_KILL_PACKET = "$k#6b" - _LOGGING_LEVEL = logging.WARNING -# _LOGGING_LEVEL = logging.DEBUG + # _LOGGING_LEVEL = logging.WARNING + _LOGGING_LEVEL = logging.DEBUG def setUp(self): TestBase.setUp(self) @@ -109,7 +110,7 @@ class LldbGdbServerTestCase(TestBase): self.assertIsNotNone(server) log_lines = self.create_no_ack_remote_stream() - log_lines.append([ + log_lines.extend([ "lldb-gdbserver < 26> read packet: $QThreadSuffixSupported#e4", "lldb-gdbserver < 6> send packet: $OK#9a"]) @@ -122,13 +123,40 @@ class LldbGdbServerTestCase(TestBase): self.assertIsNotNone(server) log_lines = self.create_no_ack_remote_stream() - log_lines.append([ + log_lines.extend([ "lldb-gdbserver < 27> read packet: $QListThreadsInStopReply#21", "lldb-gdbserver < 6> send packet: $OK#9a"]) expect_lldb_gdbserver_replay(self, self.sock, log_lines, True, self._TIMEOUT_SECONDS, self.logger) + def start_inferior(self): + server = self.start_server() + self.assertIsNotNone(server) + + # TODO grab the build output directory rather than current directory. + inferior_exe_name = os.path.abspath('a.out') + inferior_exe_name_hex = gdbremote_hex_encode_string(inferior_exe_name) + + log_lines = self.create_no_ack_remote_stream() + log_lines.extend([ + "lldb-gdbserver < 000> read packet: {}".format( + gdbremote_packet_encode_string( + "A{},0,{}".format(len(inferior_exe_name_hex), inferior_exe_name_hex))), + "lldb-gdbserver < 6> send packet: $OK#9a"]) + + expect_lldb_gdbserver_replay(self, self.sock, log_lines, True, + self._TIMEOUT_SECONDS, self.logger) + + @dsym_test + def test_start_inferior(self): + self.buildDsym() + self.start_inferior() + + @dwarf_test + def test_start_inferior(self): + self.buildDwarf() + self.start_inferior() if __name__ == '__main__': unittest2.main() diff --git a/lldb/test/tools/lldb-gdbserver/lldbgdbserverutils.py b/lldb/test/tools/lldb-gdbserver/lldbgdbserverutils.py index 49842eb3522..b88dedcdb24 100644 --- a/lldb/test/tools/lldb-gdbserver/lldbgdbserverutils.py +++ b/lldb/test/tools/lldb-gdbserver/lldbgdbserverutils.py @@ -198,6 +198,20 @@ def expect_lldb_gdbserver_replay( return None +def gdbremote_hex_encode_string(str): + output = '' + for c in str: + output += '{0:02x}'.format(ord(c)) + return output + + +def gdbremote_packet_encode_string(str): + checksum = 0 + for c in str: + checksum += ord(c) + return '$' + str + '#{0:02x}'.format(checksum % 256) + + if __name__ == '__main__': EXE_PATH = get_lldb_gdbserver_exe() if EXE_PATH: diff --git a/lldb/test/tools/lldb-gdbserver/main.cpp b/lldb/test/tools/lldb-gdbserver/main.cpp new file mode 100644 index 00000000000..3dbff671899 --- /dev/null +++ b/lldb/test/tools/lldb-gdbserver/main.cpp @@ -0,0 +1,7 @@ +#include <iostream> + +int main(int argc, char **argv) +{ + std::cout << "hello, world" << std::endl; + return 0; +} |