PEP 410
diff --git a/Lib/test/test_os.py b/Lib/test/test_os.py
index 4d27c2b..379dc58e 100644
--- a/Lib/test/test_os.py
+++ b/Lib/test/test_os.py
@@ -2,6 +2,7 @@
 # does add tests for a few functions which have been determined to be more
 # portable than they had been thought to be.
 
+import decimal
 import os
 import errno
 import unittest
@@ -238,6 +239,36 @@
             warnings.simplefilter("ignore", DeprecationWarning)
             self.check_stat_attributes(fname)
 
+    def test_stat_timestamp(self):
+        # test deprecation
+        with warnings.catch_warnings():
+            warnings.simplefilter("error", DeprecationWarning)
+            self.assertRaises(DeprecationWarning, os.stat_float_times, False)
+
+        with warnings.catch_warnings():
+            warnings.simplefilter("ignore", DeprecationWarning)
+            old_value = os.stat_float_times()
+            try:
+                # test invalid timestamp types
+                self.assertRaises(ValueError, os.stat, self.fname,
+                                  timestamp="abc")
+                self.assertRaises(ValueError, os.stat, self.fname,
+                                  timestamp=decimal.Context)
+
+                for float_times in (False, True):
+                    os.stat_float_times(float_times)
+                    t = os.stat(self.fname).st_mtime
+                    if float_times:
+                        self.assertIsInstance(t, float)
+                    else:
+                        self.assertIsInstance(t, int)
+
+                    for type in (int, float, decimal.Decimal):
+                        t = os.stat(self.fname, timestamp=type).st_mtime
+                        self.assertIsInstance(t, type)
+            finally:
+                os.stat_float_times(old_value)
+
     def test_statvfs_attributes(self):
         if not hasattr(os, "statvfs"):
             return
diff --git a/Lib/test/test_time.py b/Lib/test/test_time.py
index a89c511..52904fa 100644
--- a/Lib/test/test_time.py
+++ b/Lib/test/test_time.py
@@ -1,10 +1,10 @@
+import locale
+import platform
+import sys
+import sysconfig
 from test import support
 import time
 import unittest
-import locale
-import sysconfig
-import sys
-import platform
 
 # Max year is only limited by the size of C int.
 SIZEOF_INT = sysconfig.get_config_var('SIZEOF_INT') or 4
@@ -345,6 +345,31 @@
         self.assertGreater(t2, t1)
         self.assertAlmostEqual(dt, 0.1, delta=0.2)
 
+    def test_timestamp(self):
+        import decimal
+        calls = [
+            (time.time,),
+            (time.mktime, time.localtime()),
+        ]
+        if hasattr(time, 'monotonic'):
+            calls.append((time.monotonic,))
+        if hasattr(time, 'wallclock'):
+            calls.append((time.wallclock,))
+        if hasattr(time, 'CLOCK_REALTIME'):
+            if hasattr(time, 'clock_gettime'):
+                calls.append((time.clock_gettime, time.CLOCK_REALTIME))
+            if hasattr(time, 'clock_getres'):
+                calls.append((time.clock_getres, time.CLOCK_REALTIME))
+        for call in calls:
+            func, *args = call
+
+            # test invalid timestamp
+            for invalid in ("int", decimal.Context):
+                self.assertRaises(ValueError, func, *args, timestamp=invalid)
+
+            for type in (int, float, decimal.Decimal):
+                self.assertIsInstance(func(*args, timestamp=type), type)
+
     def test_wallclock(self):
         t1 = time.wallclock()
         t2 = time.wallclock()