MCPcopy Create free account
hub / github.com/fabioz/PyDev.Debugger / test_replace_process

Function test_replace_process

tests_python/test_debugger_json.py:6687–6750  ·  view source on GitHub ↗
(case_setup_multiprocessing_dap)

Source from the content-addressed store, hash-verified

6685
6686@pytest.mark.skipif(sys.platform == "win32", reason="Windows does not have execvp.")
6687def test_replace_process(case_setup_multiprocessing_dap):
6688 import threading
6689 from tests_python.debugger_unittest import AbstractWriterThread
6690 from _pydevd_bundle._debug_adapter.pydevd_schema import ExitedEvent
6691
6692 with case_setup_multiprocessing_dap.test_file(
6693 "_debugger_case_replace_process.py",
6694 ) as writer:
6695 json_facade = JsonFacade(writer)
6696 json_facade.write_launch()
6697
6698 break1_line = writer.get_line_index_with_content("print('In sub')")
6699 json_facade.write_set_breakpoints([break1_line])
6700
6701 server_socket = writer.server_socket
6702 secondary_finished_ok = [False]
6703
6704 class SecondaryProcessWriterThread(AbstractWriterThread):
6705 TEST_FILE = writer.get_main_filename()
6706 _sequence = -1
6707
6708 class SecondaryProcessThreadCommunication(threading.Thread):
6709
6710 def run(self):
6711 from tests_python.debugger_unittest import ReaderThread
6712
6713 server_socket.listen(1)
6714 self.server_socket = server_socket
6715 new_sock, addr = server_socket.accept()
6716
6717 reader_thread = ReaderThread(new_sock)
6718 reader_thread.name = " *** Multiprocess Reader Thread"
6719 reader_thread.start()
6720
6721 writer2 = SecondaryProcessWriterThread()
6722 writer2.reader_thread = reader_thread
6723 writer2.sock = new_sock
6724 json_facade2 = JsonFacade(writer2)
6725
6726 json_facade2.write_set_breakpoints(
6727 [
6728 break1_line,
6729 ]
6730 )
6731 json_facade2.write_make_initial_run()
6732
6733 json_facade2.wait_for_thread_stopped()
6734 json_facade2.write_continue()
6735 secondary_finished_ok[0] = True
6736
6737 secondary_process_thread_communication = SecondaryProcessThreadCommunication()
6738 secondary_process_thread_communication.start()
6739 time.sleep(0.1)
6740
6741 json_facade.write_make_initial_run()
6742 exited_event = json_facade.wait_for_json_message(ExitedEvent)
6743 assert exited_event.body.kwargs["pydevdReason"] == "processReplaced"
6744

Callers

nothing calls this directly

Calls 11

write_launchMethod · 0.95
write_set_breakpointsMethod · 0.95
wait_for_json_messageMethod · 0.95
JsonFacadeClass · 0.85
test_fileMethod · 0.80
startMethod · 0.45
joinMethod · 0.45
is_aliveMethod · 0.45

Tested by

no test coverage detected