summaryrefslogtreecommitdiffstats
path: root/lldb/packages/Python/lldbsuite
diff options
context:
space:
mode:
authorJonas Devlieghere <jonas@devlieghere.com>2019-09-13 19:08:10 +0000
committerJonas Devlieghere <jonas@devlieghere.com>2019-09-13 19:08:10 +0000
commit449ca01bac853efbf7d4434784af8457f2e0678f (patch)
tree0066dfdcd5f40b504087c0a053ab22b16b3e5136 /lldb/packages/Python/lldbsuite
parent556027085583470dc0db1c821ecdf1b5c1804154 (diff)
downloadbcm5719-llvm-449ca01bac853efbf7d4434784af8457f2e0678f.tar.gz
bcm5719-llvm-449ca01bac853efbf7d4434784af8457f2e0678f.zip
[Reproducer] Include the this pointer in the API log.
The new centralized way of doing API logging through the reproducer macros is lacking a way to easily correlate instances of API objects. Logging the this pointer makes that significantly easier. For methods this is now always passed as the first argument, similar to the self argument in Python. This patch also adds a test case for API logging, which uncovered that we were not quoting strings. Differential revision: https://reviews.llvm.org/D67538 llvm-svn: 371885
Diffstat (limited to 'lldb/packages/Python/lldbsuite')
-rw-r--r--lldb/packages/Python/lldbsuite/test/api/log/TestAPILog.py48
1 files changed, 48 insertions, 0 deletions
diff --git a/lldb/packages/Python/lldbsuite/test/api/log/TestAPILog.py b/lldb/packages/Python/lldbsuite/test/api/log/TestAPILog.py
new file mode 100644
index 00000000000..450d62029d4
--- /dev/null
+++ b/lldb/packages/Python/lldbsuite/test/api/log/TestAPILog.py
@@ -0,0 +1,48 @@
+"""
+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 = os.path.join(self.getBuildDir(), "api-log.txt")
+
+ def cleanup():
+ if os.path.exists(logfile):
+ os.unlink(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)
+
+ print(logfile)
+ with open(logfile, 'r') as f:
+ log = f.read()
+
+ # Find the debugger addr.
+ debugger_addr = re.findall(
+ r"lldb::SBDebugger::GetScriptingLanguage\(const char \*\) \(0x([0-9a-fA-F]+),",
+ log)[0]
+
+ get_scripting_language = 'lldb::ScriptLanguage lldb::SBDebugger::GetScriptingLanguage(const char *) (0x{}, "")'.format(
+ debugger_addr)
+ create_target = 'lldb::SBTarget lldb::SBDebugger::CreateTarget(const char *) (0x{}, "")'.format(
+ debugger_addr)
+
+ self.assertTrue(get_scripting_language in log)
+ self.assertTrue(create_target in log)
OpenPOWER on IntegriCloud