summaryrefslogtreecommitdiff
path: root/lldb/test/API/python_api/debugger/TestDebuggerAPI.py
diff options
context:
space:
mode:
Diffstat (limited to 'lldb/test/API/python_api/debugger/TestDebuggerAPI.py')
-rw-r--r--lldb/test/API/python_api/debugger/TestDebuggerAPI.py52
1 files changed, 52 insertions, 0 deletions
diff --git a/lldb/test/API/python_api/debugger/TestDebuggerAPI.py b/lldb/test/API/python_api/debugger/TestDebuggerAPI.py
index 0a19945af109..f0ba1d1e20aa 100644
--- a/lldb/test/API/python_api/debugger/TestDebuggerAPI.py
+++ b/lldb/test/API/python_api/debugger/TestDebuggerAPI.py
@@ -92,3 +92,55 @@ class DebuggerAPITestCase(TestBase):
# Test the local property again, is it set to new_cache_line_size?
self.assertEqual(get_cache_line_size(), new_cache_line_size)
+
+ def test_CreateTarget_platform(self):
+ exe = self.getBuildArtifact("a.out")
+ self.yaml2obj("elf.yaml", exe)
+ error = lldb.SBError()
+ target1 = self.dbg.CreateTarget(exe, None, "remote-linux",
+ False, error)
+ self.assertSuccess(error)
+ platform1 = target1.GetPlatform()
+ platform1.SetWorkingDirectory("/foo/bar")
+
+ # Reuse a platform if it matches the currently selected one...
+ target2 = self.dbg.CreateTarget(exe, None, "remote-linux",
+ False, error)
+ self.assertSuccess(error)
+ platform2 = target2.GetPlatform()
+ self.assertEqual(platform2.GetWorkingDirectory(), "/foo/bar")
+
+ # ... but create a new one if it doesn't.
+ self.dbg.SetSelectedPlatform(lldb.SBPlatform("remote-windows"))
+ target3 = self.dbg.CreateTarget(exe, None, "remote-linux",
+ False, error)
+ self.assertSuccess(error)
+ platform3 = target3.GetPlatform()
+ self.assertIsNone(platform3.GetWorkingDirectory())
+
+ def test_CreateTarget_arch(self):
+ exe = self.getBuildArtifact("a.out")
+ if lldbplatformutil.getHostPlatform() == 'linux':
+ self.yaml2obj("macho.yaml", exe)
+ arch = "x86_64-apple-macosx"
+ else:
+ self.yaml2obj("elf.yaml", exe)
+ arch = "x86_64-pc-linux"
+
+ fbsd = lldb.SBPlatform("remote-freebsd")
+ self.dbg.SetSelectedPlatform(fbsd)
+
+ error = lldb.SBError()
+ target1 = self.dbg.CreateTarget(exe, arch, None, False, error)
+ self.assertSuccess(error)
+ platform1 = target1.GetPlatform()
+ self.assertEqual(platform1.GetName(), "remote-macosx")
+ platform1.SetWorkingDirectory("/foo/bar")
+
+ # Reuse a platform even if it is not currently selected.
+ self.dbg.SetSelectedPlatform(fbsd)
+ target2 = self.dbg.CreateTarget(exe, arch, None, False, error)
+ self.assertSuccess(error)
+ platform2 = target2.GetPlatform()
+ self.assertEqual(platform2.GetName(), "remote-macosx")
+ self.assertEqual(platform2.GetWorkingDirectory(), "/foo/bar")