1 from __future__ import print_function
5 import gdbremote_testcase
7 from lldbsuite.test.decorators import *
8 from lldbsuite.test.lldbtest import *
9 from lldbsuite.test import lldbutil
11 class TestGdbRemoteAbort(gdbremote_testcase.GdbRemoteTestCaseBase):
12 mydir = TestBase.compute_mydir(__file__)
14 def inferior_abort_received(self):
15 procs = self.prep_debug_monitor_and_inferior(inferior_args=["abort"])
16 self.assertIsNotNone(procs)
18 self.test_sequence.add_log_lines([
19 "read packet: $vCont;c#a8",
20 {"direction":"send", "regex":r"^\$T([0-9a-fA-F]{2}).*#[0-9a-fA-F]{2}$", "capture":{ 1:"hex_exit_code"} },
23 context = self.expect_gdbremote_sequence()
24 self.assertIsNotNone(context)
26 hex_exit_code = context.get("hex_exit_code")
27 self.assertIsNotNone(hex_exit_code)
28 self.assertEqual(int(hex_exit_code, 16),
29 lldbutil.get_signal_number('SIGABRT'))
32 def test_inferior_abort_received_debugserver(self):
33 self.init_debugserver_test()
35 self.inferior_abort_received()
38 # std::abort() on <= API 16 raises SIGSEGV - b.android.com/179836
39 @expectedFailureAndroid(api_levels=list(range(16 + 1)))
40 def test_inferior_abort_received_llgs(self):
43 self.inferior_abort_received()