From aa1e1a2755ea822ac32dc807423ada58d761686d Mon Sep 17 00:00:00 2001 From: Ned Deily Date: Mon, 11 Feb 2013 22:10:59 -0800 Subject: Issue #17111: Prevent test_surrogates (test_fileio) failure on OS X 10.4. An odd bug in OS X 10.4 causes open(2) on a non-existent, invalid-encoded filename to return errno 22, EINVAL: Invalid argument, instead of the expected errno 2, ENOENT: No such file or directory, *if* the containing directory is not empty. That caused frequent failures when running the buildbot tests on 10.4 depending on the state of the test working directory. The failure is easy to reproduce on 10.4 by running the test directly (not with regrtest), first in an empty directory, then after adding a file to it. The fix is to check for and pass if either errno is returned. --- Lib/test/test_fileio.py | 5 +++-- Misc/NEWS | 2 ++ 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/Lib/test/test_fileio.py b/Lib/test/test_fileio.py index fb83255..b74cec2 100644 --- a/Lib/test/test_fileio.py +++ b/Lib/test/test_fileio.py @@ -450,8 +450,9 @@ class OtherFileTests(unittest.TestCase): env = dict(os.environ) env[b'LC_CTYPE'] = b'C' _, out = run_python('-c', 'import _io; _io.FileIO(%r)' % filename, env=env) - if ('UnicodeEncodeError' not in out and - 'IOError: [Errno 2] No such file or directory' not in out): + if ('UnicodeEncodeError' not in out and not + ( ('IOError: [Errno 2] No such file or directory' in out) or + ('IOError: [Errno 22] Invalid argument' in out) ) ): self.fail('Bad output: %r' % out) def testUnclosedFDOnException(self): diff --git a/Misc/NEWS b/Misc/NEWS index a65c091..7acb91f 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -818,6 +818,8 @@ Tests - Issue #16698: Skip posix test_getgroups when built with OS X deployment target prior to 10.6. +- Issue #17111: Prevent test_surrogates (test_fileio) failure on OS X 10.4. + Build ----- -- cgit v0.12