brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.2 KiB · 58373d2 Raw
63 lines · python
1import tempfile2import gdbremote_testcase3from lldbsuite.test.lldbtest import *4from lldbsuite.test.decorators import *5from lldbgdbserverutils import *6 7 8class GdbRemoteCompletionTestCase(gdbremote_testcase.GdbRemoteTestCaseBase):9    def init_lldb_server(self):10        self.debug_monitor_exe = get_lldb_server_exe()11        if not self.debug_monitor_exe:12            self.skipTest("lldb-server exe not found")13        port_file = tempfile.NamedTemporaryFile().name14        commandline_args = ["platform", "--listen", "*:0", "--socket-file", port_file]15        server = self.spawnSubprocess(16            get_lldb_server_exe(), commandline_args, install_remote=False17        )18        self.assertIsNotNone(server)19        self.stub_hostname = "localhost"20        self.port = int(lldbutil.wait_for_file_on_target(self, port_file))21        self.sock = self.create_socket()22        self._server = Server(self.sock, server)23 24        self.do_handshake()25 26    def generate_hex_path(self, target):27        return str(os.path.join(self.getBuildDir(), target)).encode().hex()28 29    @skipIfRemote30    @add_test_categories(["llgs"])31    def test_autocomplete_path(self):32        self.build()33        self.init_lldb_server()34 35        # Test file-included completion when flag is set to 0.36        self.test_sequence.add_log_lines(37            [38                "read packet: $qPathComplete:0,{}#00".format(39                    self.generate_hex_path("main")40                ),41                "send packet: $M{},{}#00".format(42                    self.generate_hex_path("main.d"), self.generate_hex_path("main.o")43                ),44            ],45            True,46        )47 48        # Test directory-only completion when flag is set to 1.49        os.makedirs(os.path.join(self.getBuildDir(), "test"))50        self.test_sequence.add_log_lines(51            [52                "read packet: $qPathComplete:1,{}#00".format(53                    self.generate_hex_path("tes")54                ),55                "send packet: $M{}{}#00".format(56                    self.generate_hex_path("test"), os.path.sep.encode().hex()57                ),  # "test/" or "test\".58            ],59            True,60        )61 62        self.expect_gdbremote_sequence()63