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

Function test_subprocess_then_fork

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

Source from the content-addressed store, hash-verified

5347
5348
5349def test_subprocess_then_fork(case_setup_multiprocessing_dap):
5350 import threading
5351 from tests_python.debugger_unittest import AbstractWriterThread
5352
5353 with case_setup_multiprocessing_dap.test_file("_debugger_case_subprocess_and_fork.py") as writer:
5354 json_facade = JsonFacade(writer)
5355 json_facade.write_launch(justMyCode=False)
5356
5357 break_line = writer.get_line_index_with_content("break here")
5358 json_facade.write_set_breakpoints([break_line])
5359
5360 server_socket = writer.server_socket
5361
5362 class SecondaryProcessWriterThread(AbstractWriterThread):
5363 TEST_FILE = writer.get_main_filename()
5364 _sequence = -1
5365
5366 class SecondaryProcessThreadCommunication(threading.Thread):
5367
5368 def run(self):
5369 from tests_python.debugger_unittest import ReaderThread
5370
5371 # Note that we accept 2 connections and then we proceed to receive the breakpoints.
5372 json_facades = []
5373 for i in range(2):
5374 server_socket.listen(1)
5375 self.server_socket = server_socket
5376 writer.log.append(" *** Multiprocess %s waiting on server_socket.accept()" % (i,))
5377 new_sock, addr = server_socket.accept()
5378 writer.log.append(" *** Multiprocess %s completed server_socket.accept()" % (i,))
5379
5380 reader_thread = ReaderThread(new_sock)
5381 reader_thread.name = " *** Multiprocess %s Reader Thread" % i
5382 reader_thread.start()
5383 writer.log.append(" *** Multiprocess %s started ReaderThread" % (i,))
5384
5385 writer2 = SecondaryProcessWriterThread()
5386 writer2._WRITE_LOG_PREFIX = " *** Multiprocess %s write: " % i
5387 writer2.reader_thread = reader_thread
5388 writer2.sock = new_sock
5389 json_facade2 = JsonFacade(writer2)
5390 json_facade2.writer.write_multi_threads_single_notification(True)
5391 writer.log.append(" *** Multiprocess %s write attachThread" % (i,))
5392 json_facade2.write_attach(justMyCode=False)
5393
5394 writer.log.append(" *** Multiprocess %s write set breakpoints" % (i,))
5395 json_facade2.write_set_breakpoints([break_line])
5396 writer.log.append(" *** Multiprocess %s write make initial run" % (i,))
5397 json_facade2.write_make_initial_run()
5398 json_facades.append(json_facade2)
5399
5400 for i, json_facade3 in enumerate(json_facades):
5401 writer.log.append(" *** Multiprocess %s wait for thread stopped" % (i,))
5402 json_facade3.wait_for_thread_stopped(line=break_line)
5403 writer.log.append(" *** Multiprocess %s continue" % (i,))
5404 json_facade3.write_continue()
5405
5406 secondary_process_thread_communication = SecondaryProcessThreadCommunication()

Callers

nothing calls this directly

Calls 12

write_launchMethod · 0.95
write_set_breakpointsMethod · 0.95
write_continueMethod · 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