Armin Rigo avatar Armin Rigo committed 2e6275a

Fixes for test_verify.

Comments (0)

Files changed (2)

c/_cffi_backend.c

 static char *_cffi_to_c_pointer(PyObject *obj, CTypeDescrObject *ct)
 {
     char *result;
-    if (convert_from_object((char *)&result, ct, obj) < 0)
+    if (convert_from_object((char *)&result, ct, obj) < 0) {
+        if (PyFile_Check(obj) && (ct->ct_flags & CT_POINTER) &&
+                   (ct->ct_itemdescr->ct_flags & CT_IS_FILE)) {
+            PyErr_Clear();
+            return (char *)PyFile_AsFile(obj);
+        }
         return NULL;
+    }
     return result;
 }
 

testing/test_verify.py

     import posix
     fdr, fdw = posix.pipe()
     fw1 = posix.fdopen(fdw, 'wb', 256)
-    lib.myfile = fw1
+    lib.myfile = ffi.cast("FILE *", fw1)
     #
     fw1.write(b"X")
     r = lib.myprintf(b"hello, %d!\n", ffi.cast("int", 42))
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.