Commit Graph

193 Commits

Author SHA1 Message Date
Steve Dower dcaf4ccf3f Issue #24917: Backed out changeset 09b62202d9b7 2015-09-05 23:11:53 -07:00
Steve Dower 74a7b8f027 Issue #24917: time_strftime() Buffer Over-read. Patch by John Leitch. 2015-09-05 21:00:33 -07:00
Steve Dower 373602fa3f Issue #24917: time_strftime() Buffer Over-read. Patch by John Leitch. 2015-09-05 12:16:06 -07:00
Victor Stinner adfefa527a Issue #23517: Fix implementation of the ROUND_HALF_UP rounding mode in
datetime.datetime.fromtimestamp() and datetime.datetime.utcfromtimestamp().
microseconds sign should be kept before rounding.
2015-09-04 23:57:25 +02:00
Victor Stinner 110f9e3538 test_time: add tests on HALF_UP rounding mode for _PyTime_ObjectToTime_t() and
_PyTime_ObjectToTimespec()
2015-09-04 10:31:16 +02:00
Victor Stinner 8aad8d6ad3 Issue #23517: test_time, skip a test checking a corner case on floating point
rounding
2015-09-02 13:54:28 +02:00
Victor Stinner ead144c19b test_time: add more tests on HALF_UP rounding mode 2015-09-02 11:05:32 +02:00
Victor Stinner acea9f6208 Issue #23517: Reintroduce unit tests for the old PyTime API since it's still
used.
2015-09-02 10:39:40 +02:00
Victor Stinner 744742320f Issue #23517: Add "half up" rounding mode to the _PyTime API 2015-09-02 01:43:56 +02:00
Steve Dower 7aec764d73 Closes #24244: Removes invalid test from test_time 2015-06-23 20:48:32 -07:00
Victor Stinner 13019fdef3 Issue #22117: Add a new _PyTime_FromSeconds() function
Fix also _Py_InitializeEx_Private(): initialize time before initializing
import, import_init() uses the _PyTime API (for thread locks).
2015-04-03 13:10:54 +02:00
Victor Stinner 62d1c70eff Issue #22117, issue #23485: Fix _PyTime_AsMilliseconds() and
_PyTime_AsMicroseconds() rounding.

Add also unit tests.
2015-04-01 17:47:07 +02:00
Victor Stinner a695f83f0d Issue #22117: Remove _PyTime_ROUND_DOWN and _PyTime_ROUND_UP rounding methods
Use _PyTime_ROUND_FLOOR and _PyTime_ROUND_CEILING instead.
2015-03-30 03:57:14 +02:00
Victor Stinner bcdd777d3c Issue #22117: Add _PyTime_ROUND_CEILING rounding method for timestamps
Add also more tests for ROUNd_FLOOR.
2015-03-30 03:52:49 +02:00
Victor Stinner f81f0f9c63 Issue #22117: Fix rounding and implement _PyTime_ROUND_FLOOR in:
- _PyTime_ObjectToTime_t()
- _PyTime_ObjectToTimespec()
- _PyTime_ObjectToTimeval()
2015-03-30 00:44:06 +02:00
Victor Stinner 02937aab13 Issue #22117: Add the new _PyTime_ROUND_FLOOR rounding method for the datetime
module. time.clock_settime() now uses this rounding method instead of
_PyTime_ROUND_DOWN to handle correctly dates before 1970.
2015-03-28 05:02:39 +01:00
Victor Stinner 95e9cef6f0 Issue #22117: Write unit tests for _PyTime_AsTimeval()
* _PyTime_AsTimeval() now ensures that tv_usec is always positive
* _PyTime_AsTimespec() now ensures that tv_nsec is always positive
* _PyTime_AsTimeval() now returns an integer on overflow instead of raising an
  exception
2015-03-28 01:26:47 +01:00
Victor Stinner 34dc0f46ae Issue #22117: The signal modules uses the new _PyTime_t API
* Add _PyTime_AsTimespec()
* Add unit tests for _PyTime_AsTimespec()
2015-03-27 18:19:03 +01:00
Victor Stinner 4bfb460d88 Issue #22117: time.monotonic() now uses the new _PyTime_t API
* Add _PyTime_FromNanoseconds()
* Add _PyTime_AsSecondsDouble()
* Add unit tests for _PyTime_AsSecondsDouble()
2015-03-27 22:27:24 +01:00
Victor Stinner 992c43fec9 Issue #22117: Fix rounding in _PyTime_FromSecondsObject()
* Rename _PyTime_FromObject() to _PyTime_FromSecondsObject()
* Add _PyTime_AsNanosecondsObject() and _testcapi.pytime_fromsecondsobject()
* Add unit tests
2015-03-27 17:12:45 +01:00
Victor Stinner 8c8b4e0ebf Issue #11188, #19748: mktime() returns -1 on error. On Linux, the tm_wday field
is used as a sentinel () to detect if -1 is really an error or a valid
timestamp. On AIX, tm_wday is unchanged even on success and so cannot be used
as a sentinel.
2014-02-21 23:54:32 +01:00
Victor Stinner 1ac42614e3 Issue #19748: On AIX, time.mktime() now raises an OverflowError for year
outsize range [1902; 2037].
2014-02-21 09:27:17 +01:00
Victor Stinner 3c1b379ebd Issue #20320: select.select() and select.kqueue.control() now round the timeout
aways from zero, instead of rounding towards zero.

It should make test_asyncio more reliable, especially test_timeout_rounding() test.
2014-02-17 00:02:43 +01:00
Serhiy Storchaka f28ba369dd Issue #20532: Tests which use _testcapi now are marked as CPython only. 2014-02-07 10:10:55 +02:00
Serhiy Storchaka 5cfc79deae Issue #20532: Tests which use _testcapi now are marked as CPython only. 2014-02-07 10:06:39 +02:00
Zachary Ware 393a94243f Issue #20101: Merge with 3.3 2014-01-02 09:43:09 -06:00
Zachary Ware 487aedb77c Issue #20101: Allow test_monotonic to pass on Windows machines on which
time.get_clock_info('monotonic').resolution == 0.015600099999999999

This is just a workaround pending a real resolution to #20101.
2014-01-02 09:41:10 -06:00
Victor Stinner a4275b276c (Merge 3.3) Close #19999: tolerate coarse time when testing time.monotonic() on
very busy/slow buildbot
2013-12-16 22:38:46 +01:00
Victor Stinner 170078804c Close #19999: tolerate coarse time when testing time.monotonic() on very
busy/slow buildbot
2013-12-16 22:36:50 +01:00
Zachary Ware 101d9e7250 Issue 19572: More silently skipped tests explicitly skipped. 2013-12-08 00:44:27 -06:00
Zachary Ware 9fe6d86709 Issue 19572: More silently skipped tests explicitly skipped. 2013-12-08 00:20:35 -06:00
Serhiy Storchaka b5d386314f Issue #19545: Avoid chained exceptions while passing stray % to
time.strptime().  Initial patch by Claudiu Popa.
2013-11-24 18:17:11 +02:00
Serhiy Storchaka cdac302af3 Issue #19545: Avoid chained exceptions while passing stray % to
time.strptime().  Initial patch by Claudiu Popa.
2013-11-24 18:15:37 +02:00
Victor Stinner 6c86181cd1 Issue #19715: Ensure that consecutive calls to monotonic() are monotonic 2013-11-23 00:15:27 +01:00
Victor Stinner a9c99a6119 test_time.test_monotonic(): use a longer sleep to try to make the test more reliable 2013-07-03 23:07:37 +02:00
Ezio Melotti 3836d70ed5 #17690: test_time now works with unittest test discovery. Patch by Zachary Ware. 2013-04-11 20:29:42 +03:00
Ezio Melotti 0f38908684 #17572: Avoid chained exceptions while passing bad directives to time.strptime(). Initial patch by Claudiu Popa. 2013-04-04 02:09:20 +03:00
Andrew Svetlov 5b89840d9c Issue #16714: use 'raise' exceptions, don't 'throw'.
Patch by Serhiy Storchaka.
2012-12-18 21:26:36 +02:00
Andrew Svetlov 737fb89dd1 Issue #16714: use 'raise' exceptions, don't 'throw'.
Patch by Serhiy Storchaka.
2012-12-18 21:14:22 +02:00
Alexander Belopolsky c142bba2a7 Issue #1667546: On platforms supporting tm_zone and tm_gmtoff fields
in struct tm, time.struct_time objects returned by time.gmtime(),
time.localtime() and time.strptime() functions now have tm_zone and
tm_gmtoff attributes.  Original patch by Paul Boddie.
2012-06-13 22:15:26 -04:00
Victor Stinner 6222d76952 Fix test_time for adjusted/adjustable changes 2012-06-12 23:04:11 +02:00
Victor Stinner 2b89fdf7eb PEP 418: Rename adjusted attribute to adjustable in time.get_clock_info() result
Fix also its value on Windows and Linux according to its documentation:
"adjustable" indicates if the clock *can be* adjusted, not if it is or was
adjusted.

In most cases, it is not possible to indicate if a clock is or was adjusted.
2012-06-12 22:46:37 +02:00
Victor Stinner 0dec1bfef9 Fix sporadic failure of test_time.test_process_time() on Windows
Use a threshold of 20 ms instead of 10 ms.
2012-06-01 22:45:23 +02:00
Benjamin Peterson 1c5ae55c85 don't use assertEqual for test for bool equality 2012-05-01 11:14:32 -04:00
Benjamin Peterson 49a69e4d48 strip is_ prefixes on clock_info fields 2012-05-01 09:38:34 -04:00
Victor Stinner 9a8ad0c5ea Issue #14428: Remove test_process_time_threads() from test_time
The test is unstable and it's not really interesting to test exactly how
threads are handled.
2012-04-30 01:39:57 +02:00
Victor Stinner 5df72c2c27 Issue #14428: Make test_process_time_threads() less strict 2012-04-30 00:51:31 +02:00
Victor Stinner 1fc3ec91cc Issue #14428: Rewrite test_process_time_threads() test
time.process_time() is CPU time, not a number of seconds.
2012-04-29 19:46:19 +02:00
Victor Stinner ec89539ccc Issue #14428, #14397: Implement the PEP 418
* Rename time.steady() to time.monotonic()
 * On Windows, time.monotonic() uses GetTickCount/GetTickCount64() instead of
   QueryPerformanceCounter()
 * time.monotonic() uses CLOCK_HIGHRES if available
 * Add time.get_clock_info(), time.perf_counter() and time.process_time()
   functions
2012-04-29 02:41:27 +02:00
Victor Stinner 30d79471bb Expose clock_settime() as time.clock_settime() 2012-04-03 00:45:07 +02:00
Victor Stinner 071eca3f5c Issue #10278: Add an optional strict argument to time.steady(), False by default 2012-03-15 01:17:09 +01:00
Victor Stinner ec919cc74d Issue #10278: Drop time.monotonic() function, rename time.wallclock() to time.steady()
* On Mac OS X, time.steady() now uses mach_absolute_time(), a monotonic clock
 * Optimistic change: bet that CLOCK_MONOTONIC and CLOCK_REALTIME are available
   when clock_gettime() is available
 * Rewrite time.steady() documentation
2012-03-15 00:58:32 +01:00
Victor Stinner 5d272cc6a2 Close #14180: Factorize code to convert a number of seconds to time_t, timeval or timespec
time.ctime(), gmtime(), time.localtime(), datetime.date.fromtimestamp(),
datetime.datetime.fromtimestamp() and datetime.datetime.utcfromtimestamp() now
raises an OverflowError, instead of a ValueError, if the timestamp does not fit
in time_t.

datetime.datetime.fromtimestamp() and datetime.datetime.utcfromtimestamp() now
round microseconds towards zero instead of rounding to nearest with ties going
away from zero.
2012-03-13 13:35:55 +01:00
Victor Stinner 643cd68ea4 Issue #13964: signal.sigtimedwait() timeout is now a float instead of a tuple
Add a private API to convert an int or float to a C timespec structure.
2012-03-02 22:54:03 +01:00
Victor Stinner 4195b5caea Backout f8409b3d6449: the PEP 410 is not accepted yet 2012-02-08 23:03:19 +01:00
Victor Stinner ccd5715a14 PEP 410 2012-02-08 14:31:50 +01:00
Victor Stinner 8b30201f7d Issue #13846: Add time.monotonic(), monotonic clock. 2012-02-07 23:29:46 +01:00
Victor Stinner 2d6251c7f7 Issue #13847: Fix test_time, time.gmtime() doesn't use localtime()
On Windows, localtime(-1) fails, but not gmtime(1).
2012-01-30 00:23:32 +01:00
Victor Stinner 53d3645f95 Issue #13847: Make test_localtime_failure() more robust
Skip the test if we are unable to find an invalid time_t value.
2012-01-27 01:03:25 +01:00
Victor Stinner 2cbae98ea4 Issue #13847: Fix test_mktime(), time.localtime() now raises OSError 2012-01-27 00:50:33 +01:00
Victor Stinner c1b5d34ede Issue #13847: time.localtime() and time.gmtime() now raise an OSError instead
of ValueError on failure. time.ctime() and time.asctime() now raises an
OSError if localtime() failed.
2012-01-27 00:08:48 +01:00
Victor Stinner 4ccc727793 Issue #10278: wallclock() cannot go backward, but two consecutive calls
may return the same time.
2012-01-23 23:48:41 +01:00
Victor Stinner 2dd254d17a Issue #10278: Be more explicit in tests than wallclock() is monotonic (cannot
go backward)
2012-01-20 02:24:18 +01:00
Antoine Pitrou 391166fbfc Be more lenient in test_wallclock (issue #10278). 2012-01-18 22:35:21 +01:00
Victor Stinner b94b266cfc Close #10278: Add time.wallclock() function, monotonic clock. 2012-01-18 01:50:21 +01:00
Victor Stinner 10a6ddb062 Issue #11886: Fix also test_time for the non-DST timezone name (EST/AEST) 2011-12-10 14:37:53 +01:00
Victor Stinner bc9f0c68f5 (Merge 3.2) Issue #11886: workaround an OS bug (time zone data) in test_time
Australian Eastern Standard Time (UTC+10) is called "EST" (as Eastern Standard
Time, UTC-5) instead of "AEST" on some operating systems (e.g. FreeBSD), which
is wrong. See for example this bug:
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=93810
2011-12-08 00:33:14 +01:00
Victor Stinner 0cd479074d Issue #11886: workaround an OS bug (time zone data) in test_time
Australian Eastern Standard Time (UTC+10) is called "EST" (as Eastern Standard
Time, UTC-5) instead of "AEST" on some operating systems (e.g. FreeBSD), which
is wrong. See for example this bug:
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=93810
2011-12-08 00:32:51 +01:00
Florent Xicluna e54371e24c Use unittest.skipUnless to skip the test related to the glibc bug, issue #13309. 2011-11-11 18:59:30 +01:00
Antoine Pitrou b0a1d628b8 Avoid a glibc bug in test_time (issue #13309) 2011-11-11 03:04:35 +01:00
Florent Xicluna 2fbc185209 Issue #13312: skip the failing negative years for now. 2011-11-02 08:13:43 +01:00
Florent Xicluna dfee6c8dee Actually, there's more than one failing value. (changeset 9cb1b85237a9, issue #13312). 2011-11-02 03:22:15 +01:00
Florent Xicluna e2a732e706 Issue #13312: skip the single failing value for now. 2011-11-02 01:28:17 +01:00
Florent Xicluna d1bd7f7730 Additional tests for negative years. 2011-11-01 23:42:05 +01:00
Florent Xicluna 725af4dc1d Lowercase the test name, to run last. 2011-11-01 17:42:24 +01:00
Florent Xicluna 050c7e64cd Replace temporary tests with the real test case for issue #13309 on Gentoo. 2011-11-01 16:58:54 +01:00
Florent Xicluna 712b14fc2a Troubleshoot issue #13309 on Gentoo buildbot. 2011-11-01 16:07:23 +01:00
Florent Xicluna 752c1d4c02 Add temporary tests to troubleshoot issue #13309 on Gentoo buildbot. 2011-11-01 15:12:34 +01:00
Florent Xicluna bceb528af5 Test the year range supported by time.strftime() and time.asctime(). 2011-11-01 14:11:34 +01:00
Florent Xicluna 49ce06858b Strengthen the tests for format '%Y', in relation with issue #13305. 2011-11-01 12:56:14 +01:00
Victor Stinner e0be423297 Close #10278: Add clock_getres(), clock_gettime() and CLOCK_xxx constants to
the time module. time.clock_gettime(time.CLOCK_MONOTONIC) provides a monotonic
clock
2011-10-25 13:06:09 +02:00
Victor Stinner 7f53a5027d Issue #12459: time.sleep() now raises a ValueError if the sleep length is
negative, instead of an infinite sleep on Windows or raising an IOError on
Linux for example, to have the same behaviour on all platforms.
2011-07-05 22:00:25 +02:00
Alexander Belopolsky 03163ac185 Issue #11930: Remove deprecated time.accept2dyear. 2011-05-02 12:20:52 -04:00
Senthil Kumaran ae664fb528 Merge from 3.1 2011-04-06 14:11:09 +08:00
Senthil Kumaran 8f377a3bbe Issue #10762: Guard against invalid/non-supported format string '%f' on Windows. Patch Santoso Wijaya. 2011-04-06 12:54:06 +08:00
Victor Stinner 13ed2ea7a2 Issue #10864 has been fixed: remove the workaround 2011-03-21 02:11:01 +01:00
Alexander Belopolsky 622ce124b6 Merged revisions 87921 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k

........
  r87921 | alexander.belopolsky | 2011-01-10 21:22:16 -0500 (Mon, 10 Jan 2011) | 1 line

  This should fix mktime test on Windows
........
2011-02-15 15:58:04 +00:00
Alexander Belopolsky 4fb96f41f4 Merged revisions 87919 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k

........
  r87919 | alexander.belopolsky | 2011-01-10 20:21:25 -0500 (Mon, 10 Jan 2011) | 4 lines

  Issue #1726687: time.mktime() will now correctly compute value one
  second before epoch.  Original patch by Peter Wang, reported by Martin
  Blais.
........
2011-02-15 15:40:59 +00:00
Alexander Belopolsky a6892418ad This should fix mktime test on Windows 2011-01-11 02:22:16 +00:00
Alexander Belopolsky 31c5dd6b19 Make mktime test more robust. 2011-01-11 01:35:22 +00:00
Alexander Belopolsky b7d40d1702 Issue #1726687: time.mktime() will now correctly compute value one
second before epoch.  Original patch by Peter Wang, reported by Martin
Blais.
2011-01-11 01:21:25 +00:00
Victor Stinner 301f1217ac Issue #1777412: Remove all limits on tm_year from time.strftime()
The buildbots will tell us which platform does support or not negative years.
2011-01-08 03:06:52 +00:00
Victor Stinner af5aee57c9 Issue #1777412: fix test_time for Mac OS X and OpenIndiana 2011-01-08 02:46:33 +00:00
Victor Stinner 736913269e Issue #1777412: test large years value for strftime('%Y') 2011-01-08 02:00:24 +00:00
Victor Stinner 73ea29cb03 Issue #1777412: strftime() accepts year >= 1 instead of year >= 1900
* With Visual Studio, year have to be in [1; 9999]
 * Add more tests on the year field
2011-01-08 01:56:31 +00:00
Alexander Belopolsky 0dd06f4082 Fixed error handling branches. Thanks
Victor Stinner for pointing this out.
2011-01-08 01:23:02 +00:00
Alexander Belopolsky c64708ae48 Issue #10827: Changed the rules for 2-digit years. The time.asctime
function will now format any year when time.accept2dyear is false and
will accept years >= 1000 otherwise.  The year range accepted by
time.mktime and time.strftime is still system dependent, but
time.mktime will now accept full range supported by the OS. Conversion
of 2-digit years to 4-digit is deprecated.
2011-01-07 19:59:19 +00:00
Alexander Belopolsky 610e544bf7 Further simplify gettmarg() 2011-01-06 21:57:06 +00:00
Alexander Belopolsky a686725859 - time.accept2dyear = True is now equivalent to time.accept2dyear = 1
- removed unnecessary struct_time to tuple conversion
- added more unit tests
(See issue #10827 for discussion.)
2011-01-05 23:00:47 +00:00
Victor Stinner b996f740f2 test_time: assertEquals => assertEqual 2011-01-05 03:58:54 +00:00