Commit Graph

226 Commits

Author SHA1 Message Date
Serhiy Storchaka 4dc05c34ac Fix py3k warnings in 1/0 in tests. (#4072) 2017-10-22 12:15:41 +03:00
Victor Stinner 8b83687bdf bpo-28129: fix ctypes crashes (#386) (#3800)
* init commit, with initial tests for from_param and fields __set__ and __get__, and some additions to from_buffer and from_buffer_copy

* added the rest of tests and patches. probably only a first draft.

* removed trailing spaces

* replace ctype with ctypes in error messages

* change back from ctypes instance to ctype instance

(cherry picked from commit 1bea762d9e)
2017-09-28 07:31:40 -07:00
Miss Islington (bot) 9bfa55bfea [2.7] bpo-31490: Fix an assertion failure in ctypes in case an _anonymous_ attr is defined only outside _fields_. (GH-3615) (#3780)
(cherry picked from commit 30b61b51e0)
2017-09-27 09:52:44 +03:00
Serhiy Storchaka 81691b0548 [2.7] bpo-31311: Fix a SystemError and a crash in ctypes._CData.__setstate__(), in case of a bad __dict__. (GH-3254). (#3781)
(cherry picked from commit 57c2561c8c)
2017-09-27 09:24:39 +03:00
Pauli Virtanen 990b2d043c [2.7] bpo-10746: Fix ctypes PEP 3118 type codes for c_long, c_bool, c_int (GH-31) (#3242)
[2.7] bpo-10746: Fix ctypes PEP 3118 type codes for c_long, c_bool, c_int (GH-31)

Ctypes currently produces wrong pep3118 type codes for several types.
E.g. memoryview(ctypes.c_long()).format gives "<l" on 64-bit platforms,
but it should be "<q" instead for sizeof(c_long) == 8

The problem is that the '<>' endian specification in the struct syntax
also turns on the "standard size" mode, which makes type characters have
a platform-independent meaning, which does not match with the codes used
internally in ctypes.  The struct module format syntax also does not
allow specifying native-size non-native-endian items.

This commit adds a converter function that maps the internal ctypes
codes to appropriate struct module standard-size codes in the pep3118
format strings. The tests are modified to check for this..
(cherry picked from commit 07f1658aa0)
2017-09-02 18:24:32 +02:00
Zachary Ware 5fe8ac69f9 [2.7] bpo-27425: Be more explicit in .gitattributes (GH-840) (GH-2086)
Also updates checked-in line endings in several files.
2017-06-11 14:19:39 -05:00
Serhiy Storchaka 7a7e04e42c Issue #29219: Fixed infinite recursion in the repr of uninitialized
ctypes.CDLL instances.
2017-01-13 09:37:56 +02:00
Serhiy Storchaka 99ba17f553 Issue #29082: Fixed loading libraries in ctypes by unicode names on Windows.
Original patch by Chi Hsuan Yen.
2017-01-12 17:00:32 +02:00
Martin Panter fd08fdc7be Issue #25659: Change assert to TypeError in from_buffer/_copy()
Based on suggestion by Eryk Sun.
2016-11-20 09:35:06 +00:00
Martin Panter 32d74e1d73 Remove disabled ctypes test
The test was commented out in 2005 before ctypes was added to Python, because
the “cdll” attribute loading feature “will no longer work this way”:
http://svn.python.org/view?view=revision&revision=49102
2016-09-29 02:50:20 +00:00
Vinay Sajip e1f3afbde2 Issue #20160: Handled passing of large structs to callbacks correctly. 2016-08-05 21:10:26 +01:00
Martin Panter a850ef698e Issue #27626: Spelling fixes in docs, comments and internal names
Based on patch by Ville Skyttä.
2016-07-28 01:11:04 +00:00
Victor Stinner eb063011ab Issue #22636: Avoid using a shell in the ctypes.util module
Replace os.popen() with subprocess.Popen.

If the "gcc", "cc" or "objdump" command is not available, the code was
supposed to raise an OSError exception. But there was a bug in the code. The
shell code returns the exit code 10 if the required command is missing, and the
code tries to check for the status 10. The problem is that os.popen() doesn't
return the exit code directly, but a status which should be processed by
os.WIFEXITED() and os.WEXITSTATUS(). In practice, the exception was never
raised. The OSError exception was not documented and ctypes.util.find_library()
is expected to return None if the library is not found.

Based on patch by Victor Stinner.
2014-10-16 09:42:45 +02:00
Matthias Klose 9aabaccb76 Issue #7356: ctypes.util: Make parsing of ldconfig output locale independent.
Previous fix was only made to dead and removed code.
2010-03-15 13:46:04 +00:00
Martin Panter 200a615774 Issue #27125: Remove duplicated words from documentation and comments 2016-05-30 04:04:50 +00:00
Martin Panter f45c1755c3 Remove PEP 291 compatibility requirements for ctypes and modulefinder
https://mail.python.org/pipermail/python-dev/2016-May/144502.html
2016-05-14 07:25:37 +00:00
Antoine Pitrou ec62130655 Issue #12045: Avoid duplicate execution of command in ctypes.util._get_soname().
Patch by Sijin Joseph.
2011-05-25 18:17:25 +02:00
Meador Inge ae21a8a555 Issue #24114: Fix an uninitialized variable in `ctypes.util`.
The bug only occurs on SunOS when the ctypes implementation searches
for the `crle` program.  Patch by Xiang Zhang.  Tested on SunOS by
Kees Bos.
2016-04-30 21:56:59 -05:00
Martin Panter 53ae0ba6e3 Issue #26304: Change "allows to <verb>" to "allows <verb>ing" or similar
The original form is incorrect grammar and feels awkward, even though the
meaning is clear.
2016-02-10 05:44:01 +00:00
Martin Panter a339e86dc0 Issue #19023: Document ctypes array and pointer classes
Also add some more tests. Based on patch by Sye van der Veen.
2016-01-29 10:12:19 +00:00
Martin Panter 929e363a7b Issue #25622: Rename to PythonValuesTestCase and enable for non-Windows 2015-11-26 02:36:26 +00:00
Serhiy Storchaka bab1f851cc Issue #25582: Fixed 100 MB memory leak in test_ctypes. 2015-11-09 22:31:10 +02:00
Serhiy Storchaka c72e66a048 Issue #25523: Backported a-to-an corrections. 2015-11-02 15:06:09 +02:00
Victor Stinner e97944a27e Issue #23319: Fix ctypes.BigEndianStructure, swap correctly bytes. Patch
written by Matthieu Gautier.
2015-07-29 14:37:17 +02:00
Zachary Ware b9298a4fbb Issue #17202: Add .bat to .hgeol to force them to CRLF.
Using LF can a script to fail if it tries to use a label that is
split across 512 byte blocks.  Who knows why.
2015-04-13 11:54:11 -05:00
Serhiy Storchaka 53ea162067 Make some tests more frienly to MemoryError.
Free memory, unlock hanging threads.
2015-03-28 20:38:48 +02:00
Serhiy Storchaka 5312a7f912 Avoid deprecation warnings. 2015-01-31 11:27:06 +02:00
Serhiy Storchaka 655720e275 Issue #22777: Test pickling with all protocols. 2014-12-15 14:02:43 +02:00
Steve Dower 31221a7285 Issue #20160: broken ctypes calling convention on MSVC / 64-bit Windows (large structs). Patch by mattip 2014-11-05 19:16:05 -08:00
R David Murray 55bf20ad6e #13096: Fix segfault in CTypes POINTER handling of large values.
Patch by Meador Inge.
2014-10-12 14:26:30 -04:00
Zachary Ware f2eb721d14 Issue #19493: Fix two uses of ctypes.test.requires (it's not a decorator)
and skip test_win32.FunctionCallTestCase.test_SEH when Python was compiled
in debug configuration or by a non-MSC compiler.
2014-07-23 14:29:25 -05:00
Zachary Ware 04349c602c Issue #19493: Backport 6f63fff5c120 2014-06-13 14:40:16 -05:00
Benjamin Peterson d3d23636cb support pep 3118 format strings for ctypes objects with nontrivial shapes (closes #10744)
Patch from Matti Picus.
2014-05-17 14:57:10 -07:00
Ned Deily 3ac866539f Issue #21093: Prevent failures of ctypes test_macholib on OS X if a
copy of libz exists in $HOME/lib or /usr/local/lib.
2014-03-29 00:07:42 -07:00
Benjamin Peterson e3af6f0a88 fix ctypes test alignment assumptions (closes #20946)
Patch by Andreas Schwab.
2014-03-16 10:07:26 +01:00
Serhiy Storchaka 52bbeacb9d Issue #19591: Use specific asserts in ctype tests. 2013-11-17 00:06:02 +02:00
Ezio Melotti bf7e8656b5 #18981: fix a typo in a comment (noticed by Anoop Thomas Mathew). 2013-09-13 23:52:12 +03:00
Ezio Melotti 5dd99ebbc2 #18741: fix more typos. Patch by Févry Thibault. 2013-08-17 16:07:38 +03:00
doko@ubuntu.com 96645cc4ff - Issue #17754: Make ctypes.util.find_library() independent of the locale. 2013-05-15 15:46:11 +02:00
Ezio Melotti 5cea09d290 #7855: Add tests for ctypes/winreg for issues found in IronPython. Initial patch by Dino Viehland. 2013-05-04 17:59:03 +03:00
Serhiy Storchaka 8e8bbc5e7d Fix test_from_dll* in test_returnfuncptrs.py. 2013-02-07 14:57:53 +02:00
Serhiy Storchaka 28ababcda4 Temporarily disable test_from_dll in test_returnfuncptrs.py for Windows. 2013-02-04 15:19:21 +02:00
Serhiy Storchaka a07a8b4f18 Issue #6083: Fix multiple segmentation faults occured when PyArg_ParseTuple
parses nested mutating sequence.
2013-02-04 12:45:46 +02:00
Benjamin Peterson f727c31133 fix find_library on Solaris (closes #5289) 2013-02-03 19:25:11 -05:00
Serhiy Storchaka 72121c6c30 - Issue #17041: Fix testing when Python is configured with the
--without-doc-strings option.
2013-01-27 19:45:49 +02:00
Serhiy Storchaka 74f49ab28b Issue #15989: Fix several occurrences of integer overflow
when result of PyInt_AsLong() or PyLong_AsLong() narrowed
to int without checks.

This is a backport of changesets 13e2e44db99d and 525407d89277.
2013-01-19 12:55:39 +02:00
Serhiy Storchaka 8876145fab Issue #16793. Replace deprecated unittest asserts with modern counterparts. 2012-12-28 00:32:19 +02:00
Meador Inge 25be3f68e0 Issue #6493: Fix handling of c_uint32 bitfields with width of 32 on Windows. 2012-07-18 23:51:05 -05:00
Meador Inge fe7aa49f24 Issue #9041: raised exception is misleading
An issue in ctypes.c_longdouble, ctypes.c_double, and ctypes.c_float that
caused an incorrect exception to be returned in the case of overflow has been
fixed.
2012-05-28 13:52:59 -05:00
Meador Inge ff337ccd4b Issue #13979: Fix ctypes.util.find_library ldconfig regex 2012-02-13 22:22:06 -06:00