summaryrefslogtreecommitdiffstats
path: root/lldb/packages/Python/lldbsuite/test/tools/lldb-server/gdbremote_testcase.py
diff options
context:
space:
mode:
Diffstat (limited to 'lldb/packages/Python/lldbsuite/test/tools/lldb-server/gdbremote_testcase.py')
-rw-r--r--lldb/packages/Python/lldbsuite/test/tools/lldb-server/gdbremote_testcase.py29
1 files changed, 28 insertions, 1 deletions
diff --git a/lldb/packages/Python/lldbsuite/test/tools/lldb-server/gdbremote_testcase.py b/lldb/packages/Python/lldbsuite/test/tools/lldb-server/gdbremote_testcase.py
index e7c63bf21e8..8311e162399 100644
--- a/lldb/packages/Python/lldbsuite/test/tools/lldb-server/gdbremote_testcase.py
+++ b/lldb/packages/Python/lldbsuite/test/tools/lldb-server/gdbremote_testcase.py
@@ -513,7 +513,8 @@ class GdbRemoteTestCaseBase(TestBase):
self,
inferior_args=None,
inferior_sleep_seconds=3,
- inferior_exe_path=None):
+ inferior_exe_path=None,
+ inferior_env=None):
"""Prep the debug monitor, the inferior, and the expected packet stream.
Handle the separate cases of using the debug monitor in attach-to-inferior mode
@@ -576,6 +577,9 @@ class GdbRemoteTestCaseBase(TestBase):
# Build the expected protocol stream
self.add_no_ack_remote_stream()
+ if inferior_env:
+ for name, value in inferior_env.items():
+ self.add_set_environment_packets(name, value)
if self._inferior_startup == self._STARTUP_LAUNCH:
self.add_verified_launch_packets(launch_args)
@@ -656,6 +660,12 @@ class GdbRemoteTestCaseBase(TestBase):
{"direction": "send", "regex": r"^\$(.+)#[0-9a-fA-F]{2}$", "capture": {1: "process_info_raw"}}],
True)
+ def add_set_environment_packets(self, name, value):
+ self.test_sequence.add_log_lines(
+ ["read packet: $QEnvironment:" + name + "=" + value + "#00",
+ "send packet: $OK#00",
+ ], True)
+
_KNOWN_PROCESS_INFO_KEYS = [
"pid",
"parent-pid",
@@ -816,6 +826,7 @@ class GdbRemoteTestCaseBase(TestBase):
"error"])
self.assertIsNotNone(val)
+ mem_region_dict["name"] = seven.unhexlify(mem_region_dict.get("name", ""))
# Return the dictionary of key-value pairs for the memory region.
return mem_region_dict
@@ -1000,6 +1011,22 @@ class GdbRemoteTestCaseBase(TestBase):
return context
+ def continue_process_and_wait_for_stop(self):
+ self.test_sequence.add_log_lines(
+ [
+ "read packet: $vCont;c#a8",
+ {
+ "direction": "send",
+ "regex": r"^\$T([0-9a-fA-F]{2})(.*)#[0-9a-fA-F]{2}$",
+ "capture": {1: "stop_signo", 2: "stop_key_val_text"},
+ },
+ ],
+ True,
+ )
+ context = self.expect_gdbremote_sequence()
+ self.assertIsNotNone(context)
+ return self.parse_interrupt_packets(context)
+
def select_modifiable_register(self, reg_infos):
"""Find a register that can be read/written freely."""
PREFERRED_REGISTER_NAMES = set(["rax", ])
OpenPOWER on IntegriCloud