diff options
Diffstat (limited to 'packages/Python/lldbsuite/test/tools/lldb-server/TestGDBRemoteMemoryRead.py')
| -rw-r--r-- | packages/Python/lldbsuite/test/tools/lldb-server/TestGDBRemoteMemoryRead.py | 41 | 
1 files changed, 41 insertions, 0 deletions
diff --git a/packages/Python/lldbsuite/test/tools/lldb-server/TestGDBRemoteMemoryRead.py b/packages/Python/lldbsuite/test/tools/lldb-server/TestGDBRemoteMemoryRead.py new file mode 100644 index 000000000000..7b974e548a58 --- /dev/null +++ b/packages/Python/lldbsuite/test/tools/lldb-server/TestGDBRemoteMemoryRead.py @@ -0,0 +1,41 @@ +""" +Tests the binary ($x) and hex ($m) memory read packets of the remote stub +""" + +from __future__ import print_function + + + +import os +import lldb +from lldbsuite.test.lldbtest import * +import lldbsuite.test.lldbutil as lldbutil +import binascii + + +class MemoryReadTestCase(TestBase): + +    mydir = TestBase.compute_mydir(__file__) + +    @skipUnlessPlatform(getDarwinOSTriples()+["linux"]) +    def test_memory_read(self): +        self.build() +        exe = os.path.join (os.getcwd(), "a.out") + +        target = self.dbg.CreateTarget(exe) +        lldbutil.run_break_set_by_symbol(self, "main") + +        process = target.LaunchSimple (None, None, self.get_process_working_directory()) +        self.assertTrue(process, PROCESS_IS_VALID) +        self.assertEqual(process.GetState(), lldb.eStateStopped, "Process is stopped") + +        pc = process.GetSelectedThread().GetSelectedFrame().GetPC() +        for size in [1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024]: +            error = lldb.SBError() +            memory = process.ReadMemory(pc, size, error) +            self.assertTrue(error.Success()) +            self.match("process plugin packet send x%x,%x" % (pc, size), ["response:", memory]) +            self.match("process plugin packet send m%x,%x" % (pc, size), ["response:", binascii.hexlify(memory)]) + +        process.Continue() +        self.assertEqual(process.GetState(), lldb.eStateExited, "Process exited")  | 
