import lldb from lldbsuite.test.decorators import * from lldbsuite.test.lldbtest import * from lldbsuite.test import lldbutil class TestCase(TestBase): @skipUnlessDarwin def test_synthetic(self): self.build() if self.TraceOn(): self.expect("log enable -v lldb formatters") _, _, thread, _ = lldbutil.run_to_source_breakpoint( self, "break here", lldb.SBFileSpec("main.cpp") ) frame = thread.selected_frame account = frame.var("acc") self.assertEqual(account.num_children, 1) self.assertEqual(account.child[0].name, "username") self.expect("v acc", matching=False, substrs=["password"]) @skipUnlessDarwin def test_update_reuse(self): self.build() log = self.getBuildArtifact("formatter.log") self.runCmd(f"log enable lldb formatters -f {log}") _, _, thread, _ = lldbutil.run_to_source_breakpoint( self, "break here", lldb.SBFileSpec("main.cpp") ) frame = thread.selected_frame account = frame.var("acc") self.assertEqual(account.num_children, 1) self.filecheck_log(log, __file__) # CHECK: Bytecode formatter can reuse @update: true (type: `Account`, name: `acc`)