Files
clang-p2996/lldb/test/API/api/log/TestAPILog.py
Jonas Devlieghere 64c87a94ca [lldb/Test] Fix tests that rely on logfiles with reproducers.
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.
2020-06-17 10:09:06 -07:00

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)