199451b44SJordan Rupprecht""" 299451b44SJordan RupprechtTest completion in our IOHandlers. 399451b44SJordan Rupprecht""" 499451b44SJordan Rupprecht 599451b44SJordan Rupprechtimport os 699451b44SJordan Rupprecht 799451b44SJordan Rupprechtimport lldb 899451b44SJordan Rupprechtfrom lldbsuite.test.decorators import * 999451b44SJordan Rupprechtfrom lldbsuite.test.lldbtest import * 1099451b44SJordan Rupprechtfrom lldbsuite.test.lldbpexpect import PExpectTest 1199451b44SJordan Rupprecht 1299451b44SJordan Rupprecht 1399451b44SJordan Rupprechtclass BreakpointCallbackCommandSource(PExpectTest): 1499451b44SJordan Rupprecht file_to_source = os.path.join(os.path.abspath(os.path.dirname(__file__)), 'source.lldb') 1599451b44SJordan Rupprecht 1699451b44SJordan Rupprecht # PExpect uses many timeouts internally and doesn't play well 1799451b44SJordan Rupprecht # under ASAN on a loaded machine.. 1899451b44SJordan Rupprecht @skipIfAsan 1999451b44SJordan Rupprecht @skipIfEditlineSupportMissing 20*f2128abeSMuhammad Omair Javaid @skipIf(oslist=["linux"], archs=["arm", "aarch64"]) 21266c90feSMichał Górny @skipIf(oslist=["freebsd"], bugnumber="llvm.org/pr48316") 2299451b44SJordan Rupprecht def test_breakpoint_callback_command_source(self): 2399451b44SJordan Rupprecht self.build() 2499451b44SJordan Rupprecht exe = self.getBuildArtifact("a.out") 2599451b44SJordan Rupprecht 2699451b44SJordan Rupprecht self.launch(exe) 2799451b44SJordan Rupprecht self.expect("b main", substrs=["Breakpoint 1"]) 2899451b44SJordan Rupprecht self.child.send("breakpoint command add -s python\n") 2999451b44SJordan Rupprecht self.child.send( 3099451b44SJordan Rupprecht "frame.GetThread().GetProcess().GetTarget().GetDebugger().HandleCommand('command source -s true {}')\n" 3199451b44SJordan Rupprecht .format(self.file_to_source)) 3299451b44SJordan Rupprecht self.child.send("DONE\n") 3399451b44SJordan Rupprecht self.expect_prompt() 3499451b44SJordan Rupprecht self.expect("run", substrs=["Process", "stopped"]) 3599451b44SJordan Rupprecht self.expect("script print(foo)", substrs=["95126"]) 36