1 2import gdbremote_testcase 3from lldbsuite.test.decorators import * 4from lldbsuite.test.lldbtest import * 5from lldbsuite.test import lldbutil 6 7 8class TestGdbRemote_vCont(gdbremote_testcase.GdbRemoteTestCaseBase): 9 10 mydir = TestBase.compute_mydir(__file__) 11 12 def vCont_supports_mode(self, mode, inferior_args=None): 13 # Setup the stub and set the gdb remote command stream. 14 procs = self.prep_debug_monitor_and_inferior( 15 inferior_args=inferior_args) 16 self.add_vCont_query_packets() 17 18 # Run the gdb remote command stream. 19 context = self.expect_gdbremote_sequence() 20 self.assertIsNotNone(context) 21 22 # Pull out supported modes. 23 supported_vCont_modes = self.parse_vCont_query_response(context) 24 self.assertIsNotNone(supported_vCont_modes) 25 26 # Verify we support the given mode. 27 self.assertTrue(mode in supported_vCont_modes) 28 29 def vCont_supports_c(self): 30 self.vCont_supports_mode("c") 31 32 def vCont_supports_C(self): 33 self.vCont_supports_mode("C") 34 35 def vCont_supports_s(self): 36 self.vCont_supports_mode("s") 37 38 def vCont_supports_S(self): 39 self.vCont_supports_mode("S") 40 41 @expectedFailureAll(oslist=["ios", "tvos", "watchos", "bridgeos"], bugnumber="rdar://27005337") 42 @debugserver_test 43 def test_vCont_supports_c_debugserver(self): 44 self.init_debugserver_test() 45 self.build() 46 self.vCont_supports_c() 47 48 @expectedFailureAll(oslist=["ios", "tvos", "watchos", "bridgeos"], bugnumber="rdar://27005337") 49 @llgs_test 50 def test_vCont_supports_c_llgs(self): 51 self.init_llgs_test() 52 self.build() 53 self.vCont_supports_c() 54 55 @expectedFailureAll(oslist=["ios", "tvos", "watchos", "bridgeos"], bugnumber="rdar://27005337") 56 @debugserver_test 57 def test_vCont_supports_C_debugserver(self): 58 self.init_debugserver_test() 59 self.build() 60 self.vCont_supports_C() 61 62 @expectedFailureAll(oslist=["ios", "tvos", "watchos", "bridgeos"], bugnumber="rdar://27005337") 63 @llgs_test 64 def test_vCont_supports_C_llgs(self): 65 self.init_llgs_test() 66 self.build() 67 self.vCont_supports_C() 68 69 @expectedFailureAll(oslist=["ios", "tvos", "watchos", "bridgeos"], bugnumber="rdar://27005337") 70 @debugserver_test 71 def test_vCont_supports_s_debugserver(self): 72 self.init_debugserver_test() 73 self.build() 74 self.vCont_supports_s() 75 76 @expectedFailureAll(oslist=["ios", "tvos", "watchos", "bridgeos"], bugnumber="rdar://27005337") 77 @llgs_test 78 def test_vCont_supports_s_llgs(self): 79 self.init_llgs_test() 80 self.build() 81 self.vCont_supports_s() 82 83 @expectedFailureAll(oslist=["ios", "tvos", "watchos", "bridgeos"], bugnumber="rdar://27005337") 84 @debugserver_test 85 def test_vCont_supports_S_debugserver(self): 86 self.init_debugserver_test() 87 self.build() 88 self.vCont_supports_S() 89 90 @expectedFailureAll(oslist=["ios", "tvos", "watchos", "bridgeos"], bugnumber="rdar://27005337") 91 @llgs_test 92 def test_vCont_supports_S_llgs(self): 93 self.init_llgs_test() 94 self.build() 95 self.vCont_supports_S() 96 97 @expectedFailureAll(oslist=["ios", "tvos", "watchos", "bridgeos"], bugnumber="rdar://27005337") 98 @debugserver_test 99 def test_single_step_only_steps_one_instruction_with_Hc_vCont_s_debugserver( 100 self): 101 self.init_debugserver_test() 102 self.build() 103 self.set_inferior_startup_launch() 104 self.single_step_only_steps_one_instruction( 105 use_Hc_packet=True, step_instruction="vCont;s") 106 107 @skipIfWindows # No pty support to test O* & I* notification packets. 108 @llgs_test 109 @expectedFailureAndroid( 110 bugnumber="llvm.org/pr24739", 111 archs=[ 112 "arm", 113 "aarch64"]) 114 @expectedFailureAll( 115 oslist=["linux"], 116 archs=["arm"], 117 bugnumber="llvm.org/pr24739") 118 @skipIf(triple='^mips') 119 @expectedFailureAll(oslist=["ios", "tvos", "watchos", "bridgeos"], bugnumber="rdar://27005337") 120 def test_single_step_only_steps_one_instruction_with_Hc_vCont_s_llgs(self): 121 self.init_llgs_test() 122 self.build() 123 self.set_inferior_startup_launch() 124 self.single_step_only_steps_one_instruction( 125 use_Hc_packet=True, step_instruction="vCont;s") 126 127 @expectedFailureAll(oslist=["ios", "tvos", "watchos", "bridgeos"], bugnumber="rdar://27005337") 128 @debugserver_test 129 def test_single_step_only_steps_one_instruction_with_vCont_s_thread_debugserver( 130 self): 131 self.init_debugserver_test() 132 self.build() 133 self.set_inferior_startup_launch() 134 self.single_step_only_steps_one_instruction( 135 use_Hc_packet=False, step_instruction="vCont;s:{thread}") 136 137 @skipIfWindows # No pty support to test O* & I* notification packets. 138 @llgs_test 139 @expectedFailureAndroid( 140 bugnumber="llvm.org/pr24739", 141 archs=[ 142 "arm", 143 "aarch64"]) 144 @expectedFailureAll( 145 oslist=["linux"], 146 archs=["arm"], 147 bugnumber="llvm.org/pr24739") 148 @skipIf(triple='^mips') 149 @expectedFailureAll(oslist=["ios", "tvos", "watchos", "bridgeos"], bugnumber="rdar://27005337") 150 def test_single_step_only_steps_one_instruction_with_vCont_s_thread_llgs( 151 self): 152 self.init_llgs_test() 153 self.build() 154 self.set_inferior_startup_launch() 155 self.single_step_only_steps_one_instruction( 156 use_Hc_packet=False, step_instruction="vCont;s:{thread}") 157