With the log file being a build artifact we don't need to clean it up. If this happens before the reproducer is captured, the file will be missing from the reproducer root but being part of the mapping.
50 lines
1.4 KiB
Python
50 lines
1.4 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")
|
|
|
|
self.expect("log enable lldb api -f {}".format(logfile))
|
|
|
|
self.dbg.SetDefaultArchitecture(None)
|
|
self.dbg.GetScriptingLanguage(None)
|
|
target = self.dbg.CreateTarget(None)
|
|
|
|
if configuration.is_reproducer_replay():
|
|
logfile = self.getReproducerRemappedPath(logfile)
|
|
|
|
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)
|