X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;f=tests%2Fpointers.lisp;h=cebb359fd1fa677583858f528c72d5a1363c8c41;hb=09464c82191ef241c749756bbad5ffaadd8f6e5f;hp=9f704ff54bd4b116f319167212b3102a7730f290;hpb=77fd04d570b9ae1fd40c1f7b0134af826576210b;p=uffi.git diff --git a/tests/pointers.lisp b/tests/pointers.lisp index 9f704ff..cebb359 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 ;;;; @@ -15,27 +15,56 @@ (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 +(deftest :chptr.3 (let ((native-string "test string")) (uffi:with-foreign-string (fs native-string) - (numberp - (deref-pointer fs :byte)))) - t) + (ensure-char-integer + (deref-pointer fs :unsigned-char)))) + 116) +(deftest :chptr.4 + (let ((native-string "test string")) + (uffi:with-foreign-string (fs native-string) + (integerp + (ensure-char-integer + (deref-pointer fs :unsigned-char))))) + 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") + + +