[Python-checkins] cpython: Issue #13964: Skip os.*utime*() tests if os.stat() doesn't support timestamp
victor.stinner
python-checkins at python.org
Wed Feb 8 04:09:13 CET 2012
http://hg.python.org/cpython/rev/58bd6a58365d
changeset: 74827:58bd6a58365d
user: Victor Stinner <victor.stinner at haypocalc.com>
date: Wed Feb 08 04:09:37 2012 +0100
summary:
Issue #13964: Skip os.*utime*() tests if os.stat() doesn't support timestamp
with a subsecond resolution
files:
Lib/test/test_os.py | 11 +++++++++++
Modules/posixmodule.c | 1 -
2 files changed, 11 insertions(+), 1 deletions(-)
diff --git a/Lib/test/test_os.py b/Lib/test/test_os.py
--- a/Lib/test/test_os.py
+++ b/Lib/test/test_os.py
@@ -27,6 +27,14 @@
except ImportError:
threading = None
+os.stat_float_times(True)
+st = os.stat(__file__)
+stat_supports_subsecond = (
+ # check if float and int timestamps are different
+ (st.st_atime != st[7])
+ or (st.st_mtime != st[8])
+ or (st.st_ctime != st[9]))
+
# Detect whether we're on a Linux system that uses the (now outdated
# and unmaintained) linuxthreads threading library. There's an issue
# when combining linuxthreads with a failed execv call: see
@@ -300,6 +308,8 @@
st2 = os.stat(support.TESTFN)
self.assertAlmostEqual(st1.st_mtime, st2.st_mtime, delta=10)
+ @unittest.skipUnless(stat_supports_subsecond,
+ "os.stat() doesn't has a subsecond resolution")
def _test_utime_subsecond(self, set_time_func):
asec, amsec = 1, 901
atime = asec + amsec * 1e-3
@@ -308,6 +318,7 @@
filename = self.fname
os.utime(filename, (0, 0))
set_time_func(filename, atime, mtime)
+ os.stat_float_times(True)
st = os.stat(filename)
self.assertAlmostEqual(st.st_atime, atime, places=3)
self.assertAlmostEqual(st.st_mtime, mtime, places=3)
diff --git a/Modules/posixmodule.c b/Modules/posixmodule.c
--- a/Modules/posixmodule.c
+++ b/Modules/posixmodule.c
@@ -3539,7 +3539,6 @@
mod = fmod(d, 1.0);
mod *= 1e9;
*nsec = (long)mod;
- printf("%g => (%u, %li)\n", d, *sec, *nsec);
return 0;
}
#if SIZEOF_TIME_T > SIZEOF_LONG
--
Repository URL: http://hg.python.org/cpython
More information about the Python-checkins
mailing list