summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorXavier de Gaye <xdegaye@users.sourceforge.net>2016-11-16 07:05:27 (GMT)
committerXavier de Gaye <xdegaye@users.sourceforge.net>2016-11-16 07:05:27 (GMT)
commit21060105d99a9153db44dd88eb750965392fd966 (patch)
treee78822c35c5981fc4b9d56fd823450ce50db745a
parentb445ad7b04438b0a8507117d216d756088ea1848 (diff)
downloadcpython-21060105d99a9153db44dd88eb750965392fd966.zip
cpython-21060105d99a9153db44dd88eb750965392fd966.tar.gz
cpython-21060105d99a9153db44dd88eb750965392fd966.tar.bz2
Issue #26935: Fix broken Android dup2() in test_os
-rw-r--r--Lib/test/test_os.py9
1 files changed, 7 insertions, 2 deletions
diff --git a/Lib/test/test_os.py b/Lib/test/test_os.py
index 628c61e..b3d0b1e 100644
--- a/Lib/test/test_os.py
+++ b/Lib/test/test_os.py
@@ -56,7 +56,7 @@ except ImportError:
try:
import pwd
all_users = [u.pw_uid for u in pwd.getpwall()]
-except ImportError:
+except (ImportError, AttributeError):
all_users = []
try:
from _testcapi import INT_MAX, PY_SSIZE_T_MAX
@@ -1423,7 +1423,12 @@ class URandomFDTests(unittest.TestCase):
break
os.closerange(3, 256)
with open({TESTFN!r}, 'rb') as f:
- os.dup2(f.fileno(), fd)
+ new_fd = f.fileno()
+ # Issue #26935: posix allows new_fd and fd to be equal but
+ # some libc implementations have dup2 return an error in this
+ # case.
+ if new_fd != fd:
+ os.dup2(new_fd, fd)
sys.stdout.buffer.write(os.urandom(4))
sys.stdout.buffer.write(os.urandom(4))
""".format(TESTFN=support.TESTFN)