mirror of
https://github.com/llvm/llvm-project.git
synced 2025-05-13 21:06:05 +00:00
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
This commit is contained in:
parent
232897feaa
commit
260323dba6
5
lldb/test/tools/lldb-gdbserver/Makefile
Normal file
5
lldb/test/tools/lldb-gdbserver/Makefile
Normal file
@ -0,0 +1,5 @@
|
||||
LEVEL = ../../make
|
||||
|
||||
CXX_SOURCES := main.cpp
|
||||
|
||||
include $(LEVEL)/Makefile.rules
|
@ -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()
|
||||
|
@ -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:
|
||||
|
7
lldb/test/tools/lldb-gdbserver/main.cpp
Normal file
7
lldb/test/tools/lldb-gdbserver/main.cpp
Normal file
@ -0,0 +1,7 @@
|
||||
#include <iostream>
|
||||
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
std::cout << "hello, world" << std::endl;
|
||||
return 0;
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user