"""
Test API logging.
"""
import re
import lldb
import lldbsuite.test.lldbutil as lldbutil
from lldbsuite.test.lldbtest import *
class APILogTestCase(TestBase):
NO_DEBUG_INFO_TESTCASE = True
def test_api_log(self):
"""Test API logging"""
logfile = self.getBuildArtifact("api-log.txt")
self.expect("log enable lldb api -f {}".format(logfile))
self.dbg.SetDefaultArchitecture(None)
self.dbg.GetScriptingLanguage(None)
target = self.dbg.CreateTarget(None)
self.assertTrue(os.path.isfile(logfile))
with open(logfile, "r") as f:
log = f.read()
# Find the SBDebugger's address.
debugger_addr = re.findall(
r"lldb::SBDebugger::GetScriptingLanguage\([^)]*\) \(0x([0-9a-fA-F]+),", log
)
# Make sure we've found a match.
self.assertTrue(debugger_addr, log)
# Make sure the GetScriptingLanguage matches.
self.assertTrue(
re.search(
r'lldb::SBDebugger::GetScriptingLanguage\([^)]*\) \(0x{}, ""\)'.format(
debugger_addr[0]
),
log,
),
log,
)
# Make sure the address matches.
self.assertTrue(
re.search(
r'lldb::SBDebugger::CreateTarget\([^)]*\) \(0x{}, ""\)'.format(
debugger_addr[0]
),
log,
),
log,
)