Hello.
I have a crash when use CFFI + CCL + callbacks on Windows.
I am not sure the crash is caused by CFFI, there is another suspect. But the
CFFI tests on Windows have errors.
Could you take a look to the test results (attached)? This is CFFI 0.10.6
About the crash. It happens with CL+SSL.
OpenSSL requires multi-threaded applications to provide a callback, which
implements locking,
as described here: http://www.openssl.org/docs/crypto/threads.html.
The callback function prototype is
void locking_function(int mode, int n, const char *file, int line)
The callback is installed using
void CRYPTO_set_locking_callback(void (*func)(int mode,int type,
const char *file,int line))
CL+SSL has the following definitions:
(cffi:defcallback locking-callback :void
((mode :int)
(n :int)
(file :string)
(line :int))
;(declare (ignore file line))
;; the callback body here
)
(cffi:defcfun ("CRYPTO_set_locking_callback" crypto-set-locking-callback)
:void
(fun :pointer))
If during initialization of CL+SSL we do
(crypto-set-locking-callback (cffi:callback locking-callback))
then we have a crash at the first SSL connection to hunchentoot. The crash is
100% reproducible.
It doesn't matter what we have in the callback body, it may be even empty. The
symptoms are
always the same.
If we comment out the line
;; (crypto-set-locking-callback (cffi:callback locking-callback))
then the crash doesn't happen.
As I said, I am not sure CFFI is the cause of the crash. I tried to print the
values
passed to the callback, they are not corrupted, valid numbers and strings.
Also, the callback is called thousands of times before the crash happen.
But on the other hand, if we don't set the callback, the crash doesn't happen;
and setting even empty callback guarantees the crash...
Anyway, If you provide any patches to CFFI, at least to fix the tests, I can
run the tests on Windows.
Best regards,
- Anton
;;; -------- Running tests in Clozure Common Lisp --------
;Compiler warnings for
"home:quicklisp;dists;quicklisp;software;cffi_0.10.6;tests;funcall.lisp.newest"
:
; In (EXPAND-TO-FOREIGN (T CHECK-NIL-SKIP-TYPE)) inside an anonymous lambda
form: Unused lexical variable VAL
; Warning: COMPILE-FILE warned while performing #<COMPILE-OP (:VERBOSE NIL)
#xC619266> on #<CL-SOURCE-FILE "cffi-tests" "tests" "funcall">.
; While executing: #<STANDARD-METHOD ASDF:PERFORM (ASDF:COMPILE-OP
ASDF:CL-SOURCE-FILE)>, in process listener(1).
; Warning: Redefining test FOREIGN-ALLOC.6
; While executing: REGRESSION-TEST::REPORT-ERROR, in process listener(1).
;;; running tests (uncompiled)
Doing 238 pending tests of 238 tests total.
FUNCALL.CHAR FUNCALL.INT.1 FUNCALL.INT.2 FUNCALL.LONG
FUNCALL.LONG-LONG FUNCALL.FLOAT FUNCALL.DOUBLE FUNCALL.STRING.1
FUNCALL.STRING.2 FUNCALL.STRING.3 FUNCALL.VARARGS.CHAR
FUNCALL.VARARGS.INT FUNCALL.VARARGS.LONG
Test FUNCALL.VARARGS.DOUBLE failed
Form: (WITH-FOREIGN-POINTER-AS-STRING (S 100) (SETF (MEM-REF S :CHAR) 0)
(FOREIGN-FUNCALL "sprintf" :POINTER S :STRING "%.2f" :DOUBLE (COERCE PI
'DOUBLE-FLOAT) :INT))
Expected value: "3.14"
Actual value: "f".
FUNCALL.VARARGS.STRING FUNCALL.DOUBLE26 FUNCALL.FLOAT26
FUNCALL.F-S-P.1
Test FUNCALL.STDCALL.1 failed
Form: (FLET ((FUN NIL (FOREIGN-FUNCALL ("stdcall_fun@12" :CONVENTION :STDCALL)
:INT 1 :INT 2 :INT 3 :INT))) (LOOP REPEAT 100 DO (FUN) FINALLY (RETURN (FUN))))
Expected value: 6
Actual value: #<SIMPLE-ERROR #xCFCF1BE>.
FUNCALL.NIL-SKIP FUNCALL.POINTER-NOT-NIL DEFCFUN.CHAR
DEFCFUN.DOCSTRING DEFCFUN.INT DEFCFUN.LONG DEFCFUN.LONG-LONG
DEFCFUN.FLOAT DEFCFUN.DOUBLE DEFCFUN.STRING.1 DEFCFUN.STRING.2
DEFCFUN.STRING.3 DEFCFUN.NOARGS
Test DEFCFUN.NOOP failed
Form: (NOOP)
Expected values:
Actual value: NIL.
DEFCFUN.VARARGS.DOCSTRINGS DEFCFUN.VARARGS.CHAR DEFCFUN.VARARGS.SHORT
DEFCFUN.VARARGS.INT DEFCFUN.VARARGS.LONG
Test DEFCFUN.VARARGS.FLOAT failed
Form: (WITH-FOREIGN-POINTER-AS-STRING (S 100) (SPRINTF S "%.2f" :FLOAT (FLOAT
PI)))
Expected value: "3.14"
Actual value: "f".
Test DEFCFUN.VARARGS.DOUBLE failed
Form: (WITH-FOREIGN-POINTER-AS-STRING (S 100) (SPRINTF S "%.2f" :DOUBLE (FLOAT
PI 1.0D0)))
Expected value: "3.14"
Actual value: "f".
DEFCFUN.VARARGS.STRING DEFCFUN.BFF.1
Test DEFCFUN.BFF.2 failed
Form: (SUM-127 (MAKE-POINTER 2746181372) (MAKE-POINTER 177623060) -32334.0
3158055028 (MAKE-POINTER 242315091) 4288001754991016425 -21047.0D0 287.0D0
18722 243379286 -8677366518541007140 581399424 -13872 4240394881 1353358999 226
969197676 -26207.0D0 6484 11150 1241680089902988480 106068320 61865 2253
(MAKE-POINTER 866809333) -31613 35616 11715 1393601698 8940888681199591845
(MAKE-POINTER 1524606024) 805638893 3315410736 3432596795 (MAKE-POINTER
1490355706) 696175657106383698 -25438.0 1294381547 26724 (MAKE-POINTER
3196569545) 2506913373410783697 -4405955718732597856 4075932032 3224670123
2183829215657835866 1318320964 -22 -3786.0D0 -2017024146 1579225515 -626617701
-1456 (MAKE-POINTER 3561444187) 395687791 1968033632506257320 -1847773261 48853
142937735275669133 -17974.0 (MAKE-POINTER 2791749948) -14140.0 2707 3691328585
3306.0 1132012981 303633191773289330 (MAKE-POINTER 981183954) 9114.0D0
8664374572369470 -19013.0D0 -10288.0D0 -3679345119891954339 (MAKE-POINTER
3538786709) 23761 -154264605 (MAKE-POINTER 2694396308) 7023 997.0D0 1009561368
241 (MAKE-POINTER 2612292671) 48 1431872408 -32675.0D0 (MAKE-POINTER
1587599336) 958916472 -9857.0D0 111 -14370.0D0 -7308 -967514912 488790941
2146978095 -24111.0D0 13711 86681861 717987770 111 1013402998690933877
17234.0D0 -8772.0 3959216275 -8711 (MAKE-POINTER 3142780851) 9480.0
-3820453146461186120 1616574376 -3336232268263990050 -1906114671562979758
-27925.0D0 9695970875869913114 27033.0D0 1096518219 -12 104 3392025403 -27911
60 89 509297051 -533066551 29158.0 110 54 -9802.0D0 593950442165910888 -79)
Expected value: 7758614658402721936
Actual value: 7758614624042983568.
DEFCFUN.UNDEFINED DEFCFUN.DOUBLE26 DEFCFUN.FLOAT26
Test DEFCFUN.STDCALL.1 failed
Form: (LOOP REPEAT 100 DO (STDCALL-FUN 1 2 3) FINALLY (RETURN (STDCALL-FUN 1 2
3)))
Expected value: 6
Actual value: #<SIMPLE-ERROR #xD01B4CE>.
CALLBACKS.CHAR CALLBACKS.UNSIGNED-CHAR CALLBACKS.SHORT
CALLBACKS.UNSIGNED-SHORT CALLBACKS.INT CALLBACKS.UNSIGNED-INT
CALLBACKS.LONG CALLBACKS.UNSIGNED-LONG CALLBACKS.LONG-LONG
CALLBACKS.UNSIGNED-LONG-LONG CALLBACKS.FLOAT CALLBACKS.DOUBLE
CALLBACKS.POINTER CALLBACKS.STRING CALLBACKS.STRING-NOT-DOCSTRING
CALLBACKS.NIL-FOR-NULL CALLBACKS.QSORT CALLBACKS.VOID
CALLBACKS.FUNCALL.1 CALLBACKS.FUNCALL.2
Test CALLBACKS.BFF.1 failed
Form: (CALL-SUM-127-NO-LL (CALLBACK SUM-127-NO-LL))
Expected value: 2008547941
Actual value: #<SIMPLE-ERROR #xD022A66>.
Test CALLBACKS.BFF.2 failed
Form: (CALL-SUM-127 (CALLBACK SUM-127))
Expected value: 8166570665645582011
Actual value: #<SIMPLE-ERROR #xD0228E6>.
CALLBACKS.NON-EXISTANT CALLBACKS.DOUBLE26 CALLBACKS.DOUBLE26.FUNCALL
CALLBACKS.FLOAT26 CALLBACKS.FLOAT26.FUNCALL CALLBACKS.STDCALL.1
CALLBACKS.UNINTERNED FOREIGN-GLOBALS.REF.CHAR
FOREIGN-GLOBALS.REF.UNSIGNED-CHAR FOREIGN-GLOBALS.REF.SHORT
FOREIGN-GLOBALS.REF.UNSIGNED-SHORT FOREIGN-GLOBALS.REF.INT
FOREIGN-GLOBALS.REF.UNSIGNED-INT FOREIGN-GLOBALS.REF.LONG
FOREIGN-GLOBALS.REF.UNSIGNED-LONG FOREIGN-GLOBALS.REF.FLOAT
FOREIGN-GLOBALS.REF.DOUBLE FOREIGN-GLOBALS.REF.POINTER
FOREIGN-GLOBALS.REF.STRING FOREIGN-GLOBALS.REF.LONG-LONG
FOREIGN-GLOBALS.REF.UNSIGNED-LONG-LONG FOREIGN-GLOBALS.SET.INT
FOREIGN-GLOBALS.SET.STRING FOREIGN-GLOBALS.SET.LONG-LONG
FOREIGN-GLOBALS.GET-VAR-POINTER.1 FOREIGN-GLOBALS.GET-VAR-POINTER.2
FOREIGN-GLOBALS.REF.UPPERCASEINT1 FOREIGN-GLOBALS.REF.UPPER-CASE-INT1
FOREIGN-GLOBALS.REF.MIXEDCASEINT1 FOREIGN-GLOBALS.REF.MIXED-CASE-INT1
FOREIGN-GLOBALS.REF.UPPERCASEINT2 FOREIGN-GLOBALS.REF.UPPER-CASE-INT2
FOREIGN-GLOBALS.REF.MIXEDCASEINT2 FOREIGN-GLOBALS.REF.MIXED-CASE-INT2
FOREIGN-GLOBALS.REF.UPPERCASEINT3 FOREIGN-GLOBALS.REF.UPPER-CASE-INT3
FOREIGN-GLOBALS.REF.MIXEDCASEINT3 FOREIGN-GLOBALS.REF.MIXED-CASE-INT3
FOREIGN-GLOBALS.SYMBOL-NAME FOREIGN-GLOBALS.READ-ONLY.1
DEFCVAR.DOCSTRING DEREF.CHAR DEREF.UNSIGNED-CHAR DEREF.SHORT
DEREF.UNSIGNED-SHORT DEREF.INT DEREF.UNSIGNED-INT DEREF.LONG
DEREF.UNSIGNED-LONG DEREF.LONG-LONG DEREF.UNSIGNED-LONG-LONG
DEREF.FLOAT.1 DEREF.FLOAT.2 DEREF.FLOAT.3 DEREF.DOUBLE.1
DEREF.DOUBLE.2 DEREF.DOUBLE.3 DEREF.POINTER.NULL
LISP-STRING-TO-FOREIGN.EMPTY WITH-FOREIGN-POINTER.EVALX2
WITH-FOREIGN-POINTER.CONSTANT-SIZE MEM-REF.LEFT-TO-RIGHT
%MEM-REF.LEFT-TO-RIGHT %MEM-SET.LEFT-TO-RIGHT MEM-AREF.EVAL-TYPE-X2
MEM-AREF.LEFT-TO-RIGHT MEM-REF.NESTED MEM-AREF.NESTED DEREF.AGGREGATE
DEREF.ARRAY-OF-AGGREGATES POINTER.1 POINTER.2 POINTER.NULL
FOREIGN-POINTER-TYPE.NIL MAKE-POINTER.HIGH INC-POINTER.ZERO
FOREIGN-ALLOC.1 FOREIGN-ALLOC.2 FOREIGN-ALLOC.3 FOREIGN-ALLOC.4
FOREIGN-ALLOC.5 FOREIGN-ALLOC.6 FOREIGN-ALLOC.7 FOREIGN-ALLOC.8
FOREIGN-ALLOC.9 DEREF.NONCONST.CHAR DEREF.NONCONST.UNSIGNED-CHAR
DEREF.NONCONST.SHORT DEREF.NONCONST.UNSIGNED-SHORT DEREF.NONCONST.INT
DEREF.NONCONST.UNSIGNED-INT DEREF.NONCONST.LONG
DEREF.NONCONST.UNSIGNED-LONG DEREF.NONCONST.LONG-LONG
DEREF.NONCONST.UNSIGNED-LONG-LONG DEREF.NONCONST.FLOAT.1
DEREF.NONCONST.FLOAT.2 DEREF.NONCONST.FLOAT.3 DEREF.NONCONST.DOUBLE.1
DEREF.NONCONST.DOUBLE.2 DEREF.NONCONST.DOUBLE.3 MEM-REF.RT.1
MEM-REF.RT.2 INCF-POINTER.1 INCF-POINTER.2 POINTERP.1 POINTERP.2
POINTERP.3 POINTERP.4 POINTERP.5 POINTERP.6 MEM-REF.SETF.1
POINTER-EQ.NON-POINTERS.1 POINTER-EQ.NON-POINTERS.2
NULL-POINTER-P.NON-POINTER.1 NULL-POINTER-P.NON-POINTER.2
NULL-POINTER-P.NON-POINTER.3 STRING.CONVERSION.BASIC
STRING.CONVERSION.BASIC.2 STRING.ENCODING.ASCII
Test STRING.ENCODING.UTF-16.BASIC failed
Form: (WITH-FOREIGN-STRING (S *ASCII-TEST-STRING* :ENCODING :UTF-16)
(FOREIGN-STRING-TO-LISP S :ENCODING :UTF-16))
Expected values: "
!\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~"
190
Actual values:
""
190.
STRING.SHORT-WRITE.1 STRING.ENCODING.UTF-8.BASIC
Test STRING.ENCODINGS.ALL.BASIC failed
Form: (LET (FAILED) (DOLIST (ENCODING (LIST-LATIN-COMPATIBLE-ENCODINGS) FAILED)
(WITH-FOREIGN-STRING (PTR *BASIC-LATIN-ALPHABET* :ENCODING ENCODING) (LET
((STRING (FOREIGN-STRING-TO-LISP PTR :ENCODING ENCODING))) (UNLESS (STRING=
*BASIC-LATIN-ALPHABET* STRING) (PUSH ENCODING FAILED))))))
Expected value: NIL
Actual value: #<UNBOUND-VARIABLE #xCCC8C7E>.
STRING.ENCODINGS.DEFAULT STRUCT.1 STRUCT.2 STRUCT.3 STRUCT.4
STRUCT.NAMES STRUCT.5 STRUCT.STRING.1 STRUCT.STRING.2
STRUCT.ALIGNMENT.1 STRUCT.ALIGNMENT.2 STRUCT.ALIGNMENT.3
STRUCT.ALIGNMENT.4 STRUCT.ALIGNMENT.5 STRUCT.ALIGNMENT.6
STRUCT.ALIGNMENT.7 STRUCT.NESTED-SETF STRUCT.ALIGNMENT.8
STRUCT-WRAPPER.1 STRUCT-WRAPPER.2 UNION.1 ENUM.1 ENUM.2 ENUM.3
BITFIELD.1 BITFIELD.2 BITFIELD.3 BITFIELD.4 MISC-TYPES.STRING+PTR
MISC-TYPES.BOOLEAN.1 MISC-TYPES.BOOLEAN.2 MISC-TYPES.WRAPPER
MISC-TYPES.SIZED-INTS MISC-TYPES.EXPAND.1 MISC-TYPES.EXPAND.2
MISC-TYPES.EXPAND.3 MISC-TYPES.EXPAND.4 MISC-TYPES.EXPAND.5
MISC-TYPES.EXPAND.6
Test FOREIGN-SYMBOL-POINTER.1 failed
Form: (COMPARE-AGAINST-ABS (FOREIGN-SYMBOL-POINTER "abs"))
Expected value: T
Actual value: NIL.
FOREIGN-SYMBOL-POINTER.2 LIBRARY.ERROR.1 LIBRARY.T-CLAUSE
SHAREABLE-VECTOR.1 SHAREABLE-VECTOR.2
12 out of 238 total tests failed: FUNCALL.VARARGS.DOUBLE, FUNCALL.STDCALL.1,
DEFCFUN.NOOP,
DEFCFUN.VARARGS.FLOAT, DEFCFUN.VARARGS.DOUBLE, DEFCFUN.BFF.2,
DEFCFUN.STDCALL.1, CALLBACKS.BFF.1, CALLBACKS.BFF.2,
STRING.ENCODING.UTF-16.BASIC, STRING.ENCODINGS.ALL.BASIC,
FOREIGN-SYMBOL-POINTER.1.
7 unexpected failures: FUNCALL.VARARGS.DOUBLE, FUNCALL.STDCALL.1,
DEFCFUN.VARARGS.FLOAT, DEFCFUN.VARARGS.DOUBLE, DEFCFUN.BFF.2,
DEFCFUN.STDCALL.1, FOREIGN-SYMBOL-POINTER.1.
;;; running tests (compiled)
Doing 238 pending tests of 238 tests total.
FUNCALL.CHAR FUNCALL.INT.1 FUNCALL.INT.2 FUNCALL.LONG
FUNCALL.LONG-LONG FUNCALL.FLOAT FUNCALL.DOUBLE FUNCALL.STRING.1
FUNCALL.STRING.2 FUNCALL.STRING.3 FUNCALL.VARARGS.CHAR
FUNCALL.VARARGS.INT FUNCALL.VARARGS.LONG
Test FUNCALL.VARARGS.DOUBLE failed
Form: (WITH-FOREIGN-POINTER-AS-STRING (S 100) (SETF (MEM-REF S :CHAR) 0)
(FOREIGN-FUNCALL "sprintf" :POINTER S :STRING "%.2f" :DOUBLE (COERCE PI
'DOUBLE-FLOAT) :INT))
Expected value: "3.14"
Actual value: "f".
FUNCALL.VARARGS.STRING FUNCALL.DOUBLE26 FUNCALL.FLOAT26
FUNCALL.F-S-P.1
Test FUNCALL.STDCALL.1 failed
Form: (FLET ((FUN NIL (FOREIGN-FUNCALL ("stdcall_fun@12" :CONVENTION :STDCALL)
:INT 1 :INT 2 :INT 3 :INT))) (LOOP REPEAT 100 DO (FUN) FINALLY (RETURN (FUN))))
Expected value: 6
Actual value: #<SIMPLE-ERROR #xCCADB7E>.
FUNCALL.NIL-SKIP FUNCALL.POINTER-NOT-NIL DEFCFUN.CHAR
DEFCFUN.DOCSTRING DEFCFUN.INT DEFCFUN.LONG DEFCFUN.LONG-LONG
DEFCFUN.FLOAT DEFCFUN.DOUBLE DEFCFUN.STRING.1 DEFCFUN.STRING.2
DEFCFUN.STRING.3 DEFCFUN.NOARGS
Test DEFCFUN.NOOP failed
Form: (NOOP)
Expected values:
Actual value: NIL.
DEFCFUN.VARARGS.DOCSTRINGS DEFCFUN.VARARGS.CHAR DEFCFUN.VARARGS.SHORT
DEFCFUN.VARARGS.INT DEFCFUN.VARARGS.LONG
Test DEFCFUN.VARARGS.FLOAT failed
Form: (WITH-FOREIGN-POINTER-AS-STRING (S 100) (SPRINTF S "%.2f" :FLOAT (FLOAT
PI)))
Expected value: "3.14"
Actual value: "f".
Test DEFCFUN.VARARGS.DOUBLE failed
Form: (WITH-FOREIGN-POINTER-AS-STRING (S 100) (SPRINTF S "%.2f" :DOUBLE (FLOAT
PI 1.0D0)))
Expected value: "3.14"
Actual value: "f".
DEFCFUN.VARARGS.STRING DEFCFUN.BFF.1
Test DEFCFUN.BFF.2 failed
Form: (SUM-127 (MAKE-POINTER 2746181372) (MAKE-POINTER 177623060) -32334.0
3158055028 (MAKE-POINTER 242315091) 4288001754991016425 -21047.0D0 287.0D0
18722 243379286 -8677366518541007140 581399424 -13872 4240394881 1353358999 226
969197676 -26207.0D0 6484 11150 1241680089902988480 106068320 61865 2253
(MAKE-POINTER 866809333) -31613 35616 11715 1393601698 8940888681199591845
(MAKE-POINTER 1524606024) 805638893 3315410736 3432596795 (MAKE-POINTER
1490355706) 696175657106383698 -25438.0 1294381547 26724 (MAKE-POINTER
3196569545) 2506913373410783697 -4405955718732597856 4075932032 3224670123
2183829215657835866 1318320964 -22 -3786.0D0 -2017024146 1579225515 -626617701
-1456 (MAKE-POINTER 3561444187) 395687791 1968033632506257320 -1847773261 48853
142937735275669133 -17974.0 (MAKE-POINTER 2791749948) -14140.0 2707 3691328585
3306.0 1132012981 303633191773289330 (MAKE-POINTER 981183954) 9114.0D0
8664374572369470 -19013.0D0 -10288.0D0 -3679345119891954339 (MAKE-POINTER
3538786709) 23761 -154264605 (MAKE-POINTER 2694396308) 7023 997.0D0 1009561368
241 (MAKE-POINTER 2612292671) 48 1431872408 -32675.0D0 (MAKE-POINTER
1587599336) 958916472 -9857.0D0 111 -14370.0D0 -7308 -967514912 488790941
2146978095 -24111.0D0 13711 86681861 717987770 111 1013402998690933877
17234.0D0 -8772.0 3959216275 -8711 (MAKE-POINTER 3142780851) 9480.0
-3820453146461186120 1616574376 -3336232268263990050 -1906114671562979758
-27925.0D0 9695970875869913114 27033.0D0 1096518219 -12 104 3392025403 -27911
60 89 509297051 -533066551 29158.0 110 54 -9802.0D0 593950442165910888 -79)
Expected value: 7758614658402721936
Actual value: 7758614624042983568.
DEFCFUN.UNDEFINED DEFCFUN.DOUBLE26 DEFCFUN.FLOAT26
Test DEFCFUN.STDCALL.1 failed
Form: (LOOP REPEAT 100 DO (STDCALL-FUN 1 2 3) FINALLY (RETURN (STDCALL-FUN 1 2
3)))
Expected value: 6
Actual value: #<SIMPLE-ERROR #xCC1D2A6>.
CALLBACKS.CHAR CALLBACKS.UNSIGNED-CHAR CALLBACKS.SHORT
CALLBACKS.UNSIGNED-SHORT CALLBACKS.INT CALLBACKS.UNSIGNED-INT
CALLBACKS.LONG CALLBACKS.UNSIGNED-LONG CALLBACKS.LONG-LONG
CALLBACKS.UNSIGNED-LONG-LONG CALLBACKS.FLOAT CALLBACKS.DOUBLE
CALLBACKS.POINTER CALLBACKS.STRING CALLBACKS.STRING-NOT-DOCSTRING
CALLBACKS.NIL-FOR-NULL CALLBACKS.QSORT CALLBACKS.VOID
CALLBACKS.FUNCALL.1 CALLBACKS.FUNCALL.2
Test CALLBACKS.BFF.1 failed
Form: (CALL-SUM-127-NO-LL (CALLBACK SUM-127-NO-LL))
Expected value: 2008547941
Actual value: #<SIMPLE-ERROR #xCC320FE>.
Test CALLBACKS.BFF.2 failed
Form: (CALL-SUM-127 (CALLBACK SUM-127))
Expected value: 8166570665645582011
Actual value: #<SIMPLE-ERROR #xCC30E86>.
CALLBACKS.NON-EXISTANT CALLBACKS.DOUBLE26 CALLBACKS.DOUBLE26.FUNCALL
CALLBACKS.FLOAT26 CALLBACKS.FLOAT26.FUNCALL CALLBACKS.STDCALL.1
CALLBACKS.UNINTERNED FOREIGN-GLOBALS.REF.CHAR
FOREIGN-GLOBALS.REF.UNSIGNED-CHAR FOREIGN-GLOBALS.REF.SHORT
FOREIGN-GLOBALS.REF.UNSIGNED-SHORT FOREIGN-GLOBALS.REF.INT
FOREIGN-GLOBALS.REF.UNSIGNED-INT FOREIGN-GLOBALS.REF.LONG
FOREIGN-GLOBALS.REF.UNSIGNED-LONG FOREIGN-GLOBALS.REF.FLOAT
FOREIGN-GLOBALS.REF.DOUBLE FOREIGN-GLOBALS.REF.POINTER
FOREIGN-GLOBALS.REF.STRING FOREIGN-GLOBALS.REF.LONG-LONG
FOREIGN-GLOBALS.REF.UNSIGNED-LONG-LONG FOREIGN-GLOBALS.SET.INT
FOREIGN-GLOBALS.SET.STRING FOREIGN-GLOBALS.SET.LONG-LONG
FOREIGN-GLOBALS.GET-VAR-POINTER.1 FOREIGN-GLOBALS.GET-VAR-POINTER.2
FOREIGN-GLOBALS.REF.UPPERCASEINT1 FOREIGN-GLOBALS.REF.UPPER-CASE-INT1
FOREIGN-GLOBALS.REF.MIXEDCASEINT1 FOREIGN-GLOBALS.REF.MIXED-CASE-INT1
FOREIGN-GLOBALS.REF.UPPERCASEINT2 FOREIGN-GLOBALS.REF.UPPER-CASE-INT2
FOREIGN-GLOBALS.REF.MIXEDCASEINT2 FOREIGN-GLOBALS.REF.MIXED-CASE-INT2
FOREIGN-GLOBALS.REF.UPPERCASEINT3 FOREIGN-GLOBALS.REF.UPPER-CASE-INT3
FOREIGN-GLOBALS.REF.MIXEDCASEINT3 FOREIGN-GLOBALS.REF.MIXED-CASE-INT3
FOREIGN-GLOBALS.SYMBOL-NAME FOREIGN-GLOBALS.READ-ONLY.1
DEFCVAR.DOCSTRING DEREF.CHAR DEREF.UNSIGNED-CHAR DEREF.SHORT
DEREF.UNSIGNED-SHORT DEREF.INT DEREF.UNSIGNED-INT DEREF.LONG
DEREF.UNSIGNED-LONG DEREF.LONG-LONG DEREF.UNSIGNED-LONG-LONG
DEREF.FLOAT.1 DEREF.FLOAT.2 DEREF.FLOAT.3 DEREF.DOUBLE.1
DEREF.DOUBLE.2 DEREF.DOUBLE.3 DEREF.POINTER.NULL
LISP-STRING-TO-FOREIGN.EMPTY WITH-FOREIGN-POINTER.EVALX2
WITH-FOREIGN-POINTER.CONSTANT-SIZE MEM-REF.LEFT-TO-RIGHT
%MEM-REF.LEFT-TO-RIGHT %MEM-SET.LEFT-TO-RIGHT MEM-AREF.EVAL-TYPE-X2
MEM-AREF.LEFT-TO-RIGHT MEM-REF.NESTED MEM-AREF.NESTED DEREF.AGGREGATE
DEREF.ARRAY-OF-AGGREGATES POINTER.1 POINTER.2 POINTER.NULL
FOREIGN-POINTER-TYPE.NIL MAKE-POINTER.HIGH INC-POINTER.ZERO
FOREIGN-ALLOC.1 FOREIGN-ALLOC.2 FOREIGN-ALLOC.3 FOREIGN-ALLOC.4
FOREIGN-ALLOC.5 FOREIGN-ALLOC.6 FOREIGN-ALLOC.7 FOREIGN-ALLOC.8
FOREIGN-ALLOC.9 DEREF.NONCONST.CHAR DEREF.NONCONST.UNSIGNED-CHAR
DEREF.NONCONST.SHORT DEREF.NONCONST.UNSIGNED-SHORT DEREF.NONCONST.INT
DEREF.NONCONST.UNSIGNED-INT DEREF.NONCONST.LONG
DEREF.NONCONST.UNSIGNED-LONG DEREF.NONCONST.LONG-LONG
DEREF.NONCONST.UNSIGNED-LONG-LONG DEREF.NONCONST.FLOAT.1
DEREF.NONCONST.FLOAT.2 DEREF.NONCONST.FLOAT.3 DEREF.NONCONST.DOUBLE.1
DEREF.NONCONST.DOUBLE.2 DEREF.NONCONST.DOUBLE.3 MEM-REF.RT.1
MEM-REF.RT.2 INCF-POINTER.1 INCF-POINTER.2 POINTERP.1 POINTERP.2
POINTERP.3 POINTERP.4 POINTERP.5 POINTERP.6 MEM-REF.SETF.1
POINTER-EQ.NON-POINTERS.1 POINTER-EQ.NON-POINTERS.2
NULL-POINTER-P.NON-POINTER.1 NULL-POINTER-P.NON-POINTER.2
NULL-POINTER-P.NON-POINTER.3 STRING.CONVERSION.BASIC
STRING.CONVERSION.BASIC.2 STRING.ENCODING.ASCII
Test STRING.ENCODING.UTF-16.BASIC failed
Form: (WITH-FOREIGN-STRING (S *ASCII-TEST-STRING* :ENCODING :UTF-16)
(FOREIGN-STRING-TO-LISP S :ENCODING :UTF-16))
Expected values: "
!\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~"
190
Actual values:
""
190.
STRING.SHORT-WRITE.1 STRING.ENCODING.UTF-8.BASIC
Test STRING.ENCODINGS.ALL.BASIC failed
Form: (LET (FAILED) (DOLIST (ENCODING (LIST-LATIN-COMPATIBLE-ENCODINGS) FAILED)
(WITH-FOREIGN-STRING (PTR *BASIC-LATIN-ALPHABET* :ENCODING ENCODING) (LET
((STRING (FOREIGN-STRING-TO-LISP PTR :ENCODING ENCODING))) (UNLESS (STRING=
*BASIC-LATIN-ALPHABET* STRING) (PUSH ENCODING FAILED))))))
Expected value: NIL
Actual value: #<UNBOUND-VARIABLE #xCCA6DF6>.
STRING.ENCODINGS.DEFAULT STRUCT.1 STRUCT.2 STRUCT.3 STRUCT.4
STRUCT.NAMES STRUCT.5 STRUCT.STRING.1 STRUCT.STRING.2
STRUCT.ALIGNMENT.1 STRUCT.ALIGNMENT.2 STRUCT.ALIGNMENT.3
STRUCT.ALIGNMENT.4 STRUCT.ALIGNMENT.5 STRUCT.ALIGNMENT.6
STRUCT.ALIGNMENT.7 STRUCT.NESTED-SETF STRUCT.ALIGNMENT.8
STRUCT-WRAPPER.1 STRUCT-WRAPPER.2 UNION.1 ENUM.1 ENUM.2 ENUM.3
BITFIELD.1 BITFIELD.2 BITFIELD.3 BITFIELD.4 MISC-TYPES.STRING+PTR
MISC-TYPES.BOOLEAN.1 MISC-TYPES.BOOLEAN.2 MISC-TYPES.WRAPPER
MISC-TYPES.SIZED-INTS MISC-TYPES.EXPAND.1 MISC-TYPES.EXPAND.2
MISC-TYPES.EXPAND.3 MISC-TYPES.EXPAND.4 MISC-TYPES.EXPAND.5
MISC-TYPES.EXPAND.6
Test FOREIGN-SYMBOL-POINTER.1 failed
Form: (COMPARE-AGAINST-ABS (FOREIGN-SYMBOL-POINTER "abs"))
Expected value: T
Actual value: NIL.
FOREIGN-SYMBOL-POINTER.2 LIBRARY.ERROR.1 LIBRARY.T-CLAUSE
SHAREABLE-VECTOR.1 SHAREABLE-VECTOR.2
12 out of 238 total tests failed: FUNCALL.VARARGS.DOUBLE, FUNCALL.STDCALL.1,
DEFCFUN.NOOP,
DEFCFUN.VARARGS.FLOAT, DEFCFUN.VARARGS.DOUBLE, DEFCFUN.BFF.2,
DEFCFUN.STDCALL.1, CALLBACKS.BFF.1, CALLBACKS.BFF.2,
STRING.ENCODING.UTF-16.BASIC, STRING.ENCODINGS.ALL.BASIC,
FOREIGN-SYMBOL-POINTER.1.
7 unexpected failures: FUNCALL.VARARGS.DOUBLE, FUNCALL.STDCALL.1,
DEFCFUN.VARARGS.FLOAT, DEFCFUN.VARARGS.DOUBLE, DEFCFUN.BFF.2,
DEFCFUN.STDCALL.1, FOREIGN-SYMBOL-POINTER.1.
_______________________________________________
cffi-devel mailing list
cffi-devel@common-lisp.net
http://common-lisp.net/cgi-bin/mailman/listinfo/cffi-devel