(case_setup_multiprocessing_dap, tmpdir)
| 6914 | |
| 6915 | |
| 6916 | def test_logging_api(case_setup_multiprocessing_dap, tmpdir): |
| 6917 | import threading |
| 6918 | from tests_python.debugger_unittest import AbstractWriterThread |
| 6919 | |
| 6920 | log_file = str(tmpdir.join("pydevd_in_test_logging.log")) |
| 6921 | |
| 6922 | def get_environ(self): |
| 6923 | env = os.environ.copy() |
| 6924 | env["TARGET_LOG_FILE"] = log_file |
| 6925 | return env |
| 6926 | |
| 6927 | with case_setup_multiprocessing_dap.test_file("_debugger_case_logging.py", get_environ=get_environ) as writer: |
| 6928 | json_facade = JsonFacade(writer) |
| 6929 | json_facade.write_launch() |
| 6930 | |
| 6931 | break1_line = writer.get_line_index_with_content("break on 2nd process") |
| 6932 | json_facade.write_set_breakpoints([break1_line]) |
| 6933 | |
| 6934 | server_socket = writer.server_socket |
| 6935 | secondary_finished_ok = [False] |
| 6936 | |
| 6937 | class SecondaryProcessWriterThread(AbstractWriterThread): |
| 6938 | TEST_FILE = writer.get_main_filename() |
| 6939 | _sequence = -1 |
| 6940 | |
| 6941 | class SecondaryProcessThreadCommunication(threading.Thread): |
| 6942 | |
| 6943 | def run(self): |
| 6944 | from tests_python.debugger_unittest import ReaderThread |
| 6945 | |
| 6946 | server_socket.listen(1) |
| 6947 | self.server_socket = server_socket |
| 6948 | new_sock, addr = server_socket.accept() |
| 6949 | |
| 6950 | reader_thread = ReaderThread(new_sock) |
| 6951 | reader_thread.name = " *** Multiprocess Reader Thread" |
| 6952 | reader_thread.start() |
| 6953 | |
| 6954 | writer2 = SecondaryProcessWriterThread() |
| 6955 | writer2.reader_thread = reader_thread |
| 6956 | writer2.sock = new_sock |
| 6957 | json_facade2 = JsonFacade(writer2) |
| 6958 | |
| 6959 | json_facade2.write_set_breakpoints( |
| 6960 | [ |
| 6961 | break1_line, |
| 6962 | ] |
| 6963 | ) |
| 6964 | json_facade2.write_make_initial_run() |
| 6965 | |
| 6966 | json_facade2.wait_for_thread_stopped() |
| 6967 | json_facade2.write_continue() |
| 6968 | secondary_finished_ok[0] = True |
| 6969 | |
| 6970 | secondary_process_thread_communication = SecondaryProcessThreadCommunication() |
| 6971 | secondary_process_thread_communication.start() |
| 6972 | time.sleep(0.1) |
| 6973 |
nothing calls this directly
no test coverage detected