1"""Test the SBPlatform APIs.""" 2 3from lldbsuite.test.decorators import * 4from lldbsuite.test.lldbtest import * 5 6class SBPlatformAPICase(TestBase): 7 NO_DEBUG_INFO_TESTCASE = True 8 9 @skipIfRemote # Remote environment not supported. 10 def test_run(self): 11 self.build() 12 plat = lldb.SBPlatform.GetHostPlatform() 13 14 os.environ["MY_TEST_ENV_VAR"]="SBPlatformAPICase.test_run" 15 def cleanup(): 16 del os.environ["MY_TEST_ENV_VAR"] 17 self.addTearDownHook(cleanup) 18 cmd = lldb.SBPlatformShellCommand(self.getBuildArtifact("a.out")) 19 self.assertSuccess(plat.Run(cmd)) 20 self.assertIn("MY_TEST_ENV_VAR=SBPlatformAPICase.test_run", cmd.GetOutput()) 21 22 def test_SetSDKRoot(self): 23 plat = lldb.SBPlatform("remote-linux") # arbitrary choice 24 self.assertTrue(plat) 25 plat.SetSDKRoot(self.getBuildDir()) 26 self.dbg.SetSelectedPlatform(plat) 27 self.expect("platform status", 28 substrs=["Sysroot:", self.getBuildDir()]) 29 30 def test_SetCurrentPlatform_floating(self): 31 # floating platforms cannot be referenced by name until they are 32 # associated with a debugger 33 floating_platform = lldb.SBPlatform("remote-netbsd") 34 floating_platform.SetWorkingDirectory(self.getBuildDir()) 35 self.assertSuccess(self.dbg.SetCurrentPlatform("remote-netbsd")) 36 dbg_platform = self.dbg.GetSelectedPlatform() 37 self.assertEqual(dbg_platform.GetName(), "remote-netbsd") 38 self.assertIsNone(dbg_platform.GetWorkingDirectory()) 39 40 def test_SetCurrentPlatform_associated(self): 41 # associated platforms are found by name-based lookup 42 floating_platform = lldb.SBPlatform("remote-netbsd") 43 floating_platform.SetWorkingDirectory(self.getBuildDir()) 44 orig_platform = self.dbg.GetSelectedPlatform() 45 46 self.dbg.SetSelectedPlatform(floating_platform) 47 self.dbg.SetSelectedPlatform(orig_platform) 48 self.assertSuccess(self.dbg.SetCurrentPlatform("remote-netbsd")) 49 dbg_platform = self.dbg.GetSelectedPlatform() 50 self.assertEqual(dbg_platform.GetName(), "remote-netbsd") 51 self.assertEqual(dbg_platform.GetWorkingDirectory(), self.getBuildDir()) 52