diff options
Diffstat (limited to 'tests/fork_test.py')
| -rw-r--r-- | tests/fork_test.py | 56 |
1 files changed, 6 insertions, 50 deletions
diff --git a/tests/fork_test.py b/tests/fork_test.py index f15883f..e6a4fc1 100644 --- a/tests/fork_test.py +++ b/tests/fork_test.py @@ -1,52 +1,8 @@ -from tests.patcher_test import ProcessBase +import tests -class ForkTest(ProcessBase): - def test_simple(self): - newmod = ''' -import eventlet -import os -import sys -import signal -from eventlet.support import bytes_to_str, six -mydir = %r -signal_file = os.path.join(mydir, "output.txt") -pid = os.fork() -if (pid != 0): - eventlet.Timeout(10) - try: - port = None - while True: - try: - contents = open(signal_file, "rb").read() - port = int(contents.split()[0]) - break - except (IOError, IndexError, ValueError, TypeError): - eventlet.sleep(0.1) - eventlet.connect(('127.0.0.1', port)) - while True: - try: - contents = open(signal_file, "rb").read() - result = contents.split()[1] - break - except (IOError, IndexError): - eventlet.sleep(0.1) - print('result {0}'.format(bytes_to_str(result))) - finally: - os.kill(pid, signal.SIGTERM) -else: - try: - s = eventlet.listen(('', 0)) - fd = open(signal_file, "wb") - fd.write(six.b(str(s.getsockname()[1]))) - fd.write(b"\\n") - fd.flush() - s.accept() - fd.write(b"done") - fd.flush() - finally: - fd.close() -''' - self.write_to_tempfile("newmod", newmod % self.tempdir) - output, lines = self.launch_subprocess('newmod.py') - self.assertEqual(lines[0], "result done", output) +def test_fork_simple(): + output = tests.run_python('tests/fork_test_simple.py', new_tmp=True) + lines = output.splitlines() + assert len(lines) == 1, output + assert lines[0] == 'result done', output |
