X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;ds=sidebyside;f=tests%2Fpointers.lisp;h=64391b9eab0951095cc2e06e9ec24fd757c21e71;hb=0824453227a26da41a3929c9117b66714980414b;hp=6af7f79f3ca8ee721097bef04b78555bace7f332;hpb=ebedde4e67b858b1f65c5eb4dc7bc45978ed1e40;p=uffi.git diff --git a/tests/pointers.lisp b/tests/pointers.lisp index 6af7f79..64391b9 100644 --- a/tests/pointers.lisp +++ b/tests/pointers.lisp @@ -15,27 +15,55 @@ (in-package #:uffi-tests) -(deftest chptr.1 +(deftest :chptr.1 (let ((native-string "test string")) (uffi:with-foreign-string (fs native-string) - (characterp - (ensure-char-character - (deref-pointer fs :char))))) - t) + (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) - (characterp - (ensure-char-character - (deref-pointer fs :unsigned-char))))) - t) + (ensure-char-character + (deref-pointer fs :unsigned-char)))) + #\t) + +(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.3 +(deftest :chptr.4 (let ((native-string "test string")) (uffi:with-foreign-string (fs native-string) (numberp (deref-pointer fs :byte)))) t) - +(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)) + (setf (uffi:deref-array fs '(:array :unsigned-char) 1) + (uffi:ensure-char-storable (code-char 0))) + (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") + + +