New submission from Frank Schaefer <kelle...@gmail.com>:

Python 3.6.6 on Linux 4.16.18 SPARC64 fails test_ctypes.  Specifically, it 
appears to be due to the _testfunc_large_struct_update_value() or 
_testfunc_reg_struct_update_value():

0:00:44 load avg: 46.24 [137/407/1] test_ctypes failed -- running: test_socket 
(44 sec), test_subprocess (35 sec), test_venv (43 sec), test_normalization (43 
sec), test_signal (43 sec), test_multiprocessing_spawn (43 sec), 
test_concurrent_futures (43 sec), test_email (34 sec), test_cmd_line_script (43 
sec), test_tools (43 sec), test_pickletools (34 sec), test_zipfile (30 sec), 
test_multiprocessing_fork (33 sec), test_pyclbr (31 sec), test_math (42 sec), 
test_calendar (35 sec), test_datetime (33 sec), test_distutils (30 sec)
test test_ctypes failed -- Traceback (most recent call last):
  File "/usr/src/dist/new/Python-3.6.6/Lib/ctypes/test/test_structures.py", 
line 416, in test_pass_by_value
    self.assertEqual(s.first, 0xdeadbeef)
AssertionError: 195948557 != 3735928559

Obviously, the "0xbadf00d" field setting is propagating back up through 
something that's supposed to be passed-by-value, and the test case quite 
rightly picks up on it.  I suspect this bug exists in 2.7.15 as well (2.7 just 
doesn't have the testcase to catch it).
 
This is built with gcc-8.2.0, glibc-2.27, kernel 4.16.18, CFLAGS="-O1 -mcpu=v9 
-mtune=v9".  (FYI I had to turn down optimization to resolve another test 
failure, hence the "-O1".)

I'm guessing SPARC64 calling conventions are still passing certain large values 
by reference, and libffi isn't dealing with this?  I'm still investigating.  
I've tried it with and without --with-system-libffi, with no difference (my 
system libffi is 3.2.1).

----------
components: ctypes
messages: 326102
nosy: kelledin-3
priority: normal
severity: normal
status: open
title: test_ctypes failing on Linux SPARC64
type: behavior
versions: Python 3.6

_______________________________________
Python tracker <rep...@bugs.python.org>
<https://bugs.python.org/issue34771>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to