"""
Test completion in our IOHandlers.
"""
import os
import lldb
from lldbsuite.test.decorators import *
from lldbsuite.test.lldbtest import *
from lldbsuite.test.lldbpexpect import PExpectTest
class BreakpointCallbackCommandSource(PExpectTest):
file_to_source = os.path.join(
os.path.abspath(os.path.dirname(__file__)), "source.lldb"
)
# PExpect uses many timeouts internally and doesn't play well
# under ASAN on a loaded machine..
@skipIfAsan
@skipIfEditlineSupportMissing
@skipIf(oslist=["linux"], archs=["arm", "aarch64"])
@skipIf(oslist=["freebsd"], bugnumber="llvm.org/pr48316")
def test_breakpoint_callback_command_source(self):
self.build()
exe = self.getBuildArtifact("a.out")
self.launch(exe)
self.expect("b main", substrs=["Breakpoint 1"])
self.child.send("breakpoint command add -s python\n")
self.child.send(
"frame.GetThread().GetProcess().GetTarget().GetDebugger().HandleCommand('command source -s true {}')\n".format(
self.file_to_source
)
)
self.child.send("DONE\n")
self.expect_prompt()
self.expect("run", substrs=["Process", "stopped"])
self.expect("script print(foo)", substrs=["95126"])