1import lldb 2from lldbsuite.test.decorators import * 3from lldbsuite.test.lldbtest import * 4from lldbsuite.test import lldbutil 5 6 7class CPPAcceleratorTableTestCase(TestBase): 8 @skipUnlessDarwin 9 @skipIf(debug_info=no_match(["dwarf"])) 10 @skipIf(dwarf_version=[">=", "5"]) 11 def test(self): 12 """Test that type lookups fail early (performance)""" 13 self.build() 14 15 logfile = self.getBuildArtifact("dwarf.log") 16 17 self.expect("log enable dwarf lookups -f" + logfile) 18 target, process, thread, bkpt = lldbutil.run_to_source_breakpoint( 19 self, "break here", lldb.SBFileSpec("main.cpp") 20 ) 21 # Pick one from the middle of the list to have a high chance 22 # of it not being in the first file looked at. 23 self.expect("frame variable inner_d") 24 25 with open(logfile) as f: 26 log = f.readlines() 27 n = 0 28 for line in log: 29 if re.findall(r"[abcdefg]\.o: FindByNameAndTag\(\)", line): 30 self.assertIn("d.o", line) 31 n += 1 32 33 self.assertEqual(n, 1, "".join(log)) 34