|  | @@ 128-145 (lines=18) @@ | 
                                                            
                                    | 125 |  |  | 
                                                            
                                    | 126 |  | @mark.skipif(is_module_available('eventlet'), reason="evenlet can't deal with extra threads at process exit") | 
                                                            
                                    | 127 |  | def test_daemon_connection(): | 
                                                            
                                    | 128 |  |     with TestProcess(sys.executable, HELPER, 'test_daemon_connection') as proc: | 
                                                            
                                    | 129 |  |         with dump_on_error(proc.read): | 
                                                            
                                    | 130 |  |             wait_for_strings(proc.read, TIMEOUT, '/tmp/manhole-') | 
                                                            
                                    | 131 |  |             uds_path = re.findall(r"(/tmp/manhole-\d+)", proc.read())[0] | 
                                                            
                                    | 132 |  |             wait_for_strings(proc.read, TIMEOUT, 'Waiting for new connection') | 
                                                            
                                    | 133 |  |  | 
                                                            
                                    | 134 |  |             def terminate_and_read(client): | 
                                                            
                                    | 135 |  |                 proc.proc.send_signal(signal.SIGINT) | 
                                                            
                                    | 136 |  |                 wait_for_strings(proc.read, TIMEOUT, 'Died with KeyboardInterrupt', 'DIED.') | 
                                                            
                                    | 137 |  |                 for _ in range(5): | 
                                                            
                                    | 138 |  |                     client.sock.send(b'bogus()\n') | 
                                                            
                                    | 139 |  |                     time.sleep(0.05) | 
                                                            
                                    | 140 |  |                     print(repr(client.sock.recv(1024))) | 
                                                            
                                    | 141 |  |  | 
                                                            
                                    | 142 |  |             raises((socket.error, OSError), assert_manhole_running, proc, uds_path, extra=terminate_and_read) | 
                                                            
                                    | 143 |  |             wait_for_strings(proc.read, TIMEOUT, 'In atexit handler') | 
                                                            
                                    | 144 |  |  | 
                                                            
                                    | 145 |  |  | 
                                                            
                                    | 146 |  | @mark.skipif(is_module_available('eventlet'), reason="evenlet can't deal with extra threads at process exit") | 
                                                            
                                    | 147 |  | def test_non_daemon_connection(): | 
                                                            
                                    | 148 |  |     with TestProcess(sys.executable, HELPER, 'test_simple') as proc: | 
                                                                                
                                |  | @@ 108-125 (lines=18) @@ | 
                                                            
                                    | 105 |  |                         sock.send(b"print('FOOBAR')\n") | 
                                                            
                                    | 106 |  |                         wait_for_strings(proc.read, TIMEOUT, 'FOOBAR') | 
                                                            
                                    | 107 |  |  | 
                                                            
                                    | 108 |  |  | 
                                                            
                                    | 109 |  | def test_install_once(): | 
                                                            
                                    | 110 |  |     with TestProcess(sys.executable, HELPER, 'test_install_once') as proc: | 
                                                            
                                    | 111 |  |         with dump_on_error(proc.read): | 
                                                            
                                    | 112 |  |             wait_for_strings(proc.read, TIMEOUT, 'ALREADY_INSTALLED') | 
                                                            
                                    | 113 |  |  | 
                                                            
                                    | 114 |  |  | 
                                                            
                                    | 115 |  | def test_install_twice_not_strict(): | 
                                                            
                                    | 116 |  |     with TestProcess(sys.executable, HELPER, 'test_install_twice_not_strict') as proc: | 
                                                            
                                    | 117 |  |         with dump_on_error(proc.read): | 
                                                            
                                    | 118 |  |             wait_for_strings(proc.read, TIMEOUT, | 
                                                            
                                    | 119 |  |                              'Not patching os.fork and os.forkpty. Oneshot activation is done by signal') | 
                                                            
                                    | 120 |  |             wait_for_strings(proc.read, TIMEOUT, '/tmp/manhole-') | 
                                                            
                                    | 121 |  |             uds_path = re.findall(r"(/tmp/manhole-\d+)", proc.read())[0] | 
                                                            
                                    | 122 |  |             wait_for_strings(proc.read, TIMEOUT, 'Waiting for new connection') | 
                                                            
                                    | 123 |  |             assert_manhole_running(proc, uds_path) | 
                                                            
                                    | 124 |  |  | 
                                                            
                                    | 125 |  |  | 
                                                            
                                    | 126 |  | @mark.skipif(is_module_available('eventlet'), reason="evenlet can't deal with extra threads at process exit") | 
                                                            
                                    | 127 |  | def test_daemon_connection(): | 
                                                            
                                    | 128 |  |     with TestProcess(sys.executable, HELPER, 'test_daemon_connection') as proc: |