From 56b25f74ce4e13d494d3e76db89022684db7be5f Mon Sep 17 00:00:00 2001 From: Todd Fiala Date: Tue, 29 Apr 2014 05:01:01 +0000 Subject: [PATCH] Added debugserver/llgs protocol test for output and clean exit. Tests for $vCont;c program start, $O output and $W status code. @llgs_test variant currently marked as expected fail. llvm-svn: 207492 --- .../tools/lldb-gdbserver/TestLldbGdbServer.py | 39 +++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/lldb/test/tools/lldb-gdbserver/TestLldbGdbServer.py b/lldb/test/tools/lldb-gdbserver/TestLldbGdbServer.py index c38c1a180cf8..2de3024765d4 100644 --- a/lldb/test/tools/lldb-gdbserver/TestLldbGdbServer.py +++ b/lldb/test/tools/lldb-gdbserver/TestLldbGdbServer.py @@ -205,5 +205,44 @@ class LldbGdbServerTestCase(TestBase): self.buildDwarf() self.start_inferior() + def inferior_print_exit(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#00", + "lldb-gdbserver < 18> read packet: $qLaunchSuccess#a5", + "lldb-gdbserver < 6> send packet: $OK#00", + "lldb-gdbserver < 5> read packet: $vCont;c#00", + "lldb-gdbserver < 7> send packet: $O{}#00".format(gdbremote_hex_encode_string("hello, world\r\n")), + "lldb-gdbserver < 7> send packet: $W00#00"]) + + expect_lldb_gdbserver_replay(self, self.sock, log_lines, True, + self._TIMEOUT_SECONDS, self.logger) + + @debugserver_test + @dsym_test + def test_inferior_print_exit_debugserver_dsym(self): + self.init_debugserver_test() + self.buildDsym() + self.inferior_print_exit() + + @llgs_test + @dwarf_test + @unittest2.expectedFailure() + def test_inferior_print_exit_llgs_dwarf(self): + self.init_llgs_test() + self.buildDwarf() + self.inferior_print_exit() + + if __name__ == '__main__': unittest2.main()