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