From dd21f68963c2b17324b6018dbbf1b32b6e88f2c2 Mon Sep 17 00:00:00 2001
From: Antoine Pitrou <solipsis@pitrou.net>
Date: Wed, 25 Jan 2012 03:00:57 +0100
Subject: [PATCH] Port remaining test fixes, and fix test_importlib too.

---
 Lib/importlib/test/source/test_file_loader.py | 10 +++++++++-
 Lib/test/test_import.py                       |  5 +++++
 2 files changed, 14 insertions(+), 1 deletion(-)

diff --git a/Lib/importlib/test/source/test_file_loader.py b/Lib/importlib/test/source/test_file_loader.py
index 89990be9da..912e6c3b51 100644
--- a/Lib/importlib/test/source/test_file_loader.py
+++ b/Lib/importlib/test/source/test_file_loader.py
@@ -4,6 +4,7 @@ from .. import abc
 from .. import util
 from . import util as source_util
 
+import errno
 import imp
 import marshal
 import os
@@ -136,7 +137,14 @@ class SimpleTest(unittest.TestCase):
             compiled = imp.cache_from_source(source)
             with open(source, 'w') as f:
                 f.write("x = 5")
-            os.utime(source, (2 ** 33, 2 ** 33))
+            try:
+                os.utime(source, (2 ** 33, 2 ** 33))
+            except OverflowError:
+                self.skipTest("cannot set modification time to large integer")
+            except OSError as e:
+                if e.errno != getattr(errno, 'EOVERFLOW', None):
+                    raise
+                self.skipTest("cannot set modification time to large integer ({})".format(e))
             loader = _bootstrap._SourceFileLoader('_temp', mapping['_temp'])
             mod = loader.load_module('_temp')
             # Sanity checks.
diff --git a/Lib/test/test_import.py b/Lib/test/test_import.py
index 95b90b8b30..311063505e 100644
--- a/Lib/test/test_import.py
+++ b/Lib/test/test_import.py
@@ -11,6 +11,7 @@ import stat
 import sys
 import unittest
 import textwrap
+import errno
 
 from test.support import (
     EnvironmentVarGuard, TESTFN, check_warnings, forget, is_jython,
@@ -323,6 +324,10 @@ class ImportTests(unittest.TestCase):
                 os.utime(source, (2 ** 33, 2 ** 33))
             except OverflowError:
                 self.skipTest("cannot set modification time to large integer")
+            except OSError as e:
+                if e.errno != getattr(errno, 'EOVERFLOW', None):
+                    raise
+                self.skipTest("cannot set modification time to large integer ({})".format(e))
             __import__(TESTFN)
             # The pyc file was created.
             os.stat(compiled)
-- 
2.40.0