Now that the log file is included in the reproducers, the path needs to be remapped for the test to find the new file in the reproducer.
55 lines
1.5 KiB
Python
55 lines
1.5 KiB
Python
"""
|
|
Test API logging.
|
|
"""
|
|
|
|
import re
|
|
|
|
import lldb
|
|
import lldbsuite.test.lldbutil as lldbutil
|
|
from lldbsuite.test.lldbtest import *
|
|
|
|
|
|
class APILogTestCase(TestBase):
|
|
|
|
mydir = TestBase.compute_mydir(__file__)
|
|
|
|
NO_DEBUG_INFO_TESTCASE = True
|
|
|
|
def test_api_log(self):
|
|
"""Test API logging"""
|
|
logfile = self.getBuildArtifact("api-log.txt")
|
|
|
|
def cleanup():
|
|
if os.path.exists(logfile):
|
|
os.unlink(logfile)
|
|
|
|
if configuration.is_reproducer_replay():
|
|
logfile = self.getReproducerRemappedPath(logfile)
|
|
|
|
self.addTearDownHook(cleanup)
|
|
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)
|