X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;f=tests%2Fpointers.lisp;h=cebb359fd1fa677583858f528c72d5a1363c8c41;hb=09464c82191ef241c749756bbad5ffaadd8f6e5f;hp=495fdcd392f9b480f06c3fc4fb623e26b8243ddf;hpb=3e1ab6ebfcf56e76edffaff284aca937e8152408;p=uffi.git diff --git a/tests/pointers.lisp b/tests/pointers.lisp index 495fdcd..cebb359 100644 --- a/tests/pointers.lisp +++ b/tests/pointers.lisp @@ -15,35 +15,36 @@ (in-package #:uffi-tests) -(deftest chptr.1 +(deftest :chptr.1 (let ((native-string "test string")) (uffi:with-foreign-string (fs native-string) (ensure-char-character (deref-pointer fs :char)))) #\t) -(deftest chptr.2 +(deftest :chptr.2 (let ((native-string "test string")) (uffi:with-foreign-string (fs native-string) (ensure-char-character (deref-pointer fs :unsigned-char)))) #\t) -(deftest chptr.3 +(deftest :chptr.3 (let ((native-string "test string")) (uffi:with-foreign-string (fs native-string) (ensure-char-integer (deref-pointer fs :unsigned-char)))) 116) -(deftest chptr.4 +(deftest :chptr.4 (let ((native-string "test string")) (uffi:with-foreign-string (fs native-string) - (numberp - (deref-pointer fs :byte)))) + (integerp + (ensure-char-integer + (deref-pointer fs :unsigned-char))))) t) -(deftest chptr.5 +(deftest :chptr.5 (let ((fs (uffi:allocate-foreign-object :unsigned-char 128))) (setf (uffi:deref-array fs '(:array :unsigned-char) 0) (uffi:ensure-char-storable #\a)) @@ -52,5 +53,18 @@ (uffi:convert-from-foreign-string fs)) "a") +;; This produces an array which needs fli:foreign-aref to access +;; rather than fli:dereference + +#-lispworks +(deftest :chptr.6 + (uffi:with-foreign-object (fs '(:array :unsigned-char 128)) + (setf (uffi:deref-array fs '(:array :unsigned-char) 0) + (uffi:ensure-char-storable #\a)) + (setf (uffi:deref-array fs '(:array :unsigned-char) 1) + (uffi:ensure-char-storable (code-char 0))) + (uffi:convert-from-foreign-string fs)) + "a") +