1""" 2Test that breakpoints in an IT instruction don't fire if their condition is 3false. 4""" 5 6 7import lldb 8from lldbsuite.test.decorators import * 9from lldbsuite.test.lldbtest import * 10from lldbsuite.test import lldbutil 11 12 13class TestBreakpointIt(TestBase): 14 15 mydir = TestBase.compute_mydir(__file__) 16 NO_DEBUG_INFO_TESTCASE = True 17 18 @skipIf(archs=no_match(["arm"])) 19 @skipIf(archs=["arm64", "arm64e", "arm64_32"]) 20 def test_false(self): 21 self.build() 22 exe = self.getBuildArtifact("a.out") 23 24 self.runCmd("target create %s" % exe) 25 lldbutil.run_break_set_by_symbol(self, "bkpt_false", 26 extra_options="--skip-prologue 0") 27 28 self.runCmd("run") 29 self.assertEqual(self.process().GetState(), lldb.eStateExited, 30 "Breakpoint does not get hit") 31 32 @skipIf(archs=no_match(["arm"])) 33 @skipIf(archs=["arm64", "arm64e", "arm64_32"]) 34 def test_true(self): 35 self.build() 36 exe = self.getBuildArtifact("a.out") 37 38 self.runCmd("target create %s" % exe) 39 bpid = lldbutil.run_break_set_by_symbol(self, "bkpt_true", 40 extra_options="--skip-prologue 0") 41 42 self.runCmd("run") 43 self.assertIsNotNone(lldbutil.get_one_thread_stopped_at_breakpoint_id( 44 self.process(), bpid)) 45