brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.3 KiB · f9eb597 Raw
70 lines · python
1"""Test that forward declarations don't cause bogus conflicts in namespaced types"""2 3 4import lldb5from lldbsuite.test.lldbtest import *6from lldbsuite.test.decorators import *7import lldbsuite.test.lldbutil as lldbutil8 9 10class NamespaceDefinitionsTestCase(TestBase):11    # See also llvm.org/pr2894812    @expectedFailureAll(bugnumber="llvm.org/pr50814", compiler="gcc")13    @expectedFailureAll(14        bugnumber="llvm.org/pr28948",15        oslist=["linux"],16        compiler="gcc",17        archs=["arm$", "aarch64"],18    )19    @expectedFailureAll(oslist=["windows"])20    def test_expr(self):21        self.build()22        self.common_setup()23 24        self.expect(25            "expression -- Foo::MyClass()",26            VARIABLES_DISPLAYED_CORRECTLY,27            substrs=["thing = "],28        )29 30    def setUp(self):31        # Call super's setUp().32        TestBase.setUp(self)33        # Find the line number to break inside main().34        self.source = "main.cpp"35        self.line = line_number(self.source, "// Set breakpoint here")36        self.shlib_names = ["a", "b"]37 38    def common_setup(self):39        # Run in synchronous mode40        self.dbg.SetAsync(False)41 42        # Create a target by the debugger.43        target = self.dbg.CreateTarget(self.getBuildArtifact("a.out"))44        self.assertTrue(target, VALID_TARGET)45 46        # Break inside the foo function which takes a bar_ptr argument.47        lldbutil.run_break_set_by_file_and_line(48            self, self.source, self.line, num_expected_locations=1, loc_exact=True49        )50 51        # Register our shared libraries for remote targets so they get52        # automatically uploaded53        environment = self.registerSharedLibrariesWithTarget(target, self.shlib_names)54 55        # Now launch the process, and do not stop at entry point.56        process = target.LaunchSimple(57            None, environment, self.get_process_working_directory()58        )59        self.assertTrue(process, PROCESS_IS_VALID)60 61        # The stop reason of the thread should be breakpoint.62        self.expect(63            "thread list",64            STOPPED_DUE_TO_BREAKPOINT,65            substrs=["stopped", "stop reason = breakpoint"],66        )67 68        # The breakpoint should have a hit count of 1.69        lldbutil.check_breakpoint(self, bpno=1, expected_hit_count=1)70