X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;f=tests%2Fpointers.lisp;h=716844893801679bbd6b03d59db6dda65209b99e;hb=5d4295830e68c889ba2df9d9f88e896a70f20d7a;hp=9f704ff54bd4b116f319167212b3102a7730f290;hpb=77fd04d570b9ae1fd40c1f7b0134af826576210b;p=uffi.git diff --git a/tests/pointers.lisp b/tests/pointers.lisp index 9f704ff..7168448 100644 --- a/tests/pointers.lisp +++ b/tests/pointers.lisp @@ -7,7 +7,7 @@ ;;;; Programmer: Kevin M. Rosenberg ;;;; Date Started: Aug 2003 ;;;; -;;;; $Id: pointers.lisp,v 1.1 2003/08/14 19:35:05 kevin Exp $ +;;;; $Id$ ;;;; ;;;; This file, part of UFFI, is Copyright (c) 2003 by Kevin M. Rosenberg ;;;; @@ -18,24 +18,52 @@ (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 (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.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") + + +