From: Juho S. <js...@us...> - 2005-10-15 12:56:09
|
Update of /cvsroot/sbcl/sbcl/tests In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv20832/tests Modified Files: callback.impure.lisp Log Message: 0.9.5.64: Support callbacks with void return types. * Export SB-ALIEN:ALIEN-VOID-TYPE-P * Bind *VALUES-TYPE-OKAY* to T when parsing of the return type * Add test (+ another test for a x86-64 sign extension failure) Index: callback.impure.lisp =================================================================== RCS file: /cvsroot/sbcl/sbcl/tests/callback.impure.lisp,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -r1.7 -r1.8 --- callback.impure.lisp 15 Oct 2005 12:24:30 -0000 1.7 +++ callback.impure.lisp 15 Oct 2005 12:55:53 -0000 1.8 @@ -126,3 +126,19 @@ (assert (= 26 (alien-funcall foo))) +;;; callbacks with void return values + +(with-test (:name void-return) + (sb-alien::alien-lambda void () + (values))) + +;;; tests for a sign extension problem in callback argument handling on x86-64 + +(with-test (:name sign-extension :fails-on :x86-64) + (let ((*add-two-ints* + (sb-alien::alien-callback (function int int int) #'+))) + (assert (= (alien-funcall *add-two-ints* #x-80000000 1) + -2147483647)) + (assert (= (alien-funcall *add-two-ints* #x-80000000 -1) + #x7fffffff)))) + |