diff -r b74897b69184 Lib/test/test_os.py --- a/Lib/test/test_os.py Wed Nov 02 20:33:07 2016 -0400 +++ b/Lib/test/test_os.py Thu Nov 03 11:35:35 2016 +0100 @@ -55,7 +55,8 @@ groups = [] try: import pwd - all_users = [u.pw_uid for u in pwd.getpwall()] + all_users = ([u.pw_uid for u in pwd.getpwall()] if + hasattr(pwd, 'getpwall') else []) except ImportError: all_users = [] try: @@ -1423,7 +1424,12 @@ 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)