summaryrefslogtreecommitdiff
path: root/lldb/test/API/functionalities/data-formatter/data-formatter-python-synth/TestDataFormatterPythonSynth.py
diff options
context:
space:
mode:
authorJonas Devlieghere <jonas@devlieghere.com>2023-05-25 08:48:57 -0700
committerJonas Devlieghere <jonas@devlieghere.com>2023-05-25 12:54:09 -0700
commit2238dcc39358353cac21df75c3c3286ab20b8f53 (patch)
tree1bb7ec8d7405ccd7fdb5a8a78d0cf5ef40bcc963 /lldb/test/API/functionalities/data-formatter/data-formatter-python-synth/TestDataFormatterPythonSynth.py
parentdaeee56798c51e8f007e8e8e6e677a420b14c9ef (diff)
[NFC][Py Reformat] Reformat python files in lldb
This is an ongoing series of commits that are reformatting our Python code. Reformatting is done with `black` (23.1.0). If you end up having problems merging this commit because you have made changes to a python file, the best way to handle that is to run `git checkout --ours <yourfile>` and then reformat it with black. RFC: https://discourse.llvm.org/t/rfc-document-and-standardize-python-code-style Differential revision: https://reviews.llvm.org/D151460
Diffstat (limited to 'lldb/test/API/functionalities/data-formatter/data-formatter-python-synth/TestDataFormatterPythonSynth.py')
-rw-r--r--lldb/test/API/functionalities/data-formatter/data-formatter-python-synth/TestDataFormatterPythonSynth.py268
1 files changed, 131 insertions, 137 deletions
diff --git a/lldb/test/API/functionalities/data-formatter/data-formatter-python-synth/TestDataFormatterPythonSynth.py b/lldb/test/API/functionalities/data-formatter/data-formatter-python-synth/TestDataFormatterPythonSynth.py
index 7eef1bc990cc..cae1e3b498b0 100644
--- a/lldb/test/API/functionalities/data-formatter/data-formatter-python-synth/TestDataFormatterPythonSynth.py
+++ b/lldb/test/API/functionalities/data-formatter/data-formatter-python-synth/TestDataFormatterPythonSynth.py
@@ -9,7 +9,6 @@ from lldbsuite.test import lldbutil
class PythonSynthDataFormatterTestCase(TestBase):
-
def test_with_run_command(self):
"""Test data formatter commands."""
self.build()
@@ -24,40 +23,38 @@ class PythonSynthDataFormatterTestCase(TestBase):
# Call super's setUp().
TestBase.setUp(self)
# Find the line number to break at.
- self.line = line_number('main.cpp', '// Set break point at this line.')
- self.line2 = line_number('main.cpp',
- '// Set cast break point at this line.')
+ self.line = line_number("main.cpp", "// Set break point at this line.")
+ self.line2 = line_number("main.cpp", "// Set cast break point at this line.")
self.line3 = line_number(
- 'main.cpp', '// Set second cast break point at this line.')
+ "main.cpp", "// Set second cast break point at this line."
+ )
def data_formatter_commands(self):
"""Test using Python synthetic children provider."""
_, process, thread, _ = lldbutil.run_to_line_breakpoint(
- self, lldb.SBFileSpec("main.cpp"), self.line)
+ self, lldb.SBFileSpec("main.cpp"), self.line
+ )
# This is the function to remove the custom formats in order to have a
# clean slate for the next test case.
def cleanup():
- self.runCmd('type format clear', check=False)
- self.runCmd('type summary clear', check=False)
- self.runCmd('type filter clear', check=False)
- self.runCmd('type synth clear', check=False)
+ self.runCmd("type format clear", check=False)
+ self.runCmd("type summary clear", check=False)
+ self.runCmd("type filter clear", check=False)
+ self.runCmd("type synth clear", check=False)
# Execute the cleanup function during test case tear down.
self.addTearDownHook(cleanup)
# print the f00_1 variable without a synth
- self.expect("frame variable f00_1",
- substrs=['a = 1',
- 'b = 2',
- 'r = 34'])
+ self.expect("frame variable f00_1", substrs=["a = 1", "b = 2", "r = 34"])
# now set up the synth
self.runCmd("script from fooSynthProvider import *")
self.runCmd("type synth add -l fooSynthProvider foo")
self.runCmd("type synth add -l wrapfooSynthProvider wrapfoo")
- self.expect("type synthetic list foo", substrs=['fooSynthProvider'])
+ self.expect("type synthetic list foo", substrs=["fooSynthProvider"])
# note that the value of fake_a depends on target byte order
if process.GetByteOrder() == lldb.eByteOrderLittle:
@@ -69,32 +66,26 @@ class PythonSynthDataFormatterTestCase(TestBase):
self.expect(
"frame variable f00_1",
substrs=[
- 'a = 1',
- 'fake_a = %d' % fake_a_val,
- 'r = 34',
- ])
+ "a = 1",
+ "fake_a = %d" % fake_a_val,
+ "r = 34",
+ ],
+ )
# check that we do not get the extra vars
- self.expect("frame variable f00_1", matching=False,
- substrs=['b = 2'])
+ self.expect("frame variable f00_1", matching=False, substrs=["b = 2"])
# check access to members by name
- self.expect('frame variable f00_1.fake_a',
- substrs=['%d' % fake_a_val])
+ self.expect("frame variable f00_1.fake_a", substrs=["%d" % fake_a_val])
# check access to members by index
- self.expect('frame variable f00_1[1]',
- substrs=['%d' % fake_a_val])
+ self.expect("frame variable f00_1[1]", substrs=["%d" % fake_a_val])
# put synthetic children in summary in several combinations
- self.runCmd(
- "type summary add --summary-string \"fake_a=${svar.fake_a}\" foo")
- self.expect('frame variable f00_1',
- substrs=['fake_a=%d' % fake_a_val])
- self.runCmd(
- "type summary add --summary-string \"fake_a=${svar[1]}\" foo")
- self.expect('frame variable f00_1',
- substrs=['fake_a=%d' % fake_a_val])
+ self.runCmd('type summary add --summary-string "fake_a=${svar.fake_a}" foo')
+ self.expect("frame variable f00_1", substrs=["fake_a=%d" % fake_a_val])
+ self.runCmd('type summary add --summary-string "fake_a=${svar[1]}" foo')
+ self.expect("frame variable f00_1", substrs=["fake_a=%d" % fake_a_val])
# clear the summary
self.runCmd("type summary delete foo")
@@ -110,10 +101,11 @@ class PythonSynthDataFormatterTestCase(TestBase):
self.expect(
"frame variable f00_1",
substrs=[
- 'a = 2',
- 'fake_a = %d' % fake_a_val,
- 'r = 34',
- ])
+ "a = 2",
+ "fake_a = %d" % fake_a_val,
+ "r = 34",
+ ],
+ )
# check that altering the object also alters fake_a
self.runCmd("expr f00_1.a = 280")
@@ -126,136 +118,133 @@ class PythonSynthDataFormatterTestCase(TestBase):
self.expect(
"frame variable f00_1",
substrs=[
- 'a = 280',
- 'fake_a = %d' % fake_a_val,
- 'r = 34',
- ])
+ "a = 280",
+ "fake_a = %d" % fake_a_val,
+ "r = 34",
+ ],
+ )
# check that expanding a pointer does the right thing
if process.GetByteOrder() == lldb.eByteOrderLittle:
- fake_a_val = 0x0d000000
+ fake_a_val = 0x0D000000
else:
- fake_a_val = 0x00000c00
+ fake_a_val = 0x00000C00
self.expect(
"frame variable --ptr-depth 1 f00_ptr",
substrs=[
- 'a = 12',
- 'fake_a = %d' % fake_a_val,
- 'r = 45',
- ])
+ "a = 12",
+ "fake_a = %d" % fake_a_val,
+ "r = 45",
+ ],
+ )
self.expect(
"frame variable --ptr-depth 1 wrapper",
substrs=[
- 'a = 12',
- 'fake_a = %d' % fake_a_val,
- 'r = 45',
- ])
+ "a = 12",
+ "fake_a = %d" % fake_a_val,
+ "r = 45",
+ ],
+ )
# now add a filter.. it should fail
- self.expect("type filter add foo --child b --child j", error=True,
- substrs=['cannot add'])
+ self.expect(
+ "type filter add foo --child b --child j",
+ error=True,
+ substrs=["cannot add"],
+ )
# we get the synth again..
- self.expect('frame variable f00_1', matching=False,
- substrs=['b = 1',
- 'j = 17'])
+ self.expect("frame variable f00_1", matching=False, substrs=["b = 1", "j = 17"])
self.expect(
"frame variable --ptr-depth 1 f00_ptr",
substrs=[
- 'a = 12',
- 'fake_a = %d' % fake_a_val,
- 'r = 45',
- ])
+ "a = 12",
+ "fake_a = %d" % fake_a_val,
+ "r = 45",
+ ],
+ )
self.expect(
"frame variable --ptr-depth 1 wrapper",
substrs=[
- 'a = 12',
- 'fake_a = %d' % fake_a_val,
- 'r = 45',
- ])
+ "a = 12",
+ "fake_a = %d" % fake_a_val,
+ "r = 45",
+ ],
+ )
# Test that the custom dereference operator for `wrapfoo` works through
# the Python API. The synthetic children provider gets queried at
# slightly different times in this case.
- wrapper_var = thread.GetSelectedFrame().FindVariable('wrapper')
+ wrapper_var = thread.GetSelectedFrame().FindVariable("wrapper")
foo_var = wrapper_var.Dereference()
self.assertEqual(foo_var.GetNumChildren(), 3)
- self.assertEqual(foo_var.GetChildAtIndex(0).GetName(), 'a')
- self.assertEqual(foo_var.GetChildAtIndex(1).GetName(), 'fake_a')
- self.assertEqual(foo_var.GetChildAtIndex(2).GetName(), 'r')
+ self.assertEqual(foo_var.GetChildAtIndex(0).GetName(), "a")
+ self.assertEqual(foo_var.GetChildAtIndex(1).GetName(), "fake_a")
+ self.assertEqual(foo_var.GetChildAtIndex(2).GetName(), "r")
# now delete the synth and add the filter
self.runCmd("type synth delete foo")
self.runCmd("type synth delete wrapfoo")
self.runCmd("type filter add foo --child b --child j")
- self.expect('frame variable f00_1',
- substrs=['b = 2',
- 'j = 18'])
- self.expect("frame variable --ptr-depth 1 f00_ptr", matching=False,
- substrs=['r = 45',
- 'fake_a = %d' % fake_a_val,
- 'a = 12'])
- self.expect("frame variable --ptr-depth 1 wrapper", matching=False,
- substrs=['r = 45',
- 'fake_a = %d' % fake_a_val,
- 'a = 12'])
+ self.expect("frame variable f00_1", substrs=["b = 2", "j = 18"])
+ self.expect(
+ "frame variable --ptr-depth 1 f00_ptr",
+ matching=False,
+ substrs=["r = 45", "fake_a = %d" % fake_a_val, "a = 12"],
+ )
+ self.expect(
+ "frame variable --ptr-depth 1 wrapper",
+ matching=False,
+ substrs=["r = 45", "fake_a = %d" % fake_a_val, "a = 12"],
+ )
# now add the synth and it should fail
- self.expect("type synth add -l fooSynthProvider foo", error=True,
- substrs=['cannot add'])
+ self.expect(
+ "type synth add -l fooSynthProvider foo", error=True, substrs=["cannot add"]
+ )
# check the listing
- self.expect('type synth list', matching=False,
- substrs=['foo',
- 'Python class fooSynthProvider'])
- self.expect('type filter list',
- substrs=['foo',
- '.b',
- '.j'])
+ self.expect(
+ "type synth list",
+ matching=False,
+ substrs=["foo", "Python class fooSynthProvider"],
+ )
+ self.expect("type filter list", substrs=["foo", ".b", ".j"])
# delete the filter, add the synth
self.runCmd("type filter delete foo")
self.runCmd("type synth add -l fooSynthProvider foo")
- self.expect('frame variable f00_1', matching=False,
- substrs=['b = 2',
- 'j = 18'])
+ self.expect("frame variable f00_1", matching=False, substrs=["b = 2", "j = 18"])
self.expect(
"frame variable --ptr-depth 1 f00_ptr",
substrs=[
- 'a = 12',
- 'fake_a = %d' % fake_a_val,
- 'r = 45',
- ])
+ "a = 12",
+ "fake_a = %d" % fake_a_val,
+ "r = 45",
+ ],
+ )
self.expect(
"frame variable --ptr-depth 1 wrapper",
substrs=[
- 'a = 12',
- 'fake_a = %d' % fake_a_val,
- 'r = 45',
- ])
+ "a = 12",
+ "fake_a = %d" % fake_a_val,
+ "r = 45",
+ ],
+ )
# check the listing
- self.expect('type synth list',
- substrs=['foo',
- 'Python class fooSynthProvider'])
- self.expect('type filter list', matching=False,
- substrs=['foo',
- '.b',
- '.j'])
+ self.expect("type synth list", substrs=["foo", "Python class fooSynthProvider"])
+ self.expect("type filter list", matching=False, substrs=["foo", ".b", ".j"])
# delete the synth and check that we get good output
self.runCmd("type synth delete foo")
- self.expect("frame variable f00_1",
- substrs=['a = 280',
- 'b = 2',
- 'j = 18'])
+ self.expect("frame variable f00_1", substrs=["a = 280", "b = 2", "j = 18"])
- self.expect("frame variable f00_1", matching=False,
- substrs=['fake_a = '])
+ self.expect("frame variable f00_1", matching=False, substrs=["fake_a = "])
# check that we don't feed a regex into another regex when checking for
# existing conflicting synth/filters. The two following expressions
@@ -280,24 +269,28 @@ class PythonSynthDataFormatterTestCase(TestBase):
# The second breakpoint is on a multi-line expression, so the comment
# can't be on the right line...
lldbutil.run_break_set_by_file_and_line(
- self, "main.cpp", self.line2, num_expected_locations=1, loc_exact=False)
+ self, "main.cpp", self.line2, num_expected_locations=1, loc_exact=False
+ )
lldbutil.run_break_set_by_file_and_line(
- self, "main.cpp", self.line3, num_expected_locations=1, loc_exact=True)
+ self, "main.cpp", self.line3, num_expected_locations=1, loc_exact=True
+ )
self.runCmd("run", RUN_SUCCEEDED)
# The stop reason of the thread should be breakpoint.
- self.expect("thread list", STOPPED_DUE_TO_BREAKPOINT,
- substrs=['stopped',
- 'stop reason = breakpoint'])
+ self.expect(
+ "thread list",
+ STOPPED_DUE_TO_BREAKPOINT,
+ substrs=["stopped", "stop reason = breakpoint"],
+ )
# This is the function to remove the custom formats in order to have a
# clean slate for the next test case.
def cleanup():
- self.runCmd('type format clear', check=False)
- self.runCmd('type summary clear', check=False)
- self.runCmd('type filter clear', check=False)
- self.runCmd('type synth clear', check=False)
+ self.runCmd("type format clear", check=False)
+ self.runCmd("type summary clear", check=False)
+ self.runCmd("type filter clear", check=False)
+ self.runCmd("type synth clear", check=False)
# Execute the cleanup function during test case tear down.
self.addTearDownHook(cleanup)
@@ -309,21 +302,24 @@ class PythonSynthDataFormatterTestCase(TestBase):
# but their values change correctly across stop-points - in order to do this, self.runCmd("next")
# does not work because it forces a wipe of the stack frame - this is why we are using this more contrived
# mechanism to achieve our goal of preserving test_cast as a VO
- test_cast = self.dbg.GetSelectedTarget().GetProcess(
- ).GetSelectedThread().GetSelectedFrame().FindVariable('test_cast')
+ test_cast = (
+ self.dbg.GetSelectedTarget()
+ .GetProcess()
+ .GetSelectedThread()
+ .GetSelectedFrame()
+ .FindVariable("test_cast")
+ )
str_cast = str(test_cast)
if self.TraceOn():
print(str_cast)
- self.assertTrue(str_cast.find('A') != -1, 'could not find A in output')
- self.assertTrue(str_cast.find('B') != -1, 'could not find B in output')
- self.assertTrue(str_cast.find('C') != -1, 'could not find C in output')
- self.assertTrue(str_cast.find('D') != -1, 'could not find D in output')
- self.assertTrue(
- str_cast.find("4 = '\\0'") != -1,
- 'could not find item 4 == 0')
+ self.assertTrue(str_cast.find("A") != -1, "could not find A in output")
+ self.assertTrue(str_cast.find("B") != -1, "could not find B in output")
+ self.assertTrue(str_cast.find("C") != -1, "could not find C in output")
+ self.assertTrue(str_cast.find("D") != -1, "could not find D in output")
+ self.assertTrue(str_cast.find("4 = '\\0'") != -1, "could not find item 4 == 0")
self.dbg.GetSelectedTarget().GetProcess().GetSelectedThread().StepOver()
@@ -335,10 +331,8 @@ class PythonSynthDataFormatterTestCase(TestBase):
# we detect that all the values of the child objects have changed - but the counter-generated item
# is still fixed at 0 because it is cached - this would fail if update(self): in ftsp returned False
# or if synthetic children were not being preserved
- self.assertTrue(str_cast.find('Q') != -1, 'could not find Q in output')
- self.assertTrue(str_cast.find('X') != -1, 'could not find X in output')
- self.assertTrue(str_cast.find('T') != -1, 'could not find T in output')
- self.assertTrue(str_cast.find('F') != -1, 'could not find F in output')
- self.assertTrue(
- str_cast.find("4 = '\\0'") != -1,
- 'could not find item 4 == 0')
+ self.assertTrue(str_cast.find("Q") != -1, "could not find Q in output")
+ self.assertTrue(str_cast.find("X") != -1, "could not find X in output")
+ self.assertTrue(str_cast.find("T") != -1, "could not find T in output")
+ self.assertTrue(str_cast.find("F") != -1, "could not find F in output")
+ self.assertTrue(str_cast.find("4 = '\\0'") != -1, "could not find item 4 == 0")