components/python/cffi/patches/test.patch
author Danek Duvall <danek.duvall@oracle.com>
Tue, 22 Apr 2014 11:18:42 -0700
changeset 1846 df40919e04fa
child 4894 7219201c1b0d
child 7085 cad8ee01213d
permissions -rw-r--r--
PSARC/2014/110 CFFI: foreign function interface for Python calling C code 18468609 integrate cffi
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1846
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
     1
The testsuite makes some incorrect assumptions:
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
     2
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
     3
  - we need to not assume "a standard gcc", so replace the -Werror flag
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
     4
    with -errwarn to turn on the warnings are expected to cause compilation
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
     5
    to fail.
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
     6
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
     7
  - don't use the -pthread flag for compilation; as Studio doesn't have any
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
     8
    clue what to do with it, and we don't need it on Solaris, anyway.
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
     9
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    10
  - don't force the use of gcc when compiling a test shared object; get
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    11
    that passed in from the makefile.
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    12
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    13
  - don't assume that stdin/stdout/stderr are changeable:
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    14
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    15
        https://bitbucket.org/cffi/cffi/issue/145/solaris-stdout-and-stderr-not-in-libc-not
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    16
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    17
    fixed in
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    18
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    19
        https://bitbucket.org/cffi/cffi/commits/237031079adc
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    20
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    21
  - don't assume that enums can be unsigned or are the same size as long:
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    22
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    23
    https://bitbucket.org/cffi/cffi/issue/143/test_enum_size-makes-invalid-assumptions
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    24
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    25
Also fix a problem with some assignments to void*:
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    26
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    27
    https://bitbucket.org/cffi/cffi/issue/146/incorrect-type-for-c_callback-variable
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    28
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    29
fixed in
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    30
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    31
    https://bitbucket.org/cffi/cffi/commits/51d87933eb4b
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    32
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    33
--- cffi-0.8.2/testing/test_verify.py	Thu Mar  6 22:51:56 2014
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    34
+++ cffi-0.8.2/testing/test_verify.py	Thu Mar 20 18:39:01 2014
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    35
@@ -18,8 +18,10 @@
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    36
         extra_compile_args = [
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    37
             '-Werror', '-Qunused-arguments', '-Wno-error=shorten-64-to-32']
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    38
     else:
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    39
-        # assume a standard gcc
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    40
-        extra_compile_args = ['-Werror']
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    41
+        extra_compile_args = [
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    42
+          '-errtags=yes',
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    43
+          '-errwarn=E_ASSIGNMENT_TYPE_MISMATCH,E_RETURN_VALUE_TYPE_MISMATCH'
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    44
+        ]
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    45
 
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    46
     class FFI(FFI):
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    47
         def verify(self, *args, **kwds):
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    48
--- cffi-0.8.2/testing/callback_in_thread.py	Fri Mar 21 15:58:21 2014
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    49
+++ cffi-0.8.2/testing/callback_in_thread.py	Fri Mar 21 15:58:30 2014
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    50
@@ -22,7 +22,7 @@
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    51
             pthread_create(&thread, NULL, my_wait_function, (void*)mycb);
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    52
             return 0;
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    53
         }
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    54
-    """, extra_compile_args=['-pthread'])
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    55
+    """)
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    56
     seen = []
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    57
     @ffi.callback('int(*)(int,int)')
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    58
     def mycallback(x, y):
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    59
--- cffi-0.8.2/testing/test_ownlib.py	Tue Oct  9 02:10:04 2012
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    60
+++ cffi-0.8.2/testing/test_ownlib.py	Tue Mar 25 15:39:35 2014
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    61
@@ -1,4 +1,4 @@
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    62
-import py, sys
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    63
+import os, py, sys
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    64
 import subprocess, weakref
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    65
 from cffi import FFI
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    66
 from cffi.backend_ctypes import CTypesBackend
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    67
@@ -28,7 +28,7 @@
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    68
         from testing.udir import udir
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    69
         udir.join('testownlib.c').write(SOURCE)
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    70
         subprocess.check_call(
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    71
-            'gcc testownlib.c -shared -fPIC -o testownlib.so',
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    72
+            os.getenv('TESTOWNLIB_CC') % ('testownlib.c', 'testownlib.so'),
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    73
             cwd=str(udir), shell=True)
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    74
         cls.module = str(udir.join('testownlib.so'))
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    75
 
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    76
--- cffi-0.8.2/c/test_c.py	Thu Mar  6 22:51:56 2014
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    77
+++ cffi-0.8.2/c/test_c.py	Mon Mar 24 14:53:27 2014
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    78
@@ -1102,7 +1102,7 @@
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    79
 def test_read_variable():
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    80
     ## FIXME: this test assumes glibc specific behavior, it's not compliant with C standard
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    81
     ## https://bugs.pypy.org/issue1643
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    82
-    if sys.platform == 'win32' or sys.platform == 'darwin' or sys.platform.startswith('freebsd'):
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    83
+    if not sys.platform.startswith("linux"):
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    84
         py.test.skip("untested")
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    85
     BVoidP = new_pointer_type(new_void_type())
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    86
     ll = find_and_load_library('c')
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    87
@@ -1112,7 +1112,7 @@
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    88
 def test_read_variable_as_unknown_length_array():
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    89
     ## FIXME: this test assumes glibc specific behavior, it's not compliant with C standard
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    90
     ## https://bugs.pypy.org/issue1643
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    91
-    if sys.platform == 'win32' or sys.platform == 'darwin' or sys.platform.startswith('freebsd'):
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    92
+    if not sys.platform.startswith("linux"):
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    93
         py.test.skip("untested")
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    94
     BCharP = new_pointer_type(new_primitive_type("char"))
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    95
     BArray = new_array_type(BCharP, None)
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    96
@@ -1124,7 +1124,7 @@
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    97
 def test_write_variable():
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    98
     ## FIXME: this test assumes glibc specific behavior, it's not compliant with C standard
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    99
     ## https://bugs.pypy.org/issue1643
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   100
-    if sys.platform == 'win32' or sys.platform == 'darwin' or sys.platform.startswith('freebsd'):
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   101
+    if not sys.platform.startswith("linux"):
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   102
         py.test.skip("untested")
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   103
     BVoidP = new_pointer_type(new_void_type())
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   104
     ll = find_and_load_library('c')
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   105
--- cffi-0.8.2/testing/test_verify.py	Thu Mar  6 22:51:56 2014
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   106
+++ cffi-0.8.2/testing/test_verify.py	Mon Mar 24 15:03:49 2014
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   107
@@ -1472,8 +1474,8 @@
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   108
     assert func() == 42
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   109
 
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   110
 def test_FILE_stored_in_stdout():
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   111
-    if sys.platform == 'win32':
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   112
-        py.test.skip("MSVC: cannot assign to stdout")
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   113
+    if not sys.platform.startswith("linux"):
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   114
+        py.test.skip("likely, we cannot assign to stdout")
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   115
     ffi = FFI()
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   116
     ffi.cdef("int printf(const char *, ...); FILE *setstdout(FILE *);")
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   117
     lib = ffi.verify("""
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   118
--- cffi-0.8.2/testing/test_verify.py	Thu Mar  6 22:51:56 2014
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   119
+++ cffi-0.8.2/testing/test_verify.py	Mon Mar 24 15:06:23 2014
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   120
@@ -1598,13 +1598,13 @@
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   121
              ('-123',          4, -1),
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   122
              ('-2147483647-1', 4, -1),
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   123
              ]
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   124
-    if FFI().sizeof("long") == 8:
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   125
+    if FFI().sizeof("long") == 8 and sys.platform != 'sunos5':
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   126
         cases += [('4294967296L',        8, 2**64-1),
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   127
                   ('%dUL' % (2**64-1),   8, 2**64-1),
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   128
                   ('-2147483649L',       8, -1),
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   129
                   ('%dL-1L' % (1-2**63), 8, -1)]
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   130
     for hidden_value, expected_size, expected_minus1 in cases:
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   131
-        if sys.platform == 'win32' and 'U' in hidden_value:
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   132
+        if sys.platform in ('win32', 'sunos5') and 'U' in hidden_value:
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   133
             continue   # skipped on Windows
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   134
         ffi = FFI()
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   135
         ffi.cdef("enum foo_e { AA, BB, ... };")
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   136
@@ -1629,7 +1627,7 @@
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   137
                         (maxulong, -1, ''),
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   138
                         (-1, 0xffffffff, 'U'),
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   139
                         (-1, maxulong, 'UL')]:
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   140
-        if c2c and sys.platform == 'win32':
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   141
+        if c2c and sys.platform in ('win32', 'sunos5'):
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   142
             continue     # enums may always be signed with MSVC
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   143
         ffi = FFI()
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   144
         ffi.cdef("enum foo_e { AA=%s };" % c1)
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   145
--- a/testing/test_verify.py
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   146
+++ b/testing/test_verify.py
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   147
@@ -1656,8 +1656,8 @@
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   148
     ffi = FFI()
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   149
     ffi.cdef("""
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   150
         int (*python_callback)(int how_many, int *values);
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   151
-        void *const c_callback;   /* pass this ptr to C routines */
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   152
-        int some_c_function(void *cb);
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   153
+        int (*const c_callback)(int,...);   /* pass this ptr to C routines */
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   154
+        int some_c_function(int(*cb)(int,...));
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   155
     """)
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   156
     lib = ffi.verify("""
df40919e04fa PSARC/2014/110 CFFI: foreign function interface for Python calling C code
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   157
         #include <stdarg.h>