r10584: * tests/objects.lisp: Rename from pointers.lisp.
[uffi.git] / tests / pointers.lisp
index 495fdcd392f9b480f06c3fc4fb623e26b8243ddf..cebb359fd1fa677583858f528c72d5a1363c8c41 100644 (file)
 
 (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))
       (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")
+