Differential D61687 Diff 214985 packages/Python/lldbsuite/test/tools/lldb-server/TestLldbGdbServer.py
Changeset View
Changeset View
Standalone View
Standalone View
packages/Python/lldbsuite/test/tools/lldb-server/TestLldbGdbServer.py
Show First 20 Lines • Show All 150 Lines • ▼ Show 20 Lines | class LldbGdbServerTestCase(gdbremote_testcase.GdbRemoteTestCaseBase, DwarfOpcodeParser): | ||||
@debugserver_test | @debugserver_test | ||||
@skipIfDarwinEmbedded # <rdar://problem/34539270> lldb-server tests not updated to work on ios etc yet | @skipIfDarwinEmbedded # <rdar://problem/34539270> lldb-server tests not updated to work on ios etc yet | ||||
def test_inferior_print_exit_debugserver(self): | def test_inferior_print_exit_debugserver(self): | ||||
self.init_debugserver_test() | self.init_debugserver_test() | ||||
self.build() | self.build() | ||||
self.inferior_print_exit() | self.inferior_print_exit() | ||||
@skipIfWindows # No pty support to test any inferior output | |||||
@llgs_test | @llgs_test | ||||
@expectedFlakeyLinux("llvm.org/pr25652") | @expectedFlakeyLinux("llvm.org/pr25652") | ||||
def test_inferior_print_exit_llgs(self): | def test_inferior_print_exit_llgs(self): | ||||
self.init_llgs_test() | self.init_llgs_test() | ||||
self.build() | self.build() | ||||
self.inferior_print_exit() | self.inferior_print_exit() | ||||
def first_launch_stop_reply_thread_matches_first_qC(self): | def first_launch_stop_reply_thread_matches_first_qC(self): | ||||
▲ Show 20 Lines • Show All 262 Lines • ▼ Show 20 Lines | def qRegisterInfo_contains_avx_registers(self): | ||||
# Collect all generics found. | # Collect all generics found. | ||||
register_sets = { | register_sets = { | ||||
reg_info['set']: 1 for reg_info in reg_infos if 'set' in reg_info} | reg_info['set']: 1 for reg_info in reg_infos if 'set' in reg_info} | ||||
self.assertEqual( | self.assertEqual( | ||||
self.targetHasAVX(), | self.targetHasAVX(), | ||||
"Advanced Vector Extensions" in register_sets) | "Advanced Vector Extensions" in register_sets) | ||||
@expectedFailureAll(oslist=["windows"]) # no avx for now. | |||||
@llgs_test | @llgs_test | ||||
def test_qRegisterInfo_contains_avx_registers_llgs(self): | def test_qRegisterInfo_contains_avx_registers_llgs(self): | ||||
self.init_llgs_test() | self.init_llgs_test() | ||||
self.build() | self.build() | ||||
self.qRegisterInfo_contains_avx_registers() | self.qRegisterInfo_contains_avx_registers() | ||||
def qThreadInfo_contains_thread(self): | def qThreadInfo_contains_thread(self): | ||||
procs = self.prep_debug_monitor_and_inferior() | procs = self.prep_debug_monitor_and_inferior() | ||||
Show All 28 Lines | class LldbGdbServerTestCase(gdbremote_testcase.GdbRemoteTestCaseBase, DwarfOpcodeParser): | ||||
@debugserver_test | @debugserver_test | ||||
@skipIfDarwinEmbedded # <rdar://problem/34539270> lldb-server tests not updated to work on ios etc yet | @skipIfDarwinEmbedded # <rdar://problem/34539270> lldb-server tests not updated to work on ios etc yet | ||||
def test_qThreadInfo_contains_thread_attach_debugserver(self): | def test_qThreadInfo_contains_thread_attach_debugserver(self): | ||||
self.init_debugserver_test() | self.init_debugserver_test() | ||||
self.build() | self.build() | ||||
self.set_inferior_startup_attach() | self.set_inferior_startup_attach() | ||||
self.qThreadInfo_contains_thread() | self.qThreadInfo_contains_thread() | ||||
@expectedFailureAll(oslist=["windows"]) # expect one more thread stopped | |||||
@llgs_test | @llgs_test | ||||
def test_qThreadInfo_contains_thread_attach_llgs(self): | def test_qThreadInfo_contains_thread_attach_llgs(self): | ||||
self.init_llgs_test() | self.init_llgs_test() | ||||
self.build() | self.build() | ||||
self.set_inferior_startup_attach() | self.set_inferior_startup_attach() | ||||
self.qThreadInfo_contains_thread() | self.qThreadInfo_contains_thread() | ||||
def qThreadInfo_matches_qC(self): | def qThreadInfo_matches_qC(self): | ||||
▲ Show 20 Lines • Show All 42 Lines • ▼ Show 20 Lines | class LldbGdbServerTestCase(gdbremote_testcase.GdbRemoteTestCaseBase, DwarfOpcodeParser): | ||||
@debugserver_test | @debugserver_test | ||||
@skipIfDarwinEmbedded # <rdar://problem/34539270> lldb-server tests not updated to work on ios etc yet | @skipIfDarwinEmbedded # <rdar://problem/34539270> lldb-server tests not updated to work on ios etc yet | ||||
def test_qThreadInfo_matches_qC_attach_debugserver(self): | def test_qThreadInfo_matches_qC_attach_debugserver(self): | ||||
self.init_debugserver_test() | self.init_debugserver_test() | ||||
self.build() | self.build() | ||||
self.set_inferior_startup_attach() | self.set_inferior_startup_attach() | ||||
self.qThreadInfo_matches_qC() | self.qThreadInfo_matches_qC() | ||||
@expectedFailureAll(oslist=["windows"]) # expect one more thread stopped | |||||
@llgs_test | @llgs_test | ||||
def test_qThreadInfo_matches_qC_attach_llgs(self): | def test_qThreadInfo_matches_qC_attach_llgs(self): | ||||
self.init_llgs_test() | self.init_llgs_test() | ||||
self.build() | self.build() | ||||
self.set_inferior_startup_attach() | self.set_inferior_startup_attach() | ||||
self.qThreadInfo_matches_qC() | self.qThreadInfo_matches_qC() | ||||
def p_returns_correct_data_size_for_each_qRegisterInfo(self): | def p_returns_correct_data_size_for_each_qRegisterInfo(self): | ||||
▲ Show 20 Lines • Show All 112 Lines • ▼ Show 20 Lines | class LldbGdbServerTestCase(gdbremote_testcase.GdbRemoteTestCaseBase, DwarfOpcodeParser): | ||||
@debugserver_test | @debugserver_test | ||||
@skipIfDarwinEmbedded # <rdar://problem/34539270> lldb-server tests not updated to work on ios etc yet | @skipIfDarwinEmbedded # <rdar://problem/34539270> lldb-server tests not updated to work on ios etc yet | ||||
def test_Hg_switches_to_3_threads_launch_debugserver(self): | def test_Hg_switches_to_3_threads_launch_debugserver(self): | ||||
self.init_debugserver_test() | self.init_debugserver_test() | ||||
self.build() | self.build() | ||||
self.set_inferior_startup_launch() | self.set_inferior_startup_launch() | ||||
self.Hg_switches_to_3_threads() | self.Hg_switches_to_3_threads() | ||||
@expectedFailureAll(oslist=["windows"]) # expect 4 threads | |||||
@llgs_test | @llgs_test | ||||
def test_Hg_switches_to_3_threads_launch_llgs(self): | def test_Hg_switches_to_3_threads_launch_llgs(self): | ||||
self.init_llgs_test() | self.init_llgs_test() | ||||
self.build() | self.build() | ||||
self.set_inferior_startup_launch() | self.set_inferior_startup_launch() | ||||
self.Hg_switches_to_3_threads() | self.Hg_switches_to_3_threads() | ||||
@debugserver_test | @debugserver_test | ||||
@skipIfDarwinEmbedded # <rdar://problem/34539270> lldb-server tests not updated to work on ios etc yet | @skipIfDarwinEmbedded # <rdar://problem/34539270> lldb-server tests not updated to work on ios etc yet | ||||
def test_Hg_switches_to_3_threads_attach_debugserver(self): | def test_Hg_switches_to_3_threads_attach_debugserver(self): | ||||
self.init_debugserver_test() | self.init_debugserver_test() | ||||
self.build() | self.build() | ||||
self.set_inferior_startup_attach() | self.set_inferior_startup_attach() | ||||
self.Hg_switches_to_3_threads() | self.Hg_switches_to_3_threads() | ||||
@expectedFailureAll(oslist=["windows"]) # expecting one more thread | |||||
@llgs_test | @llgs_test | ||||
def test_Hg_switches_to_3_threads_attach_llgs(self): | def test_Hg_switches_to_3_threads_attach_llgs(self): | ||||
self.init_llgs_test() | self.init_llgs_test() | ||||
self.build() | self.build() | ||||
self.set_inferior_startup_attach() | self.set_inferior_startup_attach() | ||||
self.Hg_switches_to_3_threads() | self.Hg_switches_to_3_threads() | ||||
def Hc_then_Csignal_signals_correct_thread(self, segfault_signo): | def Hc_then_Csignal_signals_correct_thread(self, segfault_signo): | ||||
▲ Show 20 Lines • Show All 113 Lines • ▼ Show 20 Lines | class LldbGdbServerTestCase(gdbremote_testcase.GdbRemoteTestCaseBase, DwarfOpcodeParser): | ||||
def test_Hc_then_Csignal_signals_correct_thread_launch_debugserver(self): | def test_Hc_then_Csignal_signals_correct_thread_launch_debugserver(self): | ||||
self.init_debugserver_test() | self.init_debugserver_test() | ||||
self.build() | self.build() | ||||
self.set_inferior_startup_launch() | self.set_inferior_startup_launch() | ||||
# Darwin debugserver translates some signals like SIGSEGV into some gdb | # Darwin debugserver translates some signals like SIGSEGV into some gdb | ||||
# expectations about fixed signal numbers. | # expectations about fixed signal numbers. | ||||
self.Hc_then_Csignal_signals_correct_thread(self.TARGET_EXC_BAD_ACCESS) | self.Hc_then_Csignal_signals_correct_thread(self.TARGET_EXC_BAD_ACCESS) | ||||
@skipIfWindows # no SIGSEGV support | |||||
@llgs_test | @llgs_test | ||||
def test_Hc_then_Csignal_signals_correct_thread_launch_llgs(self): | def test_Hc_then_Csignal_signals_correct_thread_launch_llgs(self): | ||||
self.init_llgs_test() | self.init_llgs_test() | ||||
self.build() | self.build() | ||||
self.set_inferior_startup_launch() | self.set_inferior_startup_launch() | ||||
self.Hc_then_Csignal_signals_correct_thread( | self.Hc_then_Csignal_signals_correct_thread( | ||||
lldbutil.get_signal_number('SIGSEGV')) | lldbutil.get_signal_number('SIGSEGV')) | ||||
▲ Show 20 Lines • Show All 52 Lines • ▼ Show 20 Lines | class LldbGdbServerTestCase(gdbremote_testcase.GdbRemoteTestCaseBase, DwarfOpcodeParser): | ||||
@debugserver_test | @debugserver_test | ||||
@skipIfDarwinEmbedded # <rdar://problem/34539270> lldb-server tests not updated to work on ios etc yet | @skipIfDarwinEmbedded # <rdar://problem/34539270> lldb-server tests not updated to work on ios etc yet | ||||
def test_m_packet_reads_memory_debugserver(self): | def test_m_packet_reads_memory_debugserver(self): | ||||
self.init_debugserver_test() | self.init_debugserver_test() | ||||
self.build() | self.build() | ||||
self.set_inferior_startup_launch() | self.set_inferior_startup_launch() | ||||
self.m_packet_reads_memory() | self.m_packet_reads_memory() | ||||
@skipIfWindows # No pty support to test any inferior output | |||||
@llgs_test | @llgs_test | ||||
def test_m_packet_reads_memory_llgs(self): | def test_m_packet_reads_memory_llgs(self): | ||||
self.init_llgs_test() | self.init_llgs_test() | ||||
self.build() | self.build() | ||||
self.set_inferior_startup_launch() | self.set_inferior_startup_launch() | ||||
self.m_packet_reads_memory() | self.m_packet_reads_memory() | ||||
def qMemoryRegionInfo_is_supported(self): | def qMemoryRegionInfo_is_supported(self): | ||||
▲ Show 20 Lines • Show All 74 Lines • ▼ Show 20 Lines | class LldbGdbServerTestCase(gdbremote_testcase.GdbRemoteTestCaseBase, DwarfOpcodeParser): | ||||
@skipIfDarwinEmbedded # <rdar://problem/34539270> lldb-server tests not updated to work on ios etc yet | @skipIfDarwinEmbedded # <rdar://problem/34539270> lldb-server tests not updated to work on ios etc yet | ||||
def test_qMemoryRegionInfo_reports_code_address_as_executable_debugserver( | def test_qMemoryRegionInfo_reports_code_address_as_executable_debugserver( | ||||
self): | self): | ||||
self.init_debugserver_test() | self.init_debugserver_test() | ||||
self.build() | self.build() | ||||
self.set_inferior_startup_launch() | self.set_inferior_startup_launch() | ||||
self.qMemoryRegionInfo_reports_code_address_as_executable() | self.qMemoryRegionInfo_reports_code_address_as_executable() | ||||
@skipIfWindows # No pty support to test any inferior output | |||||
@llgs_test | @llgs_test | ||||
def test_qMemoryRegionInfo_reports_code_address_as_executable_llgs(self): | def test_qMemoryRegionInfo_reports_code_address_as_executable_llgs(self): | ||||
self.init_llgs_test() | self.init_llgs_test() | ||||
self.build() | self.build() | ||||
self.set_inferior_startup_launch() | self.set_inferior_startup_launch() | ||||
self.qMemoryRegionInfo_reports_code_address_as_executable() | self.qMemoryRegionInfo_reports_code_address_as_executable() | ||||
def qMemoryRegionInfo_reports_stack_address_as_readable_writeable(self): | def qMemoryRegionInfo_reports_stack_address_as_readable_writeable(self): | ||||
▲ Show 20 Lines • Show All 49 Lines • ▼ Show 20 Lines | |||||
@skipIfDarwinEmbedded # <rdar://problem/34539270> lldb-server tests not updated to work on ios etc yet | @skipIfDarwinEmbedded # <rdar://problem/34539270> lldb-server tests not updated to work on ios etc yet | ||||
def test_qMemoryRegionInfo_reports_stack_address_as_readable_writeable_debugserver( | def test_qMemoryRegionInfo_reports_stack_address_as_readable_writeable_debugserver( | ||||
self): | self): | ||||
self.init_debugserver_test() | self.init_debugserver_test() | ||||
self.build() | self.build() | ||||
self.set_inferior_startup_launch() | self.set_inferior_startup_launch() | ||||
self.qMemoryRegionInfo_reports_stack_address_as_readable_writeable() | self.qMemoryRegionInfo_reports_stack_address_as_readable_writeable() | ||||
@skipIfWindows # No pty support to test any inferior output | |||||
@llgs_test | @llgs_test | ||||
def test_qMemoryRegionInfo_reports_stack_address_as_readable_writeable_llgs( | def test_qMemoryRegionInfo_reports_stack_address_as_readable_writeable_llgs( | ||||
self): | self): | ||||
self.init_llgs_test() | self.init_llgs_test() | ||||
self.build() | self.build() | ||||
self.set_inferior_startup_launch() | self.set_inferior_startup_launch() | ||||
self.qMemoryRegionInfo_reports_stack_address_as_readable_writeable() | self.qMemoryRegionInfo_reports_stack_address_as_readable_writeable() | ||||
▲ Show 20 Lines • Show All 49 Lines • ▼ Show 20 Lines | |||||
@skipIfDarwinEmbedded # <rdar://problem/34539270> lldb-server tests not updated to work on ios etc yet | @skipIfDarwinEmbedded # <rdar://problem/34539270> lldb-server tests not updated to work on ios etc yet | ||||
def test_qMemoryRegionInfo_reports_heap_address_as_readable_writeable_debugserver( | def test_qMemoryRegionInfo_reports_heap_address_as_readable_writeable_debugserver( | ||||
self): | self): | ||||
self.init_debugserver_test() | self.init_debugserver_test() | ||||
self.build() | self.build() | ||||
self.set_inferior_startup_launch() | self.set_inferior_startup_launch() | ||||
self.qMemoryRegionInfo_reports_heap_address_as_readable_writeable() | self.qMemoryRegionInfo_reports_heap_address_as_readable_writeable() | ||||
@skipIfWindows # No pty support to test any inferior output | |||||
@llgs_test | @llgs_test | ||||
def test_qMemoryRegionInfo_reports_heap_address_as_readable_writeable_llgs( | def test_qMemoryRegionInfo_reports_heap_address_as_readable_writeable_llgs( | ||||
self): | self): | ||||
self.init_llgs_test() | self.init_llgs_test() | ||||
self.build() | self.build() | ||||
self.set_inferior_startup_launch() | self.set_inferior_startup_launch() | ||||
self.qMemoryRegionInfo_reports_heap_address_as_readable_writeable() | self.qMemoryRegionInfo_reports_heap_address_as_readable_writeable() | ||||
▲ Show 20 Lines • Show All 136 Lines • ▼ Show 20 Lines | def test_software_breakpoint_set_and_remove_work_debugserver(self): | ||||
if self.getArchitecture() == "arm": | if self.getArchitecture() == "arm": | ||||
# TODO: Handle case when setting breakpoint in thumb code | # TODO: Handle case when setting breakpoint in thumb code | ||||
self.build(dictionary={'CFLAGS_EXTRAS': '-marm'}) | self.build(dictionary={'CFLAGS_EXTRAS': '-marm'}) | ||||
else: | else: | ||||
self.build() | self.build() | ||||
self.set_inferior_startup_launch() | self.set_inferior_startup_launch() | ||||
self.breakpoint_set_and_remove_work(want_hardware=False) | self.breakpoint_set_and_remove_work(want_hardware=False) | ||||
@skipIfWindows # No pty support to test any inferior output | |||||
@llgs_test | @llgs_test | ||||
@expectedFlakeyLinux("llvm.org/pr25652") | @expectedFlakeyLinux("llvm.org/pr25652") | ||||
def test_software_breakpoint_set_and_remove_work_llgs(self): | def test_software_breakpoint_set_and_remove_work_llgs(self): | ||||
self.init_llgs_test() | self.init_llgs_test() | ||||
if self.getArchitecture() == "arm": | if self.getArchitecture() == "arm": | ||||
# TODO: Handle case when setting breakpoint in thumb code | # TODO: Handle case when setting breakpoint in thumb code | ||||
self.build(dictionary={'CFLAGS_EXTRAS': '-marm'}) | self.build(dictionary={'CFLAGS_EXTRAS': '-marm'}) | ||||
else: | else: | ||||
▲ Show 20 Lines • Show All 120 Lines • ▼ Show 20 Lines | |||||
@debugserver_test | @debugserver_test | ||||
@skipIfDarwinEmbedded # <rdar://problem/34539270> lldb-server tests not updated to work on ios etc yet | @skipIfDarwinEmbedded # <rdar://problem/34539270> lldb-server tests not updated to work on ios etc yet | ||||
def test_written_M_content_reads_back_correctly_debugserver(self): | def test_written_M_content_reads_back_correctly_debugserver(self): | ||||
self.init_debugserver_test() | self.init_debugserver_test() | ||||
self.build() | self.build() | ||||
self.set_inferior_startup_launch() | self.set_inferior_startup_launch() | ||||
self.written_M_content_reads_back_correctly() | self.written_M_content_reads_back_correctly() | ||||
@skipIfWindows # No pty support to test any inferior output | |||||
@llgs_test | @llgs_test | ||||
@expectedFlakeyLinux("llvm.org/pr25652") | @expectedFlakeyLinux("llvm.org/pr25652") | ||||
def test_written_M_content_reads_back_correctly_llgs(self): | def test_written_M_content_reads_back_correctly_llgs(self): | ||||
self.init_llgs_test() | self.init_llgs_test() | ||||
self.build() | self.build() | ||||
self.set_inferior_startup_launch() | self.set_inferior_startup_launch() | ||||
self.written_M_content_reads_back_correctly() | self.written_M_content_reads_back_correctly() | ||||
▲ Show 20 Lines • Show All 159 Lines • ▼ Show 20 Lines | |||||
@debugserver_test | @debugserver_test | ||||
@skipIfDarwinEmbedded # <rdar://problem/34539270> lldb-server tests not updated to work on ios etc yet | @skipIfDarwinEmbedded # <rdar://problem/34539270> lldb-server tests not updated to work on ios etc yet | ||||
def test_P_and_p_thread_suffix_work_debugserver(self): | def test_P_and_p_thread_suffix_work_debugserver(self): | ||||
self.init_debugserver_test() | self.init_debugserver_test() | ||||
self.build() | self.build() | ||||
self.set_inferior_startup_launch() | self.set_inferior_startup_launch() | ||||
self.P_and_p_thread_suffix_work() | self.P_and_p_thread_suffix_work() | ||||
@skipIfWindows | |||||
@llgs_test | @llgs_test | ||||
def test_P_and_p_thread_suffix_work_llgs(self): | def test_P_and_p_thread_suffix_work_llgs(self): | ||||
self.init_llgs_test() | self.init_llgs_test() | ||||
self.build() | self.build() | ||||
self.set_inferior_startup_launch() | self.set_inferior_startup_launch() | ||||
self.P_and_p_thread_suffix_work() | self.P_and_p_thread_suffix_work() |