Commit Graph

21048 Commits

Author SHA1 Message Date
Victor Stinner 2bf8993db9 Optimize bytes.fromhex() and bytearray.fromhex()
Issue #25401: Optimize bytes.fromhex() and bytearray.fromhex(): they are now
between 2x and 3.5x faster. Changes:

* Use a fast-path working on a char* string for ASCII string
* Use a slow-path for non-ASCII string
* Replace slow hex_digit_to_int() function with a O(1) lookup in
  _PyLong_DigitValue precomputed table
* Use _PyBytesWriter API to handle the buffer
* Add unit tests to check the error position in error messages
2015-10-14 11:25:33 +02:00
Victor Stinner 7ab986dd84 Fix test_bytes on Windows
On Windows, sprintf("%p", 0xabcdef) formats hexadecimal in uppercase and pad to
16 characters (on 64-bit system) with zeros.
2015-10-14 02:55:12 +02:00
Victor Stinner 03dab786b2 Rewrite PyBytes_FromFormatV() using _PyBytesWriter API
* Add much more unit tests on PyBytes_FromFormatV()
* Remove the first loop to compute the length of the output string
* Use _PyBytesWriter to handle the bytes buffer, use overallocation
* Cleanup the code to make simpler and easier to review
2015-10-14 00:21:35 +02:00
Zachary Ware fcd8794ab5 Closes #25093: Merge with 3.5 2015-10-12 23:31:44 -05:00
Zachary Ware fa10f61ee5 Issue #25093: Merge with 3.4 2015-10-12 23:30:15 -05:00
Zachary Ware 83fd0a81a4 Issue #25093: Fix test_tcl's testloadWithUNC for paths with spaces
Patch by Serhiy Storchaka.
2015-10-12 23:27:58 -05:00
Victor Stinner f7d2471260 Merge 3.5 (sys.setrecursionlimit) 2015-10-13 00:16:07 +02:00
Victor Stinner 50856d5ae7 sys.setrecursionlimit() now raises RecursionError
Issue #25274: sys.setrecursionlimit() now raises a RecursionError if the new
recursion limit is too low depending at the current recursion depth. Modify
also the "lower-water mark" formula to make it monotonic. This mark is used to
decide when the overflowed flag of the thread state is reset.
2015-10-13 00:11:21 +02:00
Victor Stinner 397c42b8cc Merge 3.5 (test_eintr) 2015-10-12 23:37:31 +02:00
Victor Stinner 60f26691f5 Issue #25277: Use a longer sleep in test_eintr to reduce the risk of race
condition in test_eintr.
2015-10-12 23:37:02 +02:00
Victor Stinner d65e4f4eea Issue #24164: Fix test_pyclbr
Ignore pickle.partial symbol which comes from functools.partial.
2015-10-12 14:38:24 +02:00
Serhiy Storchaka 20d15b5100 Issue #24164: Fixed test_descr: __getnewargs_ex__ now is supported in protocols 2 and 3. 2015-10-11 17:52:09 +03:00
Serhiy Storchaka 99deb1989f No longer skip tests for classes with __getnewargs_ex__. The copy module
already supports reduce protocol 4 (issue #20289).
2015-10-11 17:48:51 +03:00
Serhiy Storchaka 9c8213fbc1 No longer skip tests for classes with __getnewargs_ex__. The copy module
already supports reduce protocol 4 (issue #20289).
2015-10-11 17:48:28 +03:00
Serhiy Storchaka 977e5912e2 Cleanup test_descr: remove C8 that is the same as C3. 2015-10-11 17:43:38 +03:00
Serhiy Storchaka 1ddbb8cf47 Cleanup test_descr: remove C8 that is the same as C3. 2015-10-11 17:43:12 +03:00
Serhiy Storchaka 1fdc80b55f Cleanup test_descr: remove C8 that is the same as C3. 2015-10-11 17:42:39 +03:00
Victor Stinner e84c976568 Issue #25357: Add an optional newline paramer to binascii.b2a_base64().
base64.b64encode() uses it to avoid a memory copy.
2015-10-11 11:01:02 +02:00
Victor Stinner 5df7fddc0c Merge 3.5 (test_coroutines) 2015-10-11 10:53:50 +02:00
Victor Stinner 718c984e6e Close #25367: Fix test_coroutines()
Fix usage of support.import_module('asyncio'): store the result in an 'asyncio'
variable.
2015-10-11 10:53:15 +02:00
Victor Stinner 0c886f740b lose #25373: Fix regrtest --slow with interrupted test 2015-10-11 10:39:56 +02:00
Victor Stinner 3909e58994 Close #25373: Fix regrtest --slow with interrupted test
* Fix accumulate_result(): don't use time on interrupted and failed test
* Add unit test for interrupted test
* Add unit test on --slow with interrupted test, with and without
  multiprocessing
2015-10-11 10:37:25 +02:00
Victor Stinner 00a09c05ed Merge 3.5 (test_coroutines, issue #25367) 2015-10-11 10:10:49 +02:00
Victor Stinner b45c0f7e48 Close #25367: Fix test_coroutines with no thread support
Skip test_asyncio_1() when the asyncio module cannot be imported because
CPython is compiled with no thread support.
2015-10-11 10:10:31 +02:00
Victor Stinner 14b4662e18 test_regrtest: catch stderr in test_nowindows()
Check also that the deprecation warning is emited.
2015-10-11 10:04:26 +02:00
Victor Stinner 4967146c8d Close #25369: Fix test_regrtest without thread support 2015-10-11 10:03:28 +02:00
Victor Stinner 647dac9d6f Close #25368: Fix test_eintr when Python is compiled without thread support 2015-10-11 09:47:17 +02:00
Serhiy Storchaka 0d554d7ef1 Issue #24164: Objects that need calling ``__new__`` with keyword arguments,
can now be pickled using pickle protocols older than protocol version 4.
2015-10-10 22:42:18 +03:00
Serhiy Storchaka ca4265de8d Issue #25365: test_pickle now works in threads disabled builds. 2015-10-10 20:11:13 +03:00
Serhiy Storchaka 456a27013e Issue #25365: test_pickle now works in threads disabled builds. 2015-10-10 20:10:54 +03:00
Serhiy Storchaka 7b2cfc4465 Issue #25365: test_pickle now works in threads disabled builds. 2015-10-10 20:10:07 +03:00
Martin Panter 4df3b1a195 Issue #25322: Merge contextlib.suppress test fix from 3.5 2015-10-10 11:06:05 +00:00
Martin Panter 05da525e55 Issue #25322: Merge contextlib.suppress test fix from 3.4 into 3.5 2015-10-10 11:05:47 +00:00
Martin Panter 7c6420a552 Issue #25322: Fix test for nested contextlib.suppress 2015-10-10 11:04:44 +00:00
Martin Panter 1431c5af94 Issue #24402: Merge potential test fix from 3.5 2015-10-10 05:29:19 +00:00
Martin Panter 3cae757772 Issue #24402: Merge potential test fix from 3.4 into 3.5 2015-10-10 05:28:17 +00:00
Martin Panter e44dba3b4f Issue #24402: Factor out PtyTests.run_child() in input() tests
This reuses existing code to hopefully make the new test_input_no_stdout_
fileno() test work. It is hanging Free BSD 9 and OS X Tiger buildbots, and I
don't know why.
2015-10-10 05:27:15 +00:00
Martin Panter 5344da5c0d Issue #24402: Merge input() fix from 3.5 2015-10-10 02:09:41 +00:00
Martin Panter e02f8fc44d Issue #24402: Merge input() fix from 3.4 into 3.5 2015-10-10 01:55:23 +00:00
Martin Panter c9a6ab56cf Issue #24402: Fix input() when stdout.fileno() fails; diagnosed by Eryksun
Also factored out some test cases into a new PtyTests class.
2015-10-10 01:25:38 +00:00
Brett Cannon 6381e06d97 Merge for issue #25099 2015-10-09 15:10:10 -07:00
Brett Cannon 89065d9fc7 Issue #25099: Skip relevant tests in test_compileall when an entry on
sys.path has an unwritable __pycache__ directory.

This typically comes up when someone runs the test suite from an
administrative install of Python on Windows where the user does not
have write permissions to the stdlib's directory.

Thanks to Zachary Ware and Matthias Klose for reporting bugs related
to this issue.
(grafted from 34bbd537b3e688dfbb6498e9083445a6a72fc4b1)
2015-10-09 15:09:43 -07:00
Brett Cannon 65ed750375 Issue #25099: Skip relevant tests in test_compileall when an entry on
sys.path has an unwritable __pycache__ directory.

This typically comes up when someone runs the test suite from an
administrative install of Python on Windows where the user does not
have write permissions to the stdlib's directory.

Thanks to Zachary Ware and Matthias Klose for reporting bugs related
to this issue.
2015-10-09 15:09:43 -07:00
Victor Stinner 0cdad1e2bc Issue #25349: Add fast path for b'%c' % int
Optimize also %% formater.
2015-10-09 22:50:36 +02:00
R David Murray aecf63ee3a Merge #25328: add missing raise keyword in decode_data+SMTPUTF8 check. 2015-10-09 10:20:58 -04:00
R David Murray 1a815389cc #25328: add missing raise keyword in decode_data+SMTPUTF8 check.
This is a relatively benign bug, since having both be true was correctly
rejected at in SMTPServer even before this patch.

Patch by Xiang Zhang.
2015-10-09 10:19:33 -04:00
Raymond Hettinger 7836a27ceb Issue #25298: Add lock and rlock weakref tests (Contributed by Nir Soffer). 2015-10-09 00:03:51 -04:00
Victor Stinner 797485e101 Issue #25318: Avoid sprintf() in backslashreplace()
Rewrite backslashreplace() to be closer to PyCodec_BackslashReplaceErrors().

Add also unit tests for non-BMP characters.
2015-10-09 03:17:30 +02:00
Steve Dower 08ec6d9611 Fix missing import in libregrtest. 2015-10-08 11:34:07 -07:00
Steve Dower 12c2945ccf Issue #23919: Prevents assert dialogs appearing in the test suite. 2015-10-08 09:05:36 -07:00