summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTodd Fiala <todd.fiala@gmail.com>2014-04-25 23:08:24 +0000
committerTodd Fiala <todd.fiala@gmail.com>2014-04-25 23:08:24 +0000
commit260323dba6fd55ef19174af85b7dafd90ca67306 (patch)
treede77e3be3c97841d8e0c9c4d1715f61a3e05aefb
parent232897feaadcd89570286cef6f88585438d7dcdc (diff)
downloadbcm5719-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/Makefile5
-rw-r--r--lldb/test/tools/lldb-gdbserver/TestLldbGdbServer.py36
-rw-r--r--lldb/test/tools/lldb-gdbserver/lldbgdbserverutils.py14
-rw-r--r--lldb/test/tools/lldb-gdbserver/main.cpp7
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;
+}
OpenPOWER on IntegriCloud