r10396: 2005-04-12 Kevin Rosenberg (kevin@rosenberg.net)
[uffi.git] / tests / union.lisp
index 4268b91cdceff3da15ce0be14c80b15eeb654ce7..584d563e686652e44280f790235ce56d3f1f5526 100644 (file)
         (* 256 (char-code #\C))
         (* 1 128)))
 
-(deftest union.1 (uffi:ensure-char-character 
-                 (uffi:get-slot-value *u* 'tunion1 'char)) #\A)
+(deftest union.1 
+    (uffi:ensure-char-character 
+     (uffi:get-slot-value *u* 'tunion1 'char))
+  #\A)
+
+(deftest union.2 
+    (uffi:ensure-char-integer 
+     (uffi:get-slot-value *u* 'tunion1 'char))
+  65)
 
 #-(or sparc sparc-v9 mcl)
-(deftest union.2 (plusp (uffi:get-slot-value *u* 'tunion1 'uint)) t)
+(deftest union.3 (plusp (uffi:get-slot-value *u* 'tunion1 'uint)) t)
+
+
+(uffi:def-union foo-u
+    (bar :pointer-self))
+
+(uffi:def-foreign-type foo-u-ptr (* foo-u))
+
+;; tests that compilation worked
+(deftest unions.4 
+  (with-foreign-object (p 'foo-u)
+    t)
+  t)
+
+(deftest unions.5
+    (progn
+      (uffi:def-foreign-type foo-union (:union foo-u))
+      t)
+  t)
+
 
 
-;;    (uffi:free-foreign-object u))