| import lldb | |
| from lldbsuite.test.decorators import * | |
| from lldbsuite.test.lldbtest import * | |
| from lldbsuite.test import lldbutil | |
| class CPPAcceleratorTableTestCase(TestBase): | |
| @skipUnlessDarwin | |
| @skipIf(debug_info=no_match(["dwarf"])) | |
| @skipIf(dwarf_version=[">=", "5"]) | |
| def test(self): | |
| """Test that type lookups fail early (performance)""" | |
| self.build() | |
| logfile = self.getBuildArtifact("dwarf.log") | |
| self.expect("log enable dwarf lookups -f" + logfile) | |
| target, process, thread, bkpt = lldbutil.run_to_source_breakpoint( | |
| self, "break here", lldb.SBFileSpec("main.cpp") | |
| ) | |
| # Pick one from the middle of the list to have a high chance | |
| # of it not being in the first file looked at. | |
| self.expect("frame variable inner_d") | |
| with open(logfile) as f: | |
| log = f.readlines() | |
| n = 0 | |
| for line in log: | |
| if re.findall(r"[abcdefg]\.o: FindByNameAndTag\(\)", line): | |
| self.assertIn("d.o", line) | |
| n += 1 | |
| self.assertEqual(n, 1, "".join(log)) |