[Pytest-commit] commit/py: hpk42: ForkedFunc now opens unbuffered stdout/stderr FDs
commits-noreply at bitbucket.org
commits-noreply at bitbucket.org
Wed Mar 26 18:33:40 CET 2014
1 new commit in py:
https://bitbucket.org/hpk42/py/commits/f7c2b8011d27/
Changeset: f7c2b8011d27
User: hpk42
Date: 2014-03-26 18:29:53
Summary: ForkedFunc now opens unbuffered stdout/stderr FDs
(helps to see output/err from a dying process)
Affected #: 5 files
diff -r 978558572564d033591cc73c3426ee1b68fa62ca -r f7c2b8011d273c2f69872b662c6b5765356827a5 CHANGELOG
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,3 +1,9 @@
+1.4.X
+==================================================
+
+- ForkedFunc now opens unbuffered stdout/stderr FDs
+ (helps to see output/err from a dying process)
+
1.4.20
==================================================
diff -r 978558572564d033591cc73c3426ee1b68fa62ca -r f7c2b8011d273c2f69872b662c6b5765356827a5 py/__init__.py
--- a/py/__init__.py
+++ b/py/__init__.py
@@ -8,7 +8,7 @@
(c) Holger Krekel and others, 2004-2013
"""
-__version__ = '1.4.20'
+__version__ = '1.4.21.dev1'
from py import _apipkg
diff -r 978558572564d033591cc73c3426ee1b68fa62ca -r f7c2b8011d273c2f69872b662c6b5765356827a5 py/_process/forkedfunc.py
--- a/py/_process/forkedfunc.py
+++ b/py/_process/forkedfunc.py
@@ -36,13 +36,11 @@
def _child(self, nice_level):
# right now we need to call a function, but first we need to
# map all IO that might happen
- # make sure sys.stdout points to file descriptor one
- sys.stdout = stdout = self.STDOUT.open('w')
- sys.stdout.flush()
+ sys.stdout = stdout = open(str(self.STDOUT), "w", 0)
fdstdout = stdout.fileno()
if fdstdout != 1:
os.dup2(fdstdout, 1)
- sys.stderr = stderr = self.STDERR.open('w')
+ sys.stderr = stderr = open(str(self.STDERR), "w", 0)
fdstderr = stderr.fileno()
if fdstderr != 2:
os.dup2(fdstderr, 2)
diff -r 978558572564d033591cc73c3426ee1b68fa62ca -r f7c2b8011d273c2f69872b662c6b5765356827a5 setup.py
--- a/setup.py
+++ b/setup.py
@@ -7,7 +7,7 @@
name='py',
description='library with cross-python path, ini-parsing, io, code, log facilities',
long_description = open('README.txt').read(),
- version='1.4.20',
+ version='1.4.21.dev1',
url='http://pylib.readthedocs.org/',
license='MIT license',
platforms=['unix', 'linux', 'osx', 'cygwin', 'win32'],
diff -r 978558572564d033591cc73c3426ee1b68fa62ca -r f7c2b8011d273c2f69872b662c6b5765356827a5 testing/process/test_forkedfunc.py
--- a/testing/process/test_forkedfunc.py
+++ b/testing/process/test_forkedfunc.py
@@ -50,6 +50,12 @@
assert result.signal == 0
assert result.retval == 2
+def test_forkedfunc_on_fds_output():
+ result = py.process.ForkedFunc(boxf3).waitfinish()
+ assert result.signal == 11
+ assert result.out == "s"
+
+
def test_forkedfunc_signal():
result = py.process.ForkedFunc(boxseg).waitfinish()
assert result.retval is None
@@ -120,6 +126,10 @@
os.write(2, "someerr".encode('ascii'))
return 2
+def boxf3():
+ os.write(1, "s".encode('ascii'))
+ os.kill(os.getpid(), 11)
+
def boxseg():
os.kill(os.getpid(), 11)
Repository URL: https://bitbucket.org/hpk42/py/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
More information about the pytest-commit
mailing list